On Sun, 2026-08-09 at 14:30 +0200, Sébastien Dinot wrote: > Bonjour Basile, bonjour à tou⋅te⋅s, > > Le 2026-08-08 19:20, Basile STARYNKEVITCH a écrit : > > J'aurais besoin d'idées pour enregister dans l'exécutable lui-meme > > (facilement utilisable par le débogueur GDB) la longue liste des > > arguments de compilations. > > Je ne sais pas répondre à ta question, mais elle m'intrigue, car je > ne > comprends pas l'intérêt de la manœuvre. Ne serait-il pas plus > intéressant de viser un build reproductible ? « Reproductible » au > sens > où la compilation des mêmes sources avec les mêmes options et la même > version des outils sur deux PC différents à deux moments différents > produit le même binaire, à l'octet prêt : > > https://reproducible-builds.org/
Merci je connaissais. J'ai une option --version qui affiche le git id de chaque fichier C++ (et certains des fichiers C++ ont été générés par une exécution antérieure du meme projet logiciel libre, par exemple en juillet 2026). > > La reproductibilité des builds améliore la sécurité (on peut être > certain que l'exécutable distribué est bien celui que l'on obtient en > récupérant les sources publiées, que cet exécutable n'a pas été > généré à > partir d'autres sources ou en injectant au passage une charge utile > exogène). Lorsque la compilation est reproductible, elle est de facto > pleinement documentée : > * par le code source et le commit de la version compilée ; > * les scripts de compilation associés. > > Il ne reste plus qu'à enregistrer ces informations quelque part et à > les > signer cryptographiquement pour en garder une trace durable et > vérifiable. A ma connaissance la compilation est pleinement reproductible et notamment grace à Niklas Rosenkrantz en CC https://github.com/montao/RefPerSys Mon ambition à long terme est de générer un maximum de fichier C++ à partir d'un formalisme de plus haut niveau (à définir et à faire accepter, et j'ai besoin d'un coup de main). https://arxiv.org/abs/1109.0779 donne des pistes. Le blog de Jacques Pitrat est pertinent pour donner les idées de plus haut niveau. http://bootstrappingartificialintelligence.fr/WordPress3/ n'essayez plus de contacter Pitrat, il est décédé https://fr.wikipedia.org/wiki/Jacques_Pitrat mais ses livres et papiers me semblent actuels. https://afia.asso.fr/journee-hommage-j-pitrat/ L'idée directrice étant bien évidemment le bootstrap https://fr.wikipedia.org/wiki/Bootstrap_(compilateur) C'est une vieille idée, le PAF la mettait en oeuvre en 1961 https://fr.wikipedia.org/wiki/Programmation_automatique_des_formules (je vous laisse deviner mon lien de sang avec l'auteur du PAF) > > Pour faciliter la reproductibilité, on peut figer les environnements > de > compilation et d'exécution dans un ou plusieurs conteneurs. -- Basile STARYNKEVITCH <[email protected]> 8 rue de la Faïencerie http://starynkevitch.net/Basile/ 92340 Bourg-la-Reine https://github.com/bstarynk France https://github.com/RefPerSys/RefPerSys https://orcid.org/0000-0003-0908-5250

