diff options
Diffstat (limited to 'doc/languages-frameworks/scheme.section.md')
-rw-r--r-- | doc/languages-frameworks/scheme.section.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/languages-frameworks/scheme.section.md b/doc/languages-frameworks/scheme.section.md new file mode 100644 index 0000000000000..b18ff2d7dee0e --- /dev/null +++ b/doc/languages-frameworks/scheme.section.md @@ -0,0 +1,35 @@ +# Scheme {#sec-scheme} + +## Package Management {#sec-scheme-package-management} + +### Akku {#sec-scheme-package-management-akku} + +About two hundred R6RS & R7RS libraries from [Akku](https://akkuscm.org/) +(which also mirrors [snow-fort](https://snow-fort.org/pkg)) +are available inside the `akkuPackages` attrset, and the Akku executable +itself is at the top level as `akku`. The packages could be used +in a derivation's `buildInputs`, work inside of `nix-shell`, and +are tested using [Chez](https://www.scheme.com/) & +[Chibi](https://synthcode.com/wiki/chibi-scheme) +Scheme during build time. + +Including a package as a build input is done in the typical Nix fashion. +For example, to include +[a bunch of SRFIs](https://akkuscm.org/packages/chez-srfi/) +primarily for Chez Scheme in a derivation, one might write: + +```nix +{ + buildInputs = [ + chez + akkuPackages.chez-srfi + ]; +} + +``` + +The package index is located in `pkgs/tools/package-management/akku` +as `deps.toml`, and should be updated occasionally by running `./update.sh` +in the directory. Doing so will pull the source URLs for new packages and +more recent versions, then write them to the TOML. + |