• [^] # Re: Quelques "killer features"

    Posté par . En réponse à la dépêche Guix : un outil pour les remplacer tous. Évalué à 1.

    C'est une information qui fait partie du paquet, donc tu peux l'installer et tu peux la vérifier de la même manière. Évidemment il peut y avoir un problème au bootstrap, mais je présume qu'ily een a un aussi aussi avec ta solution.

    Pour faire simple, la graine utilisée pour bootstrapper est donnée par le commit de Guix.

    $ guix describe
    Generation 10 Sep 03 2018 17:32:44 (current)
     guix e0fa68c
     repository URL: https://git.savannah.gnu.org/git/guix.git
     branch: master
     commit: e0fa68c7718fffd33d81af415279d6ddb518f727

    https://guix.gnu.org/manual/en/html_node/Invoking-guix-describe.html#Invoking-guix-describe

    Imaginons que l'on ait la définition du paquet foochemin/du/paquet—et ce paquet n'est pas dans l'arbre officiel.

    Connaissant le commit, je peux à n'importe quel moment réutiliser la même graine et donc construire le paquet.

    guix time-machine --commit=e0fa68c -- build -L chemin/du/paquet foo

    Et le résultat sera toujours le même. Enfin devrait. ;-)

    En revanche, le résultat de guix build -L chemin/du/paquet foo dépendra de l'état (commit) dans lequel je me trouve au moment où je lance ladite commande.

    La machinerie (côté Guix) est là mais tout n'est pas résolu non plus (côté dev. des langages).

    Pour ce qui concerne le C, GNU Mes a fait un gros boulot et la graine commence à être raisonnable. :-)

    Mais pour d'autres langages, c'est encore assez compliqué. Voir ce qui est fait pour Rust.

    Ne parlons pas d'Haskell. ;-)

    etc.

    https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/
    https://guix.gnu.org/blog/2018/bootstrapping-rust/
    https://www.joachim-breitner.de/blog/748-Thoughts_on_bootstrapping_GHC