Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
134 tokens/sec
GPT-4o
9 tokens/sec
Gemini 2.5 Pro Pro
47 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Code Staging in GNU Guix (1709.00833v1)

Published 4 Sep 2017 in cs.PL and cs.SE

Abstract: 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 connguration in a single, multi-tier language, while facilitating code reuse and code sharing .

Citations (2)

Summary

We haven't generated a summary for this paper yet.