Code staging in GNU Guix
GNU Guix is a "functional" package manager that borrows from earlier work on Nix by Dolstra et al. . Guix implements high-level abstractions such as packages and operating system services as domain-specific languages (DSL) embedded in Scheme, and it also implements build actions and operat...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Tagungsbericht |
Sprache: | eng |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | GNU Guix is a "functional" package manager that borrows from earlier work on Nix by Dolstra
et al.
. Guix implements high-level abstractions such as packages and operating system services as domain-specific languages (DSL) embedded in Scheme, and 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.
In this paper we present
G-expressions
or "
gexps
". We explain our journey from traditional Lisp S-expressions to G-expressions, which augment the former with contextual information, and we discuss the implementation of gexps. We report on our experience using gexps 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. |
---|---|
ISSN: | 0362-1340 1558-1160 |
DOI: | 10.1145/3170492.3136045 |