Corpus ID: 6985001

Functional Package Management with Guix

@article{Courts2013FunctionalPM,
  title={Functional Package Management with Guix},
  author={L. Court{\`e}s},
  journal={ArXiv},
  year={2013},
  volume={abs/1305.4584}
}
We describe the design and implementation of GNU Guix, a purely functional package manager designed to support a complete GNU/Linux distribution. Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. It builds upon the low-level build and deployment layer of the Nix package manager. Guix uses Scheme as its programming interface. In particular, we devise an embedded domain-specific language (EDSL) to describe and compose… Expand
Code staging in GNU Guix
TLDR
G-expressions or "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. Expand
Reproducible and User-Controlled Software Environments in HPC with Guix
TLDR
This work presents GNU Guix and the functional package management paradigm and shows how it can improve reproducibility and sharing among researchers with representative use cases. Expand
Making Scientific Software Installation Reproducible On Cray Systems Using EasyBuild
Cray provides a tuned and supported OS and programming environment (PE), including compilers and libraries integrated with the modules system. While the Cray PE is updated frequently, tools andExpand
Experience Report: debootstrapping the OCaml compiler
  • 2021
It is common for programming languages that their reference implementation is implemented in the language itself. This requires a “bootstrap”: a copy of a previous version of the implementation isExpand
On the use of package managers by the C++ open-source community
TLDR
It is concluded that most participants are not reluctant to use C++ package managers and that Open-Source licensing, High Availability of Libraries, Good Documentation, and Ease of Configuration can be considered crucial factors for the successful adoption of C++ dependency management via language-specific package managers. Expand
Modular architecture for code and metadata sharing
TLDR
This paper proposes a modular system architecture, Haknam, better suited for code and related metadata sharing, which precisely tracks code interdependencies, allows flexible naming and querying of code references, and collects code fragments and their related metadata as messages in a distributed log-centric pipeline. Expand
Relationship Maintenance in Software Language Repositories
  • R. Lämmel
  • Computer Science
  • Art Sci. Eng. Program.
  • 2017
TLDR
A corresponding language Ueber with an executable semantics is introduced which maintains relationships between language-typed artifacts in an SLR, based on the comprehensive, formal, executable (logic programming-based) definition of the Uebers. Expand
Dependency Solving Is Still Hard, but We Are Getting Better at It
Dependency solving is a hard (NP-complete) problem in all non-trivial component models due to either mutually incompatible versions of the same packages or explicitly declared package conflicts. AsExpand
Dependency Solving Is Still Hard, but We Are Getting Better at It
TLDR
A census of dependency solving capabilities in state-of-the-art package managers concludes that some proposals are starting to take off while—with few exceptions—others have not, and reflects on why that has been the case and looks at novel challenges for dependency solving that have emerged since. Expand
Scalable Workflows and Reproducible Data Analysis for Genomics.
TLDR
This chapter shows how any researcher can create a reusable and reproducible bioinformatics pipeline that can be deployed and run anywhere and how to create a scalable, reusable, and shareable workflow using four different workflow engines: the Common Workflow Language (CWL), Guix Workflow language (GWL), Snakemake, and Nextflow. Expand
...
1
2
...

References

SHOWING 1-10 OF 42 REFERENCES
NixOS: a purely functional Linux distribution
TLDR
This paper has implemented the NixOS system configuration model, which means that all static parts of a system are built by pure functions and are immutable, stored in a way analogously to a heap in a purely function language. Expand
An adaptive package management system for scheme
TLDR
The main characteristic of this system is its neutrality with respect to the various Scheme implementations, which allows the programmer to blend, within the same program, independent components which have been developed and tested within different Scheme implementations. Expand
Nix: A Safe and Policy-Free System for Software Deployment
TLDR
Nix is presented, a deployment system that addresses safety and flexibility issues through a simple technique of using cryptographic hashes to compute unique paths for component instances. Expand
The GNU manifesto
TLDR
This project aims to supply, eventually, everything useful that normally comes with a Unix system, and more. Expand
Caching function calls using precise dependencies
TLDR
This paper describes the implementation of a purely functional programming language for building software systems, and sketches how the language interpreter calculates precise dependencies that are both dynamic and fine-grained. Expand
Staged deployment in mirage, an integrated software upgrade testing and distribution system
TLDR
The authors' evaluation focuses on the most novel aspect of Mirage, namely its staged upgrade deployment based on the clustering of usermachines according to their environments and configurations, and suggests that Mirage's staged deployment is effective for real upgrade problems. Expand
Revised6 Report on the Algorithmic Language Scheme
TLDR
Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today. Expand
The Depot: A Framework for Sharing Software Installation Across Organizational and UNIX Platform Boundaries
The depot is a coherent framework for distributing and administering non-OSdistribution UNIX applications across extensibly numerous and diverse computer platforms. It is designed to promote reliableExpand
Applying Module System Research to Package Management
Package managers found in popular operating systems are similar to module systems in many programming languages. Recent language research has focused on numerous ways to improve module systems,Expand
Store - a System for Handling Third-Party Applications in a Heterogeneous Computer Environment
TLDR
The Store system administration tool suite is presented, which helps administering third party applications in a heterogeneous Unix environment, giving better overview, more consistency, and less manual work. Expand
...
1
2
3
4
5
...