Re: comment enregistrer les commandes de compilation? (C++, GCC récent) du moteur RefPerSys

Basile STARYNKEVITCH <[email protected]>
Newsgroups gmane.linux.debian.user.french
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.