Guix Scheme Containers and Environments
Run Scheme implementations in Guix containers/environments, and package libraries for them.
Supports Chibi, Foment, Sagittarius, Gauche, Loko, STKlos, TR7, Mosh, Chez, and SKINT.
Portable R6RS and R7RS Libraries
Some Scheme systems packaged here will read R7RS_LIBRARY_PATH
(or R6RS_LIBRARY_PATH for R6RS systems) to find paths for strictly
conforming R7RS (R6RS) libraries. To copy libraries to these pathes,
use the portable-r7rs-build-system (portable-r6rs-build-system).
On systems that support both R6RS and R7RS, the R6RS libraries will take precedence (rationale: R6RS has more stuff).
SRFIs and Portability Libraries
This channel packages some SRFIs for portable use. They are labeled
srfi-M-rNrs, where M is the number and N is the standard. The
SRFIs are packaged so that R7RS systems use (srfi M) and R6RS
systems use (srfi :M). No claim is made to the portability of
(srfi :M name), etc, unless made necessary by sublibraries.
- SRFI-1
- SRFI-8
- SRFI-9 (R6RS only)
- SRFI-128
- SRFI-227
None of these packages have any dependencies. This is because some implementations already come with optimized versions of these SRFIs. For instance, a system with built-in comparators doesn't need to pull in the portable SRFI-128 implementation to use some other library that imports SRFI-128.
The following portability libraries are also exported.
compatible-parameters: Exports(mcgoron compatible-parameters)for R6RS systems that exports either an SRFI-39 or R7RS parameter interface.
Supported Implementations
Chibi Scheme
- Package:
chibi-scheme-with-path - Path:
chibi-lib-dir,chibi-binlib-dir - Supports
R7RS_LIBRARY_PATH
Foment
- Package:
foment-with-path - Path:
foment-lib-dir - Supports
R7RS_LIBRARY_PATH
The build script here will build Foment. The last release of Foment was a long time ago, so the build is for the current HEAD at the time of writing (6089c3c).
Sagittarius
- Package:
sagittarius-scheme-with-path - Path:
sagittarius-lib-dir - Supports
R7RS_LIBRARY_PATH,R6RS_LIBRARY_PATH
Gauche
- Package:
gauche-with-path - Pure Scheme:
gauche-pure-scheme-build-system
TODO: explain gauche, add gauche build system
Loko
- Package:
loko-scheme-with-path - Path:
loko-scheme-lib-dir - Supports
R7RS_LIBRARY_PATH,R6RS_LIBRARY_PATH
STKlos
- Package:
stklos-with-path - Path:
stklos-lib-dir - Supports
R7RS_LIBRARY_PATH
TODO: loading bytecode
TR7
- Package:
tr7-with-path - Path:
tr7-lib-dir - Supports
R7RS_LIBRARY_PATH
TODO: extensions
Mosh
- Package:
mosh-scheme-with-path - Path:
mosh-lib-dir - Supports
R6RS_LIBRARY_PATH
SKint
- Package:
skint-with-path - Path:
skint-lib-dir - Supports
R7RS_LIBRARY_PATH
Chez Scheme
- Package:
chez-scheme-with-path - Path:
chez-lib-dir - Supports
R6RS_LIBRARY_PATH
TODO: heap files?
Planned
Any R6RS/R7RS that has a path mechanism and that can run on a system running Guix should be included.
Maybe?
- Picrin (does not search the filesystem for libraries)
- Chicken, Cyclone, Gambit (compilers)
- The Javascipt ones
- Kawa (java)
- Racket, MIT-Scheme (dunno how they work)
- Ikarus
- Vicare (difficult to compile on modern systems)
