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 | |
parent | 165da7245c7c41383740c8ec11d6d76312a4ec78 (diff) | |
parent | ec35f59fd10ce8cd3965eab830a00087fa636b0c (diff) |
Merge pull request #134514 from MostAwesomeDude/chicken
CHICKEN docs and updates
-rw-r--r-- | doc/languages-frameworks/chicken.section.md | 49 | ||||
-rw-r--r-- | doc/languages-frameworks/index.xml | 1 | ||||
-rw-r--r-- | pkgs/development/compilers/chicken/5/eggs.nix | 54 | ||||
-rw-r--r-- | pkgs/development/compilers/chicken/5/eggs.scm | 3 |
4 files changed, 103 insertions, 4 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" /> diff --git a/pkgs/development/compilers/chicken/5/eggs.nix b/pkgs/development/compilers/chicken/5/eggs.nix index 1c1377350d214..c74afe1873710 100644 --- a/pkgs/development/compilers/chicken/5/eggs.nix +++ b/pkgs/development/compilers/chicken/5/eggs.nix @@ -1,4 +1,4 @@ -{ pkgs }: +{ pkgs, stdenv }: rec { inherit (pkgs) eggDerivation fetchegg; @@ -32,6 +32,22 @@ rec { ]; }; + r7rs = eggDerivation { + name = "r7rs-1.0.5"; + + src = fetchegg { + name = "r7rs"; + version = "1.0.5"; + sha256 = "0zyi1z4m1995hm2wfc5wpi8jjgxcwk03qknq5v2ygff3akxazsf6"; + }; + + buildInputs = [ + matchable + srfi-1 + srfi-13 + ]; + }; + srfi-1 = eggDerivation { name = "srfi-1-0.5.1"; @@ -47,12 +63,12 @@ rec { }; srfi-13 = eggDerivation { - name = "srfi-13-0.3"; + name = "srfi-13-0.3.1"; src = fetchegg { name = "srfi-13"; - version = "0.3"; - sha256 = "0yaw9i6zhpxl1794pirh168clprjgmsb0xlr96drirjzsslgm3zp"; + version = "0.3.1"; + sha256 = "12ryxs3w3las0wjdh0yp52g1xmyq1fb48xi3i26l5a9sfx7gbilp"; }; buildInputs = [ @@ -74,6 +90,36 @@ rec { ]; }; + srfi-145 = eggDerivation { + name = "srfi-145-0.1"; + + src = fetchegg { + name = "srfi-145"; + version = "0.1"; + sha256 = "1r4278xhpmm8gww64j6akpyv3qjnn14b6nsisyb9qm7yx3pkpim9"; + }; + + buildInputs = [ + + ]; + }; + + srfi-189 = eggDerivation { + name = "srfi-189-0.1"; + + src = fetchegg { + name = "srfi-189"; + version = "0.1"; + sha256 = "1nmrywpi9adi5mm1vcbxxsgw0j3v6m7s4j1mii7icj83xn81cgvx"; + }; + + buildInputs = [ + r7rs + srfi-1 + srfi-145 + ]; + }; + srfi-37 = eggDerivation { name = "srfi-37-1.4"; diff --git a/pkgs/development/compilers/chicken/5/eggs.scm b/pkgs/development/compilers/chicken/5/eggs.scm index b743d6e3229d2..499109470849c 100644 --- a/pkgs/development/compilers/chicken/5/eggs.scm +++ b/pkgs/development/compilers/chicken/5/eggs.scm @@ -1,3 +1,6 @@ ;; Eggs used by egg2nix args matchable + +;; other eggs to include in nixpkgs +srfi-189 |