about summary refs log tree commit diff
path: root/doc/languages-frameworks/scheme.section.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/languages-frameworks/scheme.section.md')
-rw-r--r--doc/languages-frameworks/scheme.section.md35
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.
+