Merge pull request #134514 from MostAwesomeDude/chicken

CHICKEN docs and updates

authored by sternenseemann and committed by GitHub e9d8ace0 165da724

+103 -4
+49
doc/languages-frameworks/chicken.section.md
··· 1 + # CHICKEN {#sec-chicken} 2 + 3 + [CHICKEN](https://call-cc.org/) is a 4 + [R⁵RS](https://schemers.org/Documents/Standards/R5RS/HTML/)-compliant Scheme 5 + compiler. It includes an interactive mode and a custom package format, "eggs". 6 + 7 + ## Using Eggs 8 + 9 + Eggs described in nixpkgs are available inside the 10 + `chickenPackages.chickenEggs` attrset. Including an egg as a build input is 11 + done in the typical Nix fashion. For example, to include support for [SRFI 12 + 189](https://srfi.schemers.org/srfi-189/srfi-189.html) in a derivation, one 13 + might write: 14 + 15 + ```nix 16 + buildInputs = [ 17 + chicken 18 + chickenPackages.chickenEggs.srfi-189 19 + ]; 20 + ``` 21 + 22 + Both `chicken` and its eggs have a setup hook which configures the environment 23 + variables `CHICKEN_INCLUDE_PATH` and `CHICKEN_REPOSITORY_PATH`. 24 + 25 + ## Updating Eggs 26 + 27 + nixpkgs only knows about a subset of all published eggs. It uses 28 + [egg2nix](https://github.com/the-kenny/egg2nix) to generate a 29 + package set from a list of eggs to include. 30 + 31 + The package set is regenerated by running the following shell commands: 32 + 33 + ``` 34 + $ nix-shell -p chickenPackages.egg2nix 35 + $ cd pkgs/development/compilers/chicken/5/ 36 + $ egg2nix eggs.scm > eggs.nix 37 + ``` 38 + 39 + ## Adding Eggs 40 + 41 + When we run `egg2nix`, we obtain one collection of eggs with 42 + mutually-compatible versions. This means that when we add new eggs, we may 43 + need to update existing eggs. To keep those separate, follow the procedure for 44 + updating eggs before including more eggs. 45 + 46 + To include more eggs, edit `pkgs/development/compilers/chicken/5/eggs.scm`. 47 + The first section of this file lists eggs which are required by `egg2nix` 48 + itself; all other eggs go into the second section. After editing, follow the 49 + procedure for updating eggs.
+1
doc/languages-frameworks/index.xml
··· 9 9 <xi:include href="android.section.xml" /> 10 10 <xi:include href="beam.section.xml" /> 11 11 <xi:include href="bower.section.xml" /> 12 + <xi:include href="chicken.section.xml" /> 12 13 <xi:include href="coq.section.xml" /> 13 14 <xi:include href="crystal.section.xml" /> 14 15 <xi:include href="cuda.section.xml" />
+50 -4
pkgs/development/compilers/chicken/5/eggs.nix
··· 1 - { pkgs }: 1 + { pkgs, stdenv }: 2 2 rec { 3 3 inherit (pkgs) eggDerivation fetchegg; 4 4 ··· 32 32 ]; 33 33 }; 34 34 35 + r7rs = eggDerivation { 36 + name = "r7rs-1.0.5"; 37 + 38 + src = fetchegg { 39 + name = "r7rs"; 40 + version = "1.0.5"; 41 + sha256 = "0zyi1z4m1995hm2wfc5wpi8jjgxcwk03qknq5v2ygff3akxazsf6"; 42 + }; 43 + 44 + buildInputs = [ 45 + matchable 46 + srfi-1 47 + srfi-13 48 + ]; 49 + }; 50 + 35 51 srfi-1 = eggDerivation { 36 52 name = "srfi-1-0.5.1"; 37 53 ··· 47 63 }; 48 64 49 65 srfi-13 = eggDerivation { 50 - name = "srfi-13-0.3"; 66 + name = "srfi-13-0.3.1"; 51 67 52 68 src = fetchegg { 53 69 name = "srfi-13"; 54 - version = "0.3"; 55 - sha256 = "0yaw9i6zhpxl1794pirh168clprjgmsb0xlr96drirjzsslgm3zp"; 70 + version = "0.3.1"; 71 + sha256 = "12ryxs3w3las0wjdh0yp52g1xmyq1fb48xi3i26l5a9sfx7gbilp"; 56 72 }; 57 73 58 74 buildInputs = [ ··· 71 87 72 88 buildInputs = [ 73 89 90 + ]; 91 + }; 92 + 93 + srfi-145 = eggDerivation { 94 + name = "srfi-145-0.1"; 95 + 96 + src = fetchegg { 97 + name = "srfi-145"; 98 + version = "0.1"; 99 + sha256 = "1r4278xhpmm8gww64j6akpyv3qjnn14b6nsisyb9qm7yx3pkpim9"; 100 + }; 101 + 102 + buildInputs = [ 103 + 104 + ]; 105 + }; 106 + 107 + srfi-189 = eggDerivation { 108 + name = "srfi-189-0.1"; 109 + 110 + src = fetchegg { 111 + name = "srfi-189"; 112 + version = "0.1"; 113 + sha256 = "1nmrywpi9adi5mm1vcbxxsgw0j3v6m7s4j1mii7icj83xn81cgvx"; 114 + }; 115 + 116 + buildInputs = [ 117 + r7rs 118 + srfi-1 119 + srfi-145 74 120 ]; 75 121 }; 76 122
+3
pkgs/development/compilers/chicken/5/eggs.scm
··· 1 1 ;; Eggs used by egg2nix 2 2 args 3 3 matchable 4 + 5 + ;; other eggs to include in nixpkgs 6 + srfi-189