Armaged^WAmalgamation

Depuis la semaine dernière, j’ai corrigé plusieurs bugs dans pkgin, comme vous l’avez peut-être lu ici ou . Ces fixes devraient marquer la fin de la branche 0.3, actuellement disponible dans pkgsrc, et je me permets de rappeler que si vous ne l’avez pas déjà fait, je ne saurais trop vous conseiller que de mettre à jour vos pkgin 0.3.3.1 en 0.3.3.4 dès que possible, les correctifs étant assez violents.

Je démarre donc aujourd’hui la branche 0.4, et comme je l’ai annoncé à droite et à gauche, cette branche a 3 objectifs majeurs :

  • Inclusion de SQLite dans le source tree

  • Amélioration des performances

  • Integration propre des patchs MINIX

J’avais adressé le premier point lors du 1er Hackathon Parisien, mais plusieurs éléments m’empêchaient d’être pleinement satisfait. Étant d’un naturel maniaque, evincer ce magnifique WARNS=2 me fend le coeur, mais en l’occurrence, c’est la seule façon de mener à bien la compilation de sqlite3.c lorsqu’on désactive un certain nombre de fonctions :

La directive WARNS=2 intègre entre autre le drapeau -Wunused, et lorsqu’on inclut le fichier sqlite.c officiel, c’est une myriade d’insultes que gcc vous jette à la figure.

Je vous livre l’état de mes recherches. SQLite, sous license “public domain”, permet l’inclusion d’un fichier dit “Amalgamation”, sqlite3.c, de pres de 130000 lignes, qui represente l’ensemble de SQLite en un seul .c. Très pratique. Mais ce fichier est en réalité le résultat d’une petite manipulation effectuée depuis les sources officielles et originales. Ainsi, on téléchargera depuis le site officiel le zip (allez comprendre) de la version souhaitée, puis réalisera les opérations suivantes :

And voilà, le fichier sqlite3.c alors généré est une amalgamation de SQLite exempte des fonctions sus-citées, qu’on peut notemment voir ici.