Code Staging in GNU Guix - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Communication Dans Un Congrès Année : 2017

Code Staging in GNU Guix

Résumé

GNU Guix is a “functional” package manager that builds upon earlier work on Nix. Guix implements high-level abstractions such as packages and operating system services as domain-specic languages (DSLs) embedded in Scheme. It also implements build actions and operating system orchestration in Scheme. This leads to a multi-tier programming environment where embedded code snippets are staged for eventual execution. This paper presents G-expressions or “gexps”, the staging mechanism we devised for Guix. We explain our journey from traditional Lisp S-expressions to G-expressions, which augment the former with contextual information and ensure hygienic code staging. We discuss the implementation of gexps and report on our experience using them in a variety of operating system use cases—from package build processes to system services. Gexps provide a novel way to cover many aspects of OS configuration in a single, multi-tier language, while facilitating code reuse and code sharing.
Fichier principal
Vignette du fichier
gpce.pdf (455.11 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01580582 , version 1 (01-09-2017)

Licence

Identifiants

Citer

Ludovic Courtès. Code Staging in GNU Guix. 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE’17), Oct 2017, Vancouver, Canada. ⟨10.1145/3136040.3136045⟩. ⟨hal-01580582⟩

Collections

INRIA INRIA2
14931 Consultations
2233 Téléchargements

Altmetric

Partager

Gmail Mastodon Facebook X LinkedIn More