Home Explore Blog Models CI



nixpkgs

1st chunk of `doc/languages-frameworks/scheme.section.md`
61fff1aa667f6e97ec9ac26d6dd18276d4613a51e39f375b0000000100000480
# 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 at 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.


Title: Akku Package Management for Scheme in Nix
Summary
This section details the integration of Akku, a package manager for R6RS & R7RS Scheme libraries, within the Nix environment. Approximately two hundred Akku (and mirrored snow-fort) libraries are available via the `akkuPackages` attrset, and the `akku` executable itself is at the top level. These packages can be used in Nix derivations' `buildInputs`, `nix-shell`, and are tested with Chez and Chibi Scheme. An example demonstrates how to include packages like `chez-srfi`. The package index is maintained in `deps.toml` and can be updated by running `./update.sh`.