non, pas que je sache. la sémantique d'une fonction inline est très précise. Pour pouvoir faire l'insertion sur place, le compilateur a besoin du code (sauf certains compilo, mais là ça coute tres cher ce genre de bidule) j'ai pas vocation à faire un cours ici, mais contrairement, la compilation d'une unité de traduction qui utilise un template n'a nullement besoin de sa définition. export est là pour que l'on puisse séparer définition et déclaration en s'affranchissant du problème d'instanciation
les rapports de bugs c'est quelque chose différents. La philosophie Janitor, c'est de faire du nettoyage, de toucher au code, rapidement, facilement, d'effectuer des tâches souvent très fastidieuse. Tous les problèmes sont préciséments cernés, ça n'a pas grand chose à voir avec envoyer des rapports de bugs et les suivre, ou s'impliquer de zéro dans un logiciel, ce qui demande énormément de temps.
KJ demande des choses faciles et précises.
Autre exemple : il y a quelques jours, un développeur de Gdesklets m'a suggéré de faire un petit truc pour gdesklets, simple, fastidieux, mais très ciblé. Je n'ai pas eu à lire le code de gdesklets, on m'a dit quoi faire, j'ai fait modestement (pas tout a fait encore fini)
le but c'est de faire quelque chose d'utile, rapidement.
certes. je n'ai jamais dit que c'était là solution. prendre conscience de la nature du problème c'est déjà faire un grand pas en avant. comme toi j'attends des solutions. tu as essayé -frepo ? à grande échelle ?
bah si tu utilises le mécanisme de l'inclusion de la définition pour tes templates (sur le modèle communément utilisé par STL) dans un gros projet, tu va vite tout faire exploser. g++ avec -frepo permet de gérer ça un peu mieux. mais tu peux le faire à la main dans une moindre mesure, mais avec beaucoup d'efficacité.
imagine que tu bosses sur un truc, ou tu manipules quasiment partout des My::collection, le long de tes 500 .cpp . si tu t'amuses à faire des #include <collection.hpp> dans chaque fichier : ton temps de compilation explose, la taille de ton binaire aussi. Sans compter que si tu modifies 1 octet de ton template, ton projet entier recompile (use scons d'ailleurs). il faut recourir à une instanciation explicite pour régler ce genre de problème. ça a l'air con, mais ce genre de bêtises, c'est typiquement le truc que font systématiquement les mecs qui te sortent « les templates ça pue, les temps de compilations explosent »
export permettraient de résoudre ce genre de problème, g++ -frepo est un début de solution, une instanciation explicite séparér à la main est envisageable de temps en temps, pour les types de bases au moins ... mais dans tous les cas il faut être conscient de ce qui se passe en fixer des limites
pas en général, tout le temps. ça s'appelle le bootstraping, ou auto-compilation.
le terme de bootstraping est mieux, parce qu'il a une petite histoire. Le Baron de Munchausen était tombé dans des marais, il était empétré. Pour s'en sortir, il s'est tiré par sa queue de cheval, et par les languettes de ses bottes (bootstrap)
tu n'as pas compris grand chose. GCC est une partie arrière et plusieurs parties avants. L'effort de l'équipe de développement porte sur la partie arrière, donc tous les compilateurs basé sur la partie arrière de GCC seront plus performants, en exécution et en code objet généré.
Quand à tous les autres logiciels compilés à l'aide d'un compilateur avec une partie arrirèe gcc, ils seront sans doute plus performants car plus optimisés, à défaut, ils seront compilés en moins de temps
et même avec un linker performant, tu fais péter la taille des exécutables. la précompilation, c'est bien mais c'est loin de tout résoudre. ceux qui se plaignent du C++ et notemment des ses templates qui font péter le temps de compilation n'ont rien compris aux template et à la nécessité d'avoir une vrai politique d'instanciation
moi je suis pour la précompilation, tant qu'on reste avec du code le plus standard possible. j'ai pas envie de me taper un "stdafx.h" magique. je veux que ça soit transparent
par le pas de VS, c'est loin d'être la référence. y a une différence entre précompilé les stdio etc du C, et les iostream template. sans export ou truc du même genre, je ne pense pas que ça soit possible
je me permets d'émettre quelques doutes sur l'association "précompilation d'entêtes C++" <-> "template"
à moins que cela ne soit implicitement une réfrence à export, ou une facilité d'utilisation accrue de -frepo ...
j'ai bataillé comme un fou sur PPC (++Taz) pour faire changer la nouvelle qui porte préjudice à Mandrake/linux alors que le seul fautif est LG qui vends du matériel défectueux
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 5.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 1.
[^] # Re: ~KernelJanitor -> s'impliquer dans le développement d'un logiciel libre
Posté par TazForEver . En réponse au journal ~KernelJanitor -> s'impliquer dans le développement d'un logiciel libre. Évalué à 3.
KJ demande des choses faciles et précises.
Autre exemple : il y a quelques jours, un développeur de Gdesklets m'a suggéré de faire un petit truc pour gdesklets, simple, fastidieux, mais très ciblé. Je n'ai pas eu à lire le code de gdesklets, on m'a dit quoi faire, j'ai fait modestement (pas tout a fait encore fini)
le but c'est de faire quelque chose d'utile, rapidement.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 1.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 7.
imagine que tu bosses sur un truc, ou tu manipules quasiment partout des My::collection, le long de tes 500 .cpp . si tu t'amuses à faire des #include <collection.hpp> dans chaque fichier : ton temps de compilation explose, la taille de ton binaire aussi. Sans compter que si tu modifies 1 octet de ton template, ton projet entier recompile (use scons d'ailleurs). il faut recourir à une instanciation explicite pour régler ce genre de problème. ça a l'air con, mais ce genre de bêtises, c'est typiquement le truc que font systématiquement les mecs qui te sortent « les templates ça pue, les temps de compilations explosent »
export permettraient de résoudre ce genre de problème, g++ -frepo est un début de solution, une instanciation explicite séparér à la main est envisageable de temps en temps, pour les types de bases au moins ... mais dans tous les cas il faut être conscient de ce qui se passe en fixer des limites
je te conseille l'excellent http://www.josuttis.com/tmplbook/index.html(...)
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 8.
le terme de bootstraping est mieux, parce qu'il a une petite histoire. Le Baron de Munchausen était tombé dans des marais, il était empétré. Pour s'en sortir, il s'est tiré par sa queue de cheval, et par les languettes de ses bottes (bootstrap)
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 3.
Quand à tous les autres logiciels compilés à l'aide d'un compilateur avec une partie arrirèe gcc, ils seront sans doute plus performants car plus optimisés, à défaut, ils seront compilés en moins de temps
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à -2.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 4.
moi je suis pour la précompilation, tant qu'on reste avec du code le plus standard possible. j'ai pas envie de me taper un "stdafx.h" magique. je veux que ça soit transparent
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à -1.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à -1.
cela dit t'es sur de tes stats ? tu as fais avec sloccount ?
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 1.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 5.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à -3.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 1.
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 3.
# Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 1.
à moins que cela ne soit implicitement une réfrence à export, ou une facilité d'utilisation accrue de -frepo ...
[^] # Re: Le futur de GCC se dévoile !
Posté par TazForEver . En réponse à la dépêche Le futur de GCC se dévoile !. Évalué à 3.
cela dit export est assez polémique, non pas à cause de son coût de mise en oeuvre, mais à cause de son approche du problème
# Re: Megatokyo disponible en français
Posté par TazForEver . En réponse à la dépêche Megatokyo disponible en français. Évalué à 2.
à part celui-ci http://qball.no-ip.com/test/index.php?s=27(...) , pas encore disponible, je n'ai rien trouvé
[^] # Re: Entente tumultueuse entre Linux et lecteurs LG
Posté par TazForEver . En réponse à la dépêche Entente tumultueuse entre Linux et lecteurs LG. Évalué à 5.
[^] # Re: OOo sur France-Info
Posté par TazForEver . En réponse au journal OOo sur France-Info. Évalué à 2.
# Re: Gnome 2.2 et 2.4 : pb
Posté par TazForEver . En réponse au journal Gnome 2.2 et 2.4 : pb. Évalué à 2.
# IRC
Posté par TazForEver . En réponse au journal Lugs à Pau(64) ?. Évalué à 2.
[^] # Re: Lugs à Pau(64) ?
Posté par TazForEver . En réponse au journal Lugs à Pau(64) ?. Évalué à 2.
[^] # Re: Lugs à Pau(64) ?
Posté par TazForEver . En réponse au journal Lugs à Pau(64) ?. Évalué à 2.