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

Répondre à