GPCE 2017
Mon 23 - Tue 24 October 2017 Vancouver, Canada
co-located with SPLASH 2017
Mon 23 Oct 2017 11:45 - 12:00 at Regency A - Staging Chair(s): Nada Amin

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
this URL might only work when visiting from a URL.

Mon 23 Oct
Times are displayed in time zone: (GMT-07:00) Tijuana, Baja California change

10:30 - 12:00: GPCE 2017 - Staging at Regency A
Chair(s): Nada AminUniversity of Cambridge
gpce-201710:30 - 10:55
Rui GeUniversity of British Columbia, Canada, Ronald GarciaUniversity of British Columbia, Canada
DOI Authorizer link
gpce-201710:55 - 11:20
Georg OfenbeckETH Zurich, Switzerland, Tiark RompfPurdue University, Markus PüschelETH Zürich
DOI Authorizer link
gpce-201711:20 - 11:45
Junpei OishiUniversity of Tsukuba, Japan, Yukiyoshi KameyamaUniversity of Tsukuba, Japan
DOI Authorizer link
gpce-201711:45 - 12:00
Ludovic CourtèsInria, France
DOI Authorizer link