URL: https://linuxfr.org/users/serge_ss_paille/journaux/breves-de-pythran Title: Brèves de Pythran Authors: serge_sans_paille Date: 2014年01月22日T22:11:29+01:00 License: CC By-SA Tags: python, pythran et logo Score: 33 Commençons très fort : « comment allez vous, yau de poële ?» Aux détours de mes pérégrination dans le monde de l'open source à travers ce magnifique projet de traducteur Python Scientifique vers C++ que certains d'entre vous suivent depuis quelque temps déjà, le (bien connu ?) [Pythran](http://pythonhosted.org/pythran), j'apprends plein de truc. Alors hop on partage ! Au programme (ahah) : * de la conception d'un logo * des temps de compilation en C++ * de la gloire # Conception de Logo # Pleins de projets ont un logo. Un logo c'est joli, classouille, ça fait bien sur les présentations et c'est... pas un truc de programmeur. La preuve, c'est que je m'y suis essayé, et ça avait donné [ça](http://ridee.enstb.org/sguelton/cxx-for-snakes.png). Par chance, un super ex-étudiant (ex-super étudiant me semblait peu clair) a des relations, et les adorateurs de Pythran (comptez bien 5 personnes) ont pu choisir parmi plusieurs logos ! Une fois le choix fait, un petit coup de [GIMP](http://www.gimp.org/) permet de passer en mode deux couleurs pour avoir un look moins crayonné, et facilite la [vectorization](http://en.wikipedia.org/wiki/Vectorization_%28image_tracing%29) de l'image. Hop, un petit coup d'[Inkscape](http://www.inkscape.org) et on finit avec un beau logo [votre navigateur affiche-t-il le SVG ?](https://raw2.github.com/serge-sans-paille/pythran/master/logo.svg) sinon comme [ça](http://ridee.enstb.org/sguelton/logo.png) peut-être ? # Temps de compilation # Pythran simule le polymorphisme dynamique de Python en utilisant le polymorphisme statique fournit par les template de C++ (et vive C++11 et les _variadics template_ d'ailleurs). Un gros inconvénient est que la bibliothèque utilisée par Pythran pour réimplémenter (une toute petite partie de) la bibliothèque standard Python est du coup fournit sous forme d'un fichier d'en-tête. Oui, *un* fichier d'en-tête, naïf que j'étais :-) Quel désastre, il fallait près d'une minute pour compiler un « hello world » car on tirait toutes les dépendances (oui, même [nt2](https://github.com/MetaScale/nt2)) inutiles. Comme Pythran a une connaissance complète du code généré, un gros chantier a été entrepris : éclater le bousin en pleins de fichiers d'en-tête et n'inclure que le strict minimum. C'est chose faite et on est retombé sur des temps de compilation raisonnables, de l'ordre de quelques secondes, plus pour les quelques gros cas. Le temps de validation (plus de 1000 cas test quand même) est passé de plus de deux heures (invivable) à moins de trente minutes (raisonnable). NT2 et toutes les libs Boost sont construites comme ça, ça aurait du me mettre la puce à l'oreille... Petit désagrément, tout l'historique du fichier est perdu, car l'arborescence a complètement changée. Mais je ne voyais pas de solution au problème. # la [gloire](http://gatherer.wizards.com/pages/Card/Details.aspx?multiverseid=34822) # Après presque deux ans de dev, recevoir un mail d'un américain qui utilise le projet, puis d'un français, forcément [linuxfr](https://linuxfr.org)ien, c'est... très troublant ! On a envie de répondre à toutes les questions, corriger tout les problèmes relevés, bref c'est chouette. Et quel surprise de présenter son compilo à [l'autre bout de la planète](http://lanyrd.com/2013/pyhpc2013/sctbgz/) et de croiser des français qui t'abordent en disant « je lis linuxfr, j'aime bien ce que tu fais ». Ça, c'est du carburant propre pour la machine à coder !

AltStyle によって変換されたページ (->オリジナル) /