Bonjour à tous,
Si vous rêvez de participer à boost, c'est le moment!! Téléchargez et testez cette version, puis faites-nous part de bugs et problèmes que vous rencontrez.
Les fichiers sont ici.
Version imprimable
Bonjour à tous,
Si vous rêvez de participer à boost, c'est le moment!! Téléchargez et testez cette version, puis faites-nous part de bugs et problèmes que vous rencontrez.
Les fichiers sont ici.
L'actu en temps réel !
Sortie de Boost 1.41.0 il y a 3 minutes 30.
Edit : Et ouais Goten! Chaque seconde compte :D
http://www.boost.org/users/news/version_1_41_0
dispo :).
edit : oups :p
Rho on sent les gars qui campent :aie:
Bon sinon résumé des nouveautés, dispo sur le lien donné juste au-dessus, mais pour que ça soit plus facile :
Citation:
New Libraries
* Property Tree: A tree data structure especially suited to storing configuration data, from Marcin Kalicinski and Sebastian Redl.
Updated Libraries
* DateTime:
o The default format for time durations is now "%-%O:%M:%S%F" instead of "%-%H:%M:%S%F" that was used previously. In order to retain the old behavior, the format string has to be specified explicitly during the time IO facet construction (#1861).
o Gregorian dates now use 32-bit integer type internally on 64-bit platforms (#3308).
o See the full changelog for more detail.
* Filesystem:
o Bug fixes: (#3385). (#3528). (#3509).
* Iostreams: Some old unreleased developments. There are still several open issues that should be fixed in the next version.
o Add a grep filter (#1627).
o Support archives with multiple members (#1896).
o Make tee work with input streams (#791).
o Improved filesystem interoperability.
o Several warnings fixed or suppressed (including #1618, #1875, #2779).
o Various other fixes (including #1580, #1671).
* Math: Substantially improved the performance of the incomplete gamma function and it's inverse: this enhances the performance of the gamma, poisson, chi-squared and non-central chi-squared distributions.
* Multi-index Containers: Maintenance fixes. Consult the library release notes for further information.
* Proto:
o Clean up some MSVC warnings and errors in /Za (disable Microsoft extensions) mode.
o Fixes for c++0x mode on various compilers.
* Python: Boost.Python now supports Python 3 (Haoyu Bai's Google Summer of Code project, mentored by Stefan Seefeld).
* Regex: Added support for many Perl 5.10 syntax elements including named sub-expressions, branch resets and recursive regular expressions.
* Spirit: This is the initial official release of the new Spirit V2.1, a completely new library for parsing, lexing, and output generation. Note: this release is not backwards compatible with earlier versions. Known issue: qi::symbol::find will match a symbol that starts with the string you're searching for. This will be fixed in the next version.
* System:
o Bug fix: (#3559).
* Thread:
o Support for futures, promises and packaged tasks added
o boost::thread_specific_ptr is now faster when there are lots of thread-specific objects
o Some Boost.Thread facilities are now header-only
* Unordered: Major update:
o Replaced a lot of the macro based implementation with a cleaner template based implementation.
o Reduced memory use.
o Full details in the changelog.
* Utility: A "const" issue of value_initialized is fixed: Its data() member function and its conversion operator are replaced by overloads for const and non-const access (#2548).
* Wave: See the changelog for details.
* Xpressive:
o Fix infinite loop with some uses of \Q...\E quotemeta (#3586).
o Eliminate unreachable code warnings on MSVC
o Clean up some MSVC warnings and errors in /Za ("disable Microsoft extensions") mode.
o Fixes for c++0x mode on various compilers.
Build System
A bug preventing "fat" 32-bit + 64-bit builds on OSX has been fixed.
Boost.CMake moved
The cmake version of boost has moved; the Boost.CMmake release will be separate and will lag the main release slightly, but will also be capable of producing patch releases as necessary.
More information on the Boost CMake wiki page.
Updated Tools
* Quickbook 1.5: These changes require your document to use the [quickbook 1.5] tag:
o More intuitive syntax and variable lookup for template calls (#1174, #2034, #2036).
o Image attributes (#1157)
o Table Ids (#1194)
o Better handling of whitespace in section syntax. (#2712)
Quelque chose qui apparaît comme mise à jour et est donc un peu perdu dans la liste des update mais qui peut se voir comme une vraie nouvelle bibliothèque est la présence de Spirit V2.1 (spéciale dédicace pour florian :mouarf:).
Quelqu'un a-t-il testé la nouvelle bibliothèque property_tree ?
La syntaxe a l'air extrêmement alléchante et le parseur utilisé en interne (rapidxml) dépote.
Malheureusement je n'arrive même pas à la compiler (sous VS10 beta 2) :(
J'obtiens cette erreur :Code:
1
2
3
4
5
6
7 #include <boost/property_tree/ptree.hpp> int main() { boost::property_tree::ptree pt; return 0; }
qui se réfère àCitation:
Error 1 error C2440: 'specialization' : cannot convert from 'const std::string std::_Pair_base<_Ty1,_Ty2>::* ' to 'const std::basic_string<_Elem,_Traits,_Ax> std::pair<_Ty1,_Ty2>::* ' d:\program files\boost\boost_1_41_0\boost\property_tree\detail\ptree_implementation.hpp 30 1 TestPropertyTree
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // ptree_implementaion.h template <class K, class D, class C> struct basic_ptree<K, D, C>::subs { struct by_name {}; // The actual child container. typedef multi_index_container<value_type, multi_index::indexed_by< multi_index::sequenced<>, multi_index::ordered_non_unique<multi_index::tag<by_name>, multi_index::member<value_type, const key_type, ici-> &value_type::first>, key_compare > > > base_container;
T'as testé sous un autre compilo?
Je vais essayer.
Tiens ben justement je voulais en parler: sur la page de présentation (le lien a déjà été donné 2 fois mais je le remet pour les fainéants ;) ), ils disent que la 1.41 a été testé sur plein de compilateurs, mais pas sur VS10. Quelqu'un a testé?
Apparemment ils ont testé sur la beta1 :
Citation:
Windows:
* Visual C++ 7.1, 8,0, 9,0 on XP.
* Visual C++ 9.0 on 32-bit Vista.
* Visual C++ 9.0 on AMD 64-bit Vista.
* Visual C++ 9.0 using STLport 5.2 on XP and Windows Mobile 5.0.
* Visual C++ 10.0 beta 1 with a patch for the program options lib.
Ok, effectivement property_tree compile bien avec GCC 4.3 et GCC 4.5.
C'est donc probablement un bug de la beta 2.
Merci.
Pas de soucis chez moi. (gcc 4.3.4)
edit : comme toujours, un train de retard :')
Depuis le temps que PropertyTree devait être intégré :)
Pour ceux qui n'ont pas suivi, c'est une excellente librairie qui devait être intégrée il y a déjà plus de 3 ans, après un processus de test qui avait amené l'auteur à pondre son fameux RapidXML pour résoudre les premiers problèmes de performance. Puis l'auteur s'est désintéressé, la doc n'a pas été faite, le truc a été promis pour 1.35, puis 1.36, puis non, etc. Dommage, maintenant nous avons notre propre alternative, certainement moins bien que PropertyTree. Mais à l'époque où nous avons considéré l'utiliser, son avenir n'était pas clair du tout.
Comme quoi, si vous pensez contribuer à Boost, il faut aller jusqu'au bout!
Indirectement, la conséquence de l'activité un peu frénétique de Boost ces derniers temps est que les compilateurs qui ne sont pas supportés correctement (c'est à dire tous sauf VC++ et gcc, malgré la liste des compilateurs dits "supportés", qui se contentent de sous-ensembles plus ou moins minuscules) ont de moins en moins de chance de survie. Dommage pour Embarcadero... faudra vivre avec rien que Delphi, ou bien supporter Boost franchement nettement mieux.
Comeau est bien géré, c'est celui qui colle le plus à la norme :)
boost 1.41 compile très bien avec GCC trunk (4.5) sous osx et linux. Cependant, j'ai des errors de compilation pour des programmes en -std=c++0x avec boost thread, boost variant, boost xpressive...
En regardant rapidos, il y a des problèmes dû aux nouveaux constructeurs templatés de std::pair et d'autres probs faisant intervenir des rvalue ref.
Je me suis rabattu sur GCC 4.4
L'arrivée de Spirit V2.1 est, comment dire, sympathique ? :ccool:
Par où commencer pour découvrir boost ?
EDIT: je vais être plus précis, que propose boost comme conteneurs permettant de gérer efficacement de grands volumes ?
Y-a-t-il un B+Tree par exemple ?
Spirit 2.1 est vraiment très très bon !
Et ils ont enfin mis en place des doc digne de ce nom !
J'avais pas mal entendu parler de property_tree et j'attendais qu'il soit officialisé pour jetter un oeil plus en profondeur.
Maintenant que c'est (enfin fait) j'ai lu la doc et je me rends compte que ça résouds et simplifie pas mal de choses que j'avais commencé a faire dans mes projets O__O/
Donc une bonne chose.
Par contre pour Spirit 2.1, est-ce que vous pouvez résumer les améliorations? Je n'ai suivi que de très loin mais en parcourant rapidement la doc je ne vois pas bien la différence avec ce dont je me souviens avoir lu au début de l'année.
T'as qu'à leur poser la question, et je dirais même mieux proposer toi-même une implémentation. Ce n'est pas agréable, même pour nous, de lire des remarques sur ce ton.
Merci.
Borland/Codegear/Embarcadero ont pris le train Boost assez en retard. S'ils ont toujours livré la STL (STLPort, puis Dinkumware), ils ne fournissaient pas, jusqu'à récemment, Boost, et personne dans les équipes Boost ne semble s'intéresser de près à la portabilité vers ce compilateur.
Les choses changent depuis les versions 2009 et 2010, qui livrent un portage de Boost. Par ailleurs, une grande partie de la librairie fonctionne sous les versions anciennes, directement, ou moyennant quelques adaptations simples (j'ai fait tourner pas mal de boost sous BCB 6 il y a quelques temps). Mais les versions nouvelles ne compilent pas directement.
Ce serait probablement un excellent projet à mener dans le cadre de ce forum, où il semble y avoir à la fois des fans de boost et des utilisateurs de Builder.
Il me semble qu'un tel projet a existé autrefois mais a été abandonné. Personnellement, je serais prêt à y contribuer, d'autres seraient partants?
Francois
Si on me fourni BCB ou autre jsuis prêt :').
Non mais voilà c'est aussi pour ça que le portage est pas facile c'est que tout le monde à pas ce genre de compilo sous la main :s.
Bon si tu te sens extrèmement courageux, y'a ca... (le troisième de la liste!)
http://www.codegear.com/downloads/free/cppbuilder
Mais bon, c'est un vénérable, celui là... Fourni avec librairies et STL. Je soupconne que Boost compile en partie... mais ç'est probablement un sacré défi de tout faire tourner dessus (même pour une version à jour de la STL, d'ailleurs)
Ensuite, tu as raison. Ce genre de projet est pour des utilisateurs de Borland, qui ont déjà le compilateur et l'environnement. Si on devait s'y mettre, je suggérerais même de se consacrer d'abord aux morceaux de boost qui n'ont aucun équivalent dans le framework borland (exemple, il y a des fonctions de date et d'heure assez correctes, donc DateTime ne me parait pas une urgence, lambda, en revanche...)
Francois
Il y a déjà eu des efforts très méritants pour améliorer le support de Boost dans BCB 2009 et 2010, y compris par des contributeurs majeurs de Boost, avec des résultats décourageants, même si meilleurs que le support d'Embarcadero (pourtant vanté dans les prospectus des compilateurs).
Ce que j'ai trouvé le plus gênant dans ces différents efforts, c'est que même quand ça compile, il peut y avoir des surprises très désagréables comme des appels de fonctions virtuelles pures. Ceci est peut-être du au linker de BCB, qui est franchement chatouilleux.
Nous mêmes avons du travailler en interne pour résoudre des soucis suffisamment ponctuels pour ne pas trop nous pénaliser économiquement sur certains projets: par exemple, nous avons un regex 1.35 pratiquement entièrement valide sur BCB 2009 (mais nous n'avons pas réussi à reproduire ceci pour BCB 2010; d'une manière générale il y a certains progrès mais aussi quelques régressions entre 1.35/2009 et 1.38/2010).
Je suis admiratif devant l'ambition de ceux qui souhaitent s'attaquer à ce problème. Je pense qu'il est rendu très difficile par le comportement erratique de BCB sur des programmes un peu trop complexes (on n'a pas affaire à des erreurs de compilation, mais à des plantages du compilateur), un peu comme gcc avant la première refonte du support des templates. Pour moi, il parait possible de résoudre ponctuellement certains passages de Boost, mais avec l'évolution rapide des deux environnements (BCB et Boost), et à cause du fait que presque tout est à refaire dès que la combinaison change, c'est un travail sans fin, et qui malheureusement aura du mal surtout sur les modules les plus utiles (serialization, ipc, asio...).
C'est à Embarcadero de faire un compilateur solide et respectueux du standard, et ensuite le support de Boost viendra tout seul. Eux seuls ont accès sous le capot du compilo, donc eux seuls sont vraiment capables d'apporter une solution durable. Comme ils en profiterons fortement, cela ne serait que naturel qu'ils en supportent le cout de développement.