diff options
author | sternenseemann <sternenseemann@systemli.org> | 2022-04-22 14:02:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-22 14:02:23 +0200 |
commit | e9d8ace0ae0466f59419bca4dffa4dd433e899c3 (patch) | |
tree | fe4017e34a9c03f028e288acc793ea61940eaf26 /doc/languages-frameworks | |
parent | 165da7245c7c41383740c8ec11d6d76312a4ec78 (diff) | |
parent | ec35f59fd10ce8cd3965eab830a00087fa636b0c (diff) |
Merge pull request #134514 from MostAwesomeDude/chicken
CHICKEN docs and updates
Diffstat (limited to 'doc/languages-frameworks')
-rw-r--r-- | doc/languages-frameworks/chicken.section.md | 49 | ||||
-rw-r--r-- | doc/languages-frameworks/index.xml | 1 |
2 files changed, 50 insertions, 0 deletions
diff --git a/doc/languages-frameworks/chicken.section.md b/doc/languages-frameworks/chicken.section.md new file mode 100644 index 0000000000000..d8c35bd20c506 --- /dev/null +++ b/doc/languages-frameworks/chicken.section.md @@ -0,0 +1,49 @@ +# CHICKEN {#sec-chicken} + +[CHICKEN](https://call-cc.org/) is a +[R⁵RS](https://schemers.org/Documents/Standards/R5RS/HTML/)-compliant Scheme +compiler. It includes an interactive mode and a custom package format, "eggs". + +## Using Eggs + +Eggs described in nixpkgs are available inside the +`chickenPackages.chickenEggs` attrset. Including an egg as a build input is +done in the typical Nix fashion. For example, to include support for [SRFI +189](https://srfi.schemers.org/srfi-189/srfi-189.html) in a derivation, one +might write: + +```nix + buildInputs = [ + chicken + chickenPackages.chickenEggs.srfi-189 + ]; +``` + +Both `chicken` and its eggs have a setup hook which configures the environment +variables `CHICKEN_INCLUDE_PATH` and `CHICKEN_REPOSITORY_PATH`. + +## Updating Eggs + +nixpkgs only knows about a subset of all published eggs. It uses +[egg2nix](https://github.com/the-kenny/egg2nix) to generate a +package set from a list of eggs to include. + +The package set is regenerated by running the following shell commands: + +``` +$ nix-shell -p chickenPackages.egg2nix +$ cd pkgs/development/compilers/chicken/5/ +$ egg2nix eggs.scm > eggs.nix +``` + +## Adding Eggs + +When we run `egg2nix`, we obtain one collection of eggs with +mutually-compatible versions. This means that when we add new eggs, we may +need to update existing eggs. To keep those separate, follow the procedure for +updating eggs before including more eggs. + +To include more eggs, edit `pkgs/development/compilers/chicken/5/eggs.scm`. +The first section of this file lists eggs which are required by `egg2nix` +itself; all other eggs go into the second section. After editing, follow the +procedure for updating eggs. diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml index 144fa96bac120..3d5b2f738976d 100644 --- a/doc/languages-frameworks/index.xml +++ b/doc/languages-frameworks/index.xml @@ -9,6 +9,7 @@ <xi:include href="android.section.xml" /> <xi:include href="beam.section.xml" /> <xi:include href="bower.section.xml" /> + <xi:include href="chicken.section.xml" /> <xi:include href="coq.section.xml" /> <xi:include href="crystal.section.xml" /> <xi:include href="cuda.section.xml" /> |