Merge pull request #134514 from MostAwesomeDude/chicken
CHICKEN docs and updates
This commit is contained in:
commit
e9d8ace0ae
49
doc/languages-frameworks/chicken.section.md
Normal file
49
doc/languages-frameworks/chicken.section.md
Normal file
@ -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.
|
@ -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" />
|
||||
|
@ -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";
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
;; Eggs used by egg2nix
|
||||
args
|
||||
matchable
|
||||
|
||||
;; other eggs to include in nixpkgs
|
||||
srfi-189
|
||||
|
Loading…
Reference in New Issue
Block a user