Code Staging in GNU GuixShort paper
GNU Guix is a “functional” package manager that borrows from earlier
work on Nix by Dolstra \textit{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 \emph{staged} for eventual execution.
In this paper we present \emph{G-expressions} or “\emph{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.
this URL might only work when visiting from a http://www.sigplan.org/ URL.
Mon 23 OctDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00 | |||
10:30 25mTalk | Refining Semantics for Multi-stage Programming GPCE 2017 DOI Authorizer link | ||
10:55 25mTalk | Staging for Generic Programming in Space and Time GPCE 2017 DOI Authorizer link | ||
11:20 25mTalk | Staging with Control: Type-Safe Multi-stage Programming with Control Operators GPCE 2017 DOI Authorizer link | ||
11:45 15mTalk | Code Staging in GNU GuixShort paper GPCE 2017 Ludovic Courtès Inria, France DOI Authorizer link |