[PATCH] Chicken build system + some example eggs

  • Done
  • quality assurance status badge
Details
3 participants
  • Efraim Flashner
  • Ludovic Courtès
  • raingloom
Owner
unassigned
Submitted by
raingloom
Severity
normal
R
R
raingloom wrote on 13 Oct 2020 10:52
(name . Guix Patches)(address . guix-patches@gnu.org)
20201013105220.7606ee5a@riseup.net
Here it is, chicken-build-system.

# What works
Building eggs, dependencies, importing them from search path.

# What's broken
Cross-compilation has not been attempted beacuse the Go build system I
based this on does not support it either.

# Necessary improvements
The Go build system removes some references. I was not sure if this is
needed for Chicken, so for now I left it out.

# Eggs
Some were selected because I'll need for the 9p egg, the rest because
the agrep egg was the first one I found that had dependencies, so it
was selected as a perfect test case.
I don't know if all eggs will work. Eggs that bind to native libraries
(like SDL) still need to be tested.

## SRFI-14 licensing
SRFI-14 has a weird license. The metadata says it's "BSD" but it's
clearly not BSD. I'm not sure what it is or if it's compatible with
Guix. If not, we could probably contact the authors and ask them to
relicense it.

# Chicken 4
Not attempted. Nix supports it but it's old and looks mostly abandoned.
I think we can skip it.
From 502235505c75446758cc1932bd1ba333644423ca Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Mon, 12 Oct 2020 04:11:59 +0200
Subject: [PATCH 01/11] gnu: Added search paths for Chicken Scheme.

* gnu/packages/chicken.scm (chicken): Added search paths
[native-search-paths]: added CHICKEN_REPOSITORY_PATH and CHICKEN_INCLUDE_PATH
---
gnu/packages/chicken.scm | 8 ++++++++
1 file changed, 8 insertions(+)

Toggle diff (21 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 7b86a58012..0dd5571eec 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -59,6 +59,14 @@
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "CHICKEN_REPOSITORY_PATH")
+ ;; TODO extract binary version into a module level definition.
+ (files (list "var/lib/chicken/11")))
+ (search-path-specification
+ (variable "CHICKEN_INCLUDE_PATH")
+ (files '("share")))))
(propagated-inputs `(("gcc-toolchain", gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
--
2.28.0
From 8a03cdcda02988384fd3a2e6e36adf0713264311 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:49:35 +0200
Subject: [PATCH 03/11] gnu: Use qualified license names in chicken.scm instead
of selective import.

* gnu/packages/chicken.scm (chicken)[license]: Use qualified name.
---
gnu/packages/chicken.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 0dd5571eec..567e043741 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -24,7 +24,7 @@
#:use-module (guix download)
#:use-module (gnu packages commencement)
#:use-module ((guix licenses)
- #:select (bsd-3)))
+ #:prefix license:))
(define-public chicken
(package
@@ -74,4 +74,4 @@
"CHICKEN is a compiler for the Scheme programming language. CHICKEN
produces portable and efficient C, supports almost all of the R5RS Scheme
language standard, and includes many enhancements and extensions.")
- (license bsd-3)))
+ (license license:bsd-3)))
--
2.28.0
From a7e3b91b76625e01eed749c2c83a94862e3ef738 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:55:42 +0200
Subject: [PATCH 04/11] gnu: Added imports for chicken eggs.

* gnu/packages/chicken.scm: New module imports.
---
gnu/packages/chicken.scm | 3 +++
1 file changed, 3 insertions(+)

Toggle diff (18 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 567e043741..b9738c4737 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -20,8 +20,11 @@
(define-module (gnu packages chicken)
#:use-module (gnu packages)
#:use-module (guix packages)
+ #:use-module (guix build-system chicken)
#:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (gnu packages commencement)
#:use-module ((guix licenses)
#:prefix license:))
--
2.28.0
From 3cbb676b118c2db197b0d2b621cbcb5133e09fd9 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:51:02 +0200
Subject: [PATCH 05/11] gnu: Added chicken-srfi-1.

* gnu/packages/chicken.scm (chicken-srfi-1): New variable.
---
gnu/packages/chicken.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index b9738c4737..d937ec7044 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -78,3 +78,32 @@
produces portable and efficient C, supports almost all of the R5RS Scheme
language standard, and includes many enhancements and extensions.")
(license license:bsd-3)))
+
+(define-public chicken-srfi-1
+ (package
+ (name "chicken-srfi-1")
+ (version "0.5.1")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append
+ "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/srfi-1/tags/"
+ version))
+ (revision 39055)
+ (user-name "anonymous")
+ (password "")))
+ (file-name "srfi-1")
+ (sha256
+ (base32
+ "02940zsjrmn7c34rnp1rllm2nahh9jvszlzrw8ak4pf31q09cmq1"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "srfi-1"))
+ (home-page "http://wiki.call-cc.org/eggref/5/srfi-1")
+ (synopsis "SRFI-1 list library")
+ (description
+ "The list library defined in SRFI-1 contains a lot of useful list
+processing procedures for construction, examining, destructuring and
+manipulating lists and pairs.")
+ (license license:bsd-3)))
--
2.28.0
From f564a2ac0e3c716347245b90fe8c7d4332b91889 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:52:08 +0200
Subject: [PATCH 06/11] gnu: Added chicken-srfi-69

* gnu/packages/chicken.scm (chicken-srfi-69): New variable.
---
gnu/packages/chicken.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index d937ec7044..b8878685fa 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -107,3 +107,28 @@ language standard, and includes many enhancements and extensions.")
processing procedures for construction, examining, destructuring and
manipulating lists and pairs.")
(license license:bsd-3)))
+
+(define-public chicken-srfi-69
+ (package
+ (name "chicken-srfi-69")
+ (version "0.4.1")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/srfi-69/tags/"
+ version))
+ (revision 39057)
+ (user-name "anonymous")
+ (password "")))
+ (sha256
+ (base32
+ "1z0m9vmg9bj9z0a941pls6igvg8nmhq4mj5psjjidbp0fac572mp"))))
+ (arguments '(#:egg-name "srfi-69"))
+ (build-system chicken-build-system)
+ (home-page "http://wiki.call-cc.org/eggref/5/srfi-69")
+ (synopsis "An implementation of SRFI 69 with SRFI 90 extensions")
+ (description
+ "Hash table implementation and binary search")
+ (license license:bsd-3)))
--
2.28.0
From 062e1ba3e468df07115bd022130d577132d13a41 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:52:54 +0200
Subject: [PATCH 07/11] gnu: Added chicken-iset.

* gnu/packages/chicken.scm (chicken-iset): New variable.
---
gnu/packages/chicken.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index b8878685fa..7462431ba4 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -132,3 +132,28 @@ manipulating lists and pairs.")
(description
"Hash table implementation and binary search")
(license license:bsd-3)))
+
+(define-public chicken-iset
+ (package
+ (name "chicken-iset")
+ (version "2.2")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/iset/tags/" version))
+ (revision 39057)
+ (user-name "anonymous")
+ (password "")))
+ (sha256
+ (base32
+ "0gz50n5i561n5sk9prry0lrxz6bfrq9if5bclaq6a0f7lzinhnzb"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "iset"))
+ (synopsis "Integer set library")
+ (home-page "http://wiki.call-cc.org/eggref/5/iset")
+ (description
+ " Bit-vectors provide an abstract interface to bitwise operations
+typically done with integers")
+ (license license:bsd-3)))
--
2.28.0
From bb4c402ff458239a9270680d1b7032182fcab5df Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:53:40 +0200
Subject: [PATCH 08/11] gnu: Added chicken-datatype.

* gnu/packages/chicken.scm (chicken-datatype): New variable.
---
gnu/packages/chicken.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 7462431ba4..fcd5f242f4 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -157,3 +157,28 @@ manipulating lists and pairs.")
" Bit-vectors provide an abstract interface to bitwise operations
typically done with integers")
(license license:bsd-3)))
+
+(define-public chicken-datatype
+ (package
+ (name "chicken-datatype")
+ (version "1.6")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/datatype/tags/" version))
+ (revision 39057)
+ (user-name "anonymous")
+ (password "")))
+ (sha256
+ (base32
+ "1a58q8ypjkjz6wdv25247wixds4179239d36nnvsfn6gp70s9jfq"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "datatype"))
+ (home-page "http://wiki.call-cc.org/eggref/5/datatype")
+ (synopsis "A facility for creating and using variant records")
+ (description
+ "A facility for creating and using variant records, as described
+in the book Essentials of Programming Languages by Friedman, Wand and Haynes")
+ (license license:bsd-3)))
--
2.28.0
From f20607f28be8bd050407e0ae582db7c03285dbb2 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:24:12 +0200
Subject: [PATCH 09/11] gnu: Added chicken-srfi-14.

* gnu/packages/chicken.scm (chicken-srfi-14): New variable.
---
gnu/packages/chicken.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index fcd5f242f4..4229d0b21f 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -108,6 +108,33 @@ processing procedures for construction, examining, destructuring and
manipulating lists and pairs.")
(license license:bsd-3)))
+(define-public chicken-srfi-14
+ (package
+ (name "chicken-srfi-14")
+ (version "0.2.1")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/srfi-14/tags/" version))
+ (revision 39057)
+ (user-name "anonymous")
+ (password "")))
+ (sha256
+ (base32
+ "0wjsqfwawh9bx6vvii1gwag166bxkflc0ib374fbws14914g2ac1"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "srfi-14"))
+ (home-page "http://wiki.call-cc.org/eggref/5/srfi-14")
+ (synopsis "Character set library")
+ (description
+ "Character sets can be created, extended, tested for the membership of
+a characters and be compared to other character sets")
+ (license (license:non-copyleft
+ "file://srfi-14.scm"
+ "See end of srfi-14.scm in the distribution."))))
+
(define-public chicken-srfi-69
(package
(name "chicken-srfi-69")
--
2.28.0
From aaef438dd04f85305c50f50003d0f17082bfb83c Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:54:39 +0200
Subject: [PATCH 10/11] gnu: Added chicken-agrep.

* gnu/packages/chicken.scm (chicken-agrep): New variable.
---
gnu/packages/chicken.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 4229d0b21f..09f51a10af 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -209,3 +209,32 @@ typically done with integers")
"A facility for creating and using variant records, as described
in the book Essentials of Programming Languages by Friedman, Wand and Haynes")
(license license:bsd-3)))
+
+(define-public chicken-agrep
+ (package
+ (name "chicken-agrep")
+ (version "1.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/iraikov/chicken-agrep")
+ (commit version)))
+ (sha256
+ (base32
+ "0z05x7f154n9bgmainrsmncf5i6dil43r9ymr3rdgwbg4wnxmz4s"))))
+ ;; TODO do we really have to make these propagated?
+ ;; I don't know Chicken's module system well enough to tell
+ (propagated-inputs
+ `(("chicken-datatype" ,chicken-datatype)
+ ("chicken-srfi-1" ,chicken-srfi-1)
+ ("chicken-srfi-14" ,chicken-srfi-14)))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "agrep"))
+ (synopsis "Approximate string matching library")
+ (home-page "http://wiki.call-cc.org/eggref/5/agrep")
+ (description
+ "This library implements the Wu-Manber algorithm for string searching
+with errors, popularized by the agrep Unix command and the glimpse file
+indexing tool.")
+ (license license:gpl3+)))
--
2.28.0
From 52a27d11eb3d4d0ced3deda01fe901bf2f1937fd Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Mon, 12 Oct 2020 04:19:46 +0200
Subject: [PATCH 11/11] gnu: Added myself to chicken.scm copyright.

---
gnu/packages/chicken.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 09f51a10af..378449582c 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 Evan Hanson <evhan@foldling.org>
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
--
2.28.0
L
L
Ludovic Courtès wrote on 18 Oct 2020 18:10
(name . raingloom)(address . raingloom@riseup.net)(address . 43976@debbugs.gnu.org)
87mu0j347o.fsf@gnu.org
Hi!

raingloom <raingloom@riseup.net> skribis:

Toggle quote (2 lines)
> Here it is, chicken-build-system.

Woohoo, really nice! Great to welcome another Scheme in our home. :-)

Overall the series LGTM. Inline below are a few suggestions for minor
issues.

Toggle quote (4 lines)
> # What's broken
> Cross-compilation has not been attempted beacuse the Go build system I
> based this on does not support it either.

That’s fine, it can come later if/when someone feels like it.

Toggle quote (4 lines)
> # Necessary improvements
> The Go build system removes some references. I was not sure if this is
> needed for Chicken, so for now I left it out.

You can check the output of ‘guix size chicken-srfi-14’ (say). If it
contains things that shouldn’t be there, like GCC or whatever, then
we should do something about it.

[...]

Toggle quote (8 lines)
>>From 502235505c75446758cc1932bd1ba333644423ca Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Mon, 12 Oct 2020 04:11:59 +0200
> Subject: [PATCH 01/11] gnu: Added search paths for Chicken Scheme.
>
> * gnu/packages/chicken.scm (chicken): Added search paths
> [native-search-paths]: added CHICKEN_REPOSITORY_PATH and CHICKEN_INCLUDE_PATH

[...]

Toggle quote (9 lines)
> + (native-search-paths
> + (list (search-path-specification
> + (variable "CHICKEN_REPOSITORY_PATH")
> + ;; TODO extract binary version into a module level definition.
> + (files (list "var/lib/chicken/11")))
> + (search-path-specification
> + (variable "CHICKEN_INCLUDE_PATH")
> + (files '("share")))))

Is it just share/, not share/chicken/ or something? A Chicken-specific
directory name would be better, but if that’s really what Chicken
expects, then so be it.

Otherwise LGTM!

Toggle quote (9 lines)
> From a734e591ad066c20a53f9d0f955716ba8422bac5 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 13 Oct 2020 09:26:52 +0200
> Subject: [PATCH 02/11] guix: Added chicken-build-system.
>
> * guix/build-system/chicken.scm: New file.
> * guix/build/chicken-build-system.scm: New file.
> * Makefile.am: Add them.

Please mention it in doc/guix.texi under “Build Systems” with a
paragraph explaining the basics, as is done for the other build systems.

Toggle quote (5 lines)
> --- /dev/null
> +++ b/guix/build/chicken-build-system.scm
> @@ -0,0 +1,103 @@
> +(define-module (guix build chicken-build-system)

Please add the GPLv3+ copyright header.

Toggle quote (4 lines)
> +;; TODO how do we run tests???
> +
> +;; TODO remove references

You can remove the second TODO unless/until we have reasons to believe
this has to be done.

The first TODO is more problematic though. Is there a standard way to
run tests? It would be great if you could skim the packages you added
to see how they handle tests, so that ‘chicken-build-system’ can have a
‘check’ phase that follows common practice.

Otherwise LGTM!

Toggle quote (7 lines)
>>From a7e3b91b76625e01eed749c2c83a94862e3ef738 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 13 Oct 2020 09:55:42 +0200
> Subject: [PATCH 04/11] gnu: Added imports for chicken eggs.
>
> * gnu/packages/chicken.scm: New module imports.

Usually we’d import modules in the patch where we first make use of
them. Otherwise one might think this patch has no effect.

Toggle quote (3 lines)
> + (synopsis "An implementation of SRFI 69 with SRFI 90 extensions")

I think ‘guix lint’ won’t like that…

Toggle quote (3 lines)
> + (description
> + "Hash table implementation and binary search")

… and a full sentence here would be welcome. :-)


Same for the other packages.

Toggle quote (19 lines)
> + "release/5/srfi-14/tags/" version))
> + (revision 39057)
> + (user-name "anonymous")
> + (password "")))
> + (sha256
> + (base32
> + "0wjsqfwawh9bx6vvii1gwag166bxkflc0ib374fbws14914g2ac1"))))
> + (build-system chicken-build-system)
> + (arguments '(#:egg-name "srfi-14"))
> + (home-page "http://wiki.call-cc.org/eggref/5/srfi-14")
> + (synopsis "Character set library")
> + (description
> + "Character sets can be created, extended, tested for the membership of
> +a characters and be compared to other character sets")
> + (license (license:non-copyleft
> + "file://srfi-14.scm"
> + "See end of srfi-14.scm in the distribution."))))

of <file://...>.

The license looks weird indeed, but it looks like a valid free software
license. The only discussion I found is at:

Toggle quote (9 lines)
> From 52a27d11eb3d4d0ced3deda01fe901bf2f1937fd Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Mon, 12 Oct 2020 04:19:46 +0200
> Subject: [PATCH 11/11] gnu: Added myself to chicken.scm copyright.
>
> ---
> gnu/packages/chicken.scm | 1 +
> 1 file changed, 1 insertion(+)

Please do that along with your first changes to the file.

That’s it.

Could you send a v2?

Thank you for working on it!

Ludo’.
R
R
raingloom wrote on 20 Nov 2020 05:51
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 43976@debbugs.gnu.org)
20201120055117.7cb76230@riseup.net
Well, CHICKEN_IMPORT_PATH seems to just be some kind of historical
baggage, at least as far as I can tell. It is not mentioned anywhere on
https://wiki.call-cc.org/man/5and from what I deciphered from the
sources, the only time it's used it gets prepended to
CHICKEN_REPOSITORY_PATH.

I removed the search path and things still seem to work. It was
probably used in earlier version of Chicken and Nix just never removed
it. Didn't find any related issues either.
I think I'll comment it out for now but leave it in? If there are no
issues with it a few months after merging, it can probably be deleted
entirely...

Possibly more important: I noticed some warnings in some builds about
cp(1). So far it hasn't caused any issues. Gonna fix this, then I think
it'll be mergeable.

```
building srfi-18
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/build-srfi-18
-host -D compiling-extension -J -s -regenerate-import-libraries
-setup-mode -I /tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18 -C
-I/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18 -O2 -d1
srfi-18.scm -o
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/srfi-18.so
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/build-srfi-18: line
8: srfi-18.types: Permission denied
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/build-srfi-18
-regenerate-import-libraries -M -setup-mode -static -I
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18 -emit-link-file
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/srfi-18.link -host
-D compiling-extension -c -unit srfi-18 -D compiling-static-extension
-C -I/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18 -O2 -d1
srfi-18.scm -o
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/srfi-18.static.o
cp: cannot create regular file 'srfi-18.types': Permission denied
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/build-srfi-18: line
8: srfi-18.types: Permission denied
/gnu/store/aags0k5s6pnk1askg8k3czyhi34gz4pg-chicken-5.2.0/bin/csc
-setup-mode -s -host -I
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18 -C
-I/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18 -O2 -d0
srfi-18.import.scm -o
/tmp/guix-build-chicken-srfi-18-0.1.5.drv-0/srfi-18/srfi-18.import.so
```
L
L
Ludovic Courtès wrote on 21 Nov 2020 12:23
(name . raingloom)(address . raingloom@riseup.net)(address . 43976@debbugs.gnu.org)
87k0ufc5sd.fsf@gnu.org
Hi,

raingloom <raingloom@riseup.net> skribis:

Toggle quote (13 lines)
> Well, CHICKEN_IMPORT_PATH seems to just be some kind of historical
> baggage, at least as far as I can tell. It is not mentioned anywhere on
> https://wiki.call-cc.org/man/5 and from what I deciphered from the
> sources, the only time it's used it gets prepended to
> CHICKEN_REPOSITORY_PATH.
>
> I removed the search path and things still seem to work. It was
> probably used in earlier version of Chicken and Nix just never removed
> it. Didn't find any related issues either.
> I think I'll comment it out for now but leave it in? If there are no
> issues with it a few months after merging, it can probably be deleted
> entirely...

I’m not familiar with Chicken. The only advice I could give is to refer
to the Chicken documentation before checking how other distros do it,
it’s probably safer.

Toggle quote (4 lines)
> Possibly more important: I noticed some warnings in some builds about
> cp(1). So far it hasn't caused any issues. Gonna fix this, then I think
> it'll be mergeable.

Yup weird.

Anyway, let me know when you have a v2!

Thanks,
Ludo’.
R
R
raingloom wrote on 21 Nov 2020 21:45
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 43976@debbugs.gnu.org)
20201121214543.37c27429@riseup.net
On Fri, 20 Nov 2020 05:51:17 +0100
raingloom <raingloom@riseup.net> wrote:

Toggle quote (4 lines)
> Possibly more important: I noticed some warnings in some builds about
> cp(1). So far it hasn't caused any issues. Gonna fix this, then I
> think it'll be mergeable.

Seems to be a srfi-18 specific issue, so I'm calling
chicken-build-system final for now. You can merge it if it stands up to
a review.
The other eggs also seem fine, srfi-18 just has a somewhat shoddily
written auxiliary build script to generate some type information,
probably based on the current Chicken version? I'm not sure what it's
doing to be honest. It doesn't fail to build because the script doesn't
check for errors, which is why it took a while to notice it.

This is why we always `set -e` in our Bash scripts, kids.

Anyways, all other eggs seem to be fine, and none of them depend on
srfi-18.
E
E
Efraim Flashner wrote on 21 Nov 2020 21:58
(name . raingloom)(address . raingloom@riseup.net)
20201121205858.GE1088@E5400
On Sat, Nov 21, 2020 at 09:45:43PM +0100, raingloom wrote:
Toggle quote (11 lines)
> On Fri, 20 Nov 2020 05:51:17 +0100
> raingloom <raingloom@riseup.net> wrote:
>
> > Possibly more important: I noticed some warnings in some builds about
> > cp(1). So far it hasn't caused any issues. Gonna fix this, then I
> > think it'll be mergeable.
>
> Seems to be a srfi-18 specific issue, so I'm calling
> chicken-build-system final for now. You can merge it if it stands up to
> a review.

Well that's exciting! That's the patches at the beginning of the email
thread?

Toggle quote (11 lines)
> The other eggs also seem fine, srfi-18 just has a somewhat shoddily
> written auxiliary build script to generate some type information,
> probably based on the current Chicken version? I'm not sure what it's
> doing to be honest. It doesn't fail to build because the script doesn't
> check for errors, which is why it took a while to notice it.
>
> This is why we always `set -e` in our Bash scripts, kids.
>
> Anyways, all other eggs seem to be fine, and none of them depend on
> srfi-18.

You can always rant at upstream or your monitor, your choice :)

--
Efraim Flashner <efraim@flashner.co.il> ????? ?????
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl+5f44ACgkQQarn3Mo9
g1HIixAArjcPaK+QNr944VwpGIE9y5SWKxADZO6ba1Kvf6HQSAOG7IDy/kve0QAz
LVSP56yOJ4xd/qvOxw/kGqKywbw7ktzvX+Ei75FW+phW2Ejj766wXIN7UopnKfK/
Iq9XhctQtcRb8l0tMhcH38XQtmrPql4qrd1dFqGOwBM3osAl4vspeUnzvH0lwqUC
LwKfTOazxUWpssS+8bQqPMtpsdzcin2+6F0uq0GF2E8V83VfMVtVMbX54DIS/ecx
y+lEg5r+zuS5Ls7Y305fq8NPqbVgrK41PlYTk53Dkdn0u6aphpS3A/gJQjfodz67
i7aZIl7zuSxPnkkjV12gnutj8ICzr4GZd7PDymRLktMv13orf9RyNiSCl/niPQa8
Psukj/gni2tfT5XfUKeD3vxSozsXHagiDGi1Md5xBzwqea+Q3nGxLWplzqHgAh5M
MyhCG66GKsiYmoHKw27+WqPZJYC4CqvX2MLeN7ln3e22GnMvIKiG9JAx2xkt632m
O1OuMdY13PGw2oS/eLN5/QMMTEePpBL9UfxG/6KTgw1Q1RRTAtTrxD+naFmVD1jP
DLYoI1IDKHHLF4l8/RSvV+NCOImn3gwGjSjC9N9wuAnhHdRpEWHrTjmStfihQKXo
RtYepVIESg3i6jwBqR/L+OO7vtcx6WTVr67R6jeemvPD278FQXw=
=BvVT
-----END PGP SIGNATURE-----


R
R
raingloom wrote on 21 Nov 2020 23:13
(name . Efraim Flashner)(address . efraim@flashner.co.il)
20201121231338.6fcf3659@riseup.net
On Sat, 21 Nov 2020 22:58:58 +0200
Efraim Flashner <efraim@flashner.co.il> wrote:

Toggle quote (15 lines)
> > The other eggs also seem fine, srfi-18 just has a somewhat shoddily
> > written auxiliary build script to generate some type information,
> > probably based on the current Chicken version? I'm not sure what
> > it's doing to be honest. It doesn't fail to build because the
> > script doesn't check for errors, which is why it took a while to
> > notice it.
> >
> > This is why we always `set -e` in our Bash scripts, kids.
> >
> > Anyways, all other eggs seem to be fine, and none of them depend on
> > srfi-18.
>
> You can always rant at upstream or your monitor, your choice :)
>

Oh I will, once I figure out where to do that. So far I've been more
focused on just getting enough things working to hack on the 9p egg.
R
R
raingloom wrote on 23 Nov 2020 00:12
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 43976@debbugs.gnu.org)
20201123001241.024b7a08@riseup.net
On Sat, 21 Nov 2020 21:45:43 +0100
raingloom <raingloom@riseup.net> wrote:

Toggle quote (21 lines)
> On Fri, 20 Nov 2020 05:51:17 +0100
> raingloom <raingloom@riseup.net> wrote:
>
> > Possibly more important: I noticed some warnings in some builds
> > about cp(1). So far it hasn't caused any issues. Gonna fix this,
> > then I think it'll be mergeable.
>
> Seems to be a srfi-18 specific issue, so I'm calling
> chicken-build-system final for now. You can merge it if it stands up
> to a review.
> The other eggs also seem fine, srfi-18 just has a somewhat shoddily
> written auxiliary build script to generate some type information,
> probably based on the current Chicken version? I'm not sure what it's
> doing to be honest. It doesn't fail to build because the script
> doesn't check for errors, which is why it took a while to notice it.
>
> This is why we always `set -e` in our Bash scripts, kids.
>
> Anyways, all other eggs seem to be fine, and none of them depend on
> srfi-18.

Forgot to actually send the modified patch :D
The others should be unchanged.
From eeb306cb76ea8e6c1487df0c13c7539d69202e3f Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Mon, 12 Oct 2020 04:11:59 +0200
Subject: [PATCH 01/20] gnu: Added search paths for Chicken Scheme.

* gnu/packages/chicken.scm (chicken): Added search paths
[native-search-paths]: added CHICKEN_REPOSITORY_PATH and a comment about
CHICKEN_INCLUDE_PATH.
---
gnu/packages/chicken.scm | 11 +++++++++++
1 file changed, 11 insertions(+)

Toggle diff (24 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 729cf25a6c..8a7f2a9eaf 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -59,6 +59,17 @@
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "CHICKEN_REPOSITORY_PATH")
+ ;; TODO extract binary version into a module level definition.
+ (files (list "var/lib/chicken/11")))
+ ;; the use of this variable is unclear. the online docs don't even
+ ;; mention it. i'm leaving it in as a comment for now, in case
+ ;; something breaks.
+ ;; (search-path-specification
+ ;; (variable "CHICKEN_INCLUDE_PATH")
+ ;; (files '("share")))))
(propagated-inputs `(("gcc-toolchain" ,gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
--
2.29.2
R
R
raingloom wrote on 24 Nov 2020 21:22
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 43976@debbugs.gnu.org)
20201124212254.0c69b459@riseup.net
On Mon, 23 Nov 2020 00:12:41 +0100
raingloom <raingloom@riseup.net> wrote:

Toggle quote (27 lines)
> On Sat, 21 Nov 2020 21:45:43 +0100
> raingloom <raingloom@riseup.net> wrote:
>
> > On Fri, 20 Nov 2020 05:51:17 +0100
> > raingloom <raingloom@riseup.net> wrote:
> >
> > > Possibly more important: I noticed some warnings in some builds
> > > about cp(1). So far it hasn't caused any issues. Gonna fix this,
> > > then I think it'll be mergeable.
> >
> > Seems to be a srfi-18 specific issue, so I'm calling
> > chicken-build-system final for now. You can merge it if it stands up
> > to a review.
> > The other eggs also seem fine, srfi-18 just has a somewhat shoddily
> > written auxiliary build script to generate some type information,
> > probably based on the current Chicken version? I'm not sure what
> > it's doing to be honest. It doesn't fail to build because the script
> > doesn't check for errors, which is why it took a while to notice it.
> >
> > This is why we always `set -e` in our Bash scripts, kids.
> >
> > Anyways, all other eggs seem to be fine, and none of them depend on
> > srfi-18.
>
> Forgot to actually send the modified patch :D
> The others should be unchanged.

*facepalm* i somehow messed up the parens in that one. maybe i didn't
have Paredit on or something??? here's the fixed version.
but yeah, with this, it should be complete.
From 2ba52705cf909590a428ea598dfdf1c61ada6a8c Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Mon, 12 Oct 2020 04:11:59 +0200
Subject: [PATCH 01/20] gnu: Added search paths for Chicken Scheme.

* gnu/packages/chicken.scm (chicken): Added search paths
[native-search-paths]: added CHICKEN_REPOSITORY_PATH and a comment about
CHICKEN_INCLUDE_PATH.
---
gnu/packages/chicken.scm | 11 +++++++++++
1 file changed, 11 insertions(+)

Toggle diff (24 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 729cf25a6c..42232ec3b8 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -59,6 +59,17 @@
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "CHICKEN_REPOSITORY_PATH")
+ ;; TODO extract binary version into a module level definition.
+ (files (list "var/lib/chicken/11")))))
+ ;; the use of this variable is unclear. the online docs don't even
+ ;; mention it. i'm leaving it in as a comment for now, in case
+ ;; something breaks.
+ ;; (search-path-specification
+ ;; (variable "CHICKEN_INCLUDE_PATH")
+ ;; (files '("share")))
(propagated-inputs `(("gcc-toolchain" ,gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
--
2.29.2
L
L
Ludovic Courtès wrote on 27 Nov 2020 10:09
(name . raingloom)(address . raingloom@riseup.net)(address . 43976@debbugs.gnu.org)
87eekfxj1y.fsf@gnu.org
Hi raingloom!

raingloom <raingloom@riseup.net> skribis:

Toggle quote (9 lines)
> From 2ba52705cf909590a428ea598dfdf1c61ada6a8c Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Mon, 12 Oct 2020 04:11:59 +0200
> Subject: [PATCH 01/20] gnu: Added search paths for Chicken Scheme.
>
> * gnu/packages/chicken.scm (chicken): Added search paths
> [native-search-paths]: added CHICKEN_REPOSITORY_PATH and a comment about
> CHICKEN_INCLUDE_PATH.

[...]

Toggle quote (12 lines)
> + (native-search-paths
> + (list (search-path-specification
> + (variable "CHICKEN_REPOSITORY_PATH")
> + ;; TODO extract binary version into a module level definition.
> + (files (list "var/lib/chicken/11")))))
> + ;; the use of this variable is unclear. the online docs don't even
> + ;; mention it. i'm leaving it in as a comment for now, in case
> + ;; something breaks.
> + ;; (search-path-specification
> + ;; (variable "CHICKEN_INCLUDE_PATH")
> + ;; (files '("share")))

I think you can remove the comment here; presumably we now know that
CHICKEN_REPOSITORY_PATH is the one that matters. :-)

Could you please ensure that earlier comments notably at
https://issues.guix.gnu.org/43976#1 have been taken into account, that
the SRFI packages still build and have a layout consistent with the
var/lib/chicken/11 search path above, and send a v2 of the whole series?

Thanks in advance!

Ludo’.
R
R
raingloom wrote on 1 Dec 2020 05:14
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 43976@debbugs.gnu.org)
20201201051428.15ac4d84@riseup.net
On Fri, 27 Nov 2020 10:09:29 +0100
Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (32 lines)
> Hi raingloom!
>
> raingloom <raingloom@riseup.net> skribis:
>
> > From 2ba52705cf909590a428ea598dfdf1c61ada6a8c Mon Sep 17 00:00:00
> > 2001 From: raingloom <raingloom@riseup.net>
> > Date: Mon, 12 Oct 2020 04:11:59 +0200
> > Subject: [PATCH 01/20] gnu: Added search paths for Chicken Scheme.
> >
> > * gnu/packages/chicken.scm (chicken): Added search paths
> > [native-search-paths]: added CHICKEN_REPOSITORY_PATH and a
> > comment about CHICKEN_INCLUDE_PATH.
>
> [...]
>
> > + (native-search-paths
> > + (list (search-path-specification
> > + (variable "CHICKEN_REPOSITORY_PATH")
> > + ;; TODO extract binary version into a module level
> > definition.
> > + (files (list "var/lib/chicken/11")))))
> > + ;; the use of this variable is unclear. the online docs don't
> > even
> > + ;; mention it. i'm leaving it in as a comment for now, in case
> > + ;; something breaks.
> > + ;; (search-path-specification
> > + ;; (variable "CHICKEN_INCLUDE_PATH")
> > + ;; (files '("share")))
>
> I think you can remove the comment here; presumably we now know that
> CHICKEN_REPOSITORY_PATH is the one that matters. :-)

I guess I can, since it doesn't looks like it will cause problems. I
left leave the commented path there though.

Toggle quote (10 lines)
> Could you please ensure that earlier comments notably at
> <https://issues.guix.gnu.org/43976#1> have been taken into account,
> that the SRFI packages still build and have a layout consistent with
> the var/lib/chicken/11 search path above, and send a v2 of the whole
> series?
>
> Thanks in advance!
>
> Ludo’.

Everything builds, tests succeed, and the layouts are the same.
The comments have been taken into account. I listed them in previous
mails so I'll skip them now.
For srfi-14, I hope "non-copyleft" is fine.
Ran guix lint on all packages and it only mentioned archival.

Thanks for the feedback!

ps.: sending the updated original patchset.
i also have these for a later patchset:
0011-gnu-Added-chicken-compile-file.patch
0012-gnu-Added-chicken-srfi-18.patch
0013-gnu-Added-chicken-srfi-13.patch
0014-Added-chicken-check-errors.patch
0015-Added-chicken-defstruct.patch
0016-gnu-Added-chicken-matchable.patch
0017-gnu-Added-chicken-record-variants.patch
0018-gnu-Added-chicken-srfi-41.patch
0019-gnu-Added-chicken-uri-common.patch
0020-gnu-Added-chicken-uri-generic.patch
From 547d738458dc8be2ecebcbb19e3c70cb4df30bdb Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Mon, 12 Oct 2020 04:11:59 +0200
Subject: [PATCH 01/20] gnu: Added search paths for Chicken Scheme.

* gnu/packages/chicken.scm (chicken): Added search paths
[native-search-paths]: added CHICKEN_REPOSITORY_PATH and a comment about
CHICKEN_INCLUDE_PATH.
---
gnu/packages/chicken.scm | 8 ++++++++
1 file changed, 8 insertions(+)

Toggle diff (21 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 729cf25a6c..1067a69b5f 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -59,6 +59,14 @@
;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "CHICKEN_REPOSITORY_PATH")
+ ;; TODO extract binary version into a module level definition.
+ (files (list "var/lib/chicken/11")))))
+ ;; (search-path-specification
+ ;; (variable "CHICKEN_INCLUDE_PATH")
+ ;; (files '("share")))
(propagated-inputs `(("gcc-toolchain" ,gcc-toolchain)))
(home-page "https://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C")
--
2.29.2
From 55c057a0fcb3cea672a8b97bc1d4af6f84aa8b38 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:49:35 +0200
Subject: [PATCH 03/20] gnu: Use qualified license names in chicken.scm instead
of selective import.

* gnu/packages/chicken.scm (chicken)[license]: Use qualified name.
---
gnu/packages/chicken.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 1067a69b5f..3eb5918c5b 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -24,7 +24,7 @@
#:use-module (guix download)
#:use-module (gnu packages commencement)
#:use-module ((guix licenses)
- #:select (bsd-3)))
+ #:prefix license:))
(define-public chicken
(package
@@ -74,4 +74,4 @@
"CHICKEN is a compiler for the Scheme programming language. CHICKEN
produces portable and efficient C, supports almost all of the R5RS Scheme
language standard, and includes many enhancements and extensions.")
- (license bsd-3)))
+ (license license:bsd-3)))
--
2.29.2
From 700ebbd7064feb9df11223ba107ff4be9cc0cc7f Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:55:42 +0200
Subject: [PATCH 04/20] gnu: Added chicken-test.

* gnu/packages/chicken.scm (chicken-test): New variable.
---
gnu/packages/chicken.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 3eb5918c5b..36bbfdbfa7 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 Evan Hanson <evhan@foldling.org>
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,8 +21,11 @@
(define-module (gnu packages chicken)
#:use-module (gnu packages)
#:use-module (guix packages)
+ #:use-module (guix build-system chicken)
#:use-module (guix build-system gnu)
#:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (gnu packages commencement)
#:use-module ((guix licenses)
#:prefix license:))
@@ -75,3 +79,28 @@
produces portable and efficient C, supports almost all of the R5RS Scheme
language standard, and includes many enhancements and extensions.")
(license license:bsd-3)))
+
+(define-public chicken-test
+ (package
+ (name "chicken-test")
+ (version "1.1")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/test/tags/" version))
+ (revision 39263)
+ (user-name "anonymous")
+ (password "")))
+ (file-name "test")
+ (sha256
+ (base32
+ "14i91cxsn6hjkx6kqf7i9syck73cw71jik61jmhg87vpxx5kfnzx"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "test"))
+ (home-page "https://wiki.call-cc.org/eggref/5/test")
+ (synopsis "Yet another testing utility")
+ (description
+ "A simple testing utility for Chicken Scheme")
+ (license license:bsd-3)))
--
2.29.2
From e35b7f2e0af8cd1c1868f10ceb3e142c6fc5e1b9 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:51:02 +0200
Subject: [PATCH 05/20] gnu: Added chicken-srfi-1.

* gnu/packages/chicken.scm (chicken-srfi-1): New variable.
---
gnu/packages/chicken.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 36bbfdbfa7..592cc382bc 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -80,6 +80,37 @@ produces portable and efficient C, supports almost all of the R5RS Scheme
language standard, and includes many enhancements and extensions.")
(license license:bsd-3)))
+(define-public chicken-srfi-1
+ (package
+ (name "chicken-srfi-1")
+ (version "0.5.1")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append
+ "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/srfi-1/tags/"
+ version))
+ (revision 39055)
+ (user-name "anonymous")
+ (password "")))
+ (file-name "srfi-1")
+ (sha256
+ (base32
+ "02940zsjrmn7c34rnp1rllm2nahh9jvszlzrw8ak4pf31q09cmq1"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "srfi-1"))
+ (native-inputs
+ `(("chicken-test" ,chicken-test)))
+ (home-page "https://wiki.call-cc.org/eggref/5/srfi-1")
+ (synopsis "SRFI-1 list library")
+ (description
+ "The list library defined in SRFI-1 contains a lot of useful list
+processing procedures for construction, examining, destructuring and
+manipulating lists and pairs.")
+ (license license:bsd-3)))
+
(define-public chicken-test
(package
(name "chicken-test")
@@ -104,3 +135,4 @@ language standard, and includes many enhancements and extensions.")
(description
"A simple testing utility for Chicken Scheme")
(license license:bsd-3)))
+
--
2.29.2
From eaaffee062ec5fac8e4a6f24a8101eb834593abe Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:52:08 +0200
Subject: [PATCH 06/20] gnu: Added chicken-srfi-69

* gnu/packages/chicken.scm (chicken-srfi-69): New variable.
---
gnu/packages/chicken.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 592cc382bc..49c7e696c5 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -111,6 +111,33 @@ processing procedures for construction, examining, destructuring and
manipulating lists and pairs.")
(license license:bsd-3)))
+(define-public chicken-srfi-69
+ (package
+ (name "chicken-srfi-69")
+ (version "0.4.1")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/srfi-69/tags/"
+ version))
+ (revision 39057)
+ (user-name "anonymous")
+ (password "")))
+ (file-name "srfi-69")
+ (sha256
+ (base32
+ "1z0m9vmg9bj9z0a941pls6igvg8nmhq4mj5psjjidbp0fac572mp"))))
+ (arguments '(#:egg-name "srfi-69"))
+ (build-system chicken-build-system)
+ (home-page "https://wiki.call-cc.org/eggref/5/srfi-69")
+ (synopsis "Implementation of SRFI 69 with SRFI 90 extensions")
+ (description
+ "Provides hash tables (also known as vlists, similar to alists in srfi-1),
+and binary search.")
+ (license license:bsd-3)))
+
(define-public chicken-test
(package
(name "chicken-test")
--
2.29.2
From 21ab568f10f89a0db769487784fb0c4deb10fab4 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:52:54 +0200
Subject: [PATCH 07/20] gnu: Added chicken-iset.

* gnu/packages/chicken.scm (chicken-iset): New variable.
---
gnu/packages/chicken.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 49c7e696c5..bc4a6bcdd9 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -138,6 +138,34 @@ manipulating lists and pairs.")
and binary search.")
(license license:bsd-3)))
+(define-public chicken-iset
+ (package
+ (name "chicken-iset")
+ (version "2.2")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/iset/tags/" version))
+ (revision 39057)
+ (user-name "anonymous")
+ (password "")))
+ (file-name "iset")
+ (sha256
+ (base32
+ "0gz50n5i561n5sk9prry0lrxz6bfrq9if5bclaq6a0f7lzinhnzb"))))
+ (native-inputs
+ `(("chicken-test" ,chicken-test)))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "iset"))
+ (synopsis "Integer set library")
+ (home-page "https://wiki.call-cc.org/eggref/5/iset")
+ (description
+ " Bit-vectors provide an abstract interface to bitwise operations
+typically done with integers")
+ (license license:bsd-3)))
+
(define-public chicken-test
(package
(name "chicken-test")
--
2.29.2
From 316d30bebc1e63f851b6ab23a1f42b1470e76b85 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:53:40 +0200
Subject: [PATCH 08/20] gnu: Added chicken-datatype.

* gnu/packages/chicken.scm (chicken-datatype): New variable.
---
gnu/packages/chicken.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index bc4a6bcdd9..28973eafa8 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -138,6 +138,35 @@ manipulating lists and pairs.")
and binary search.")
(license license:bsd-3)))
+(define-public chicken-datatype
+ (package
+ (name "chicken-datatype")
+ (version "1.6")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/datatype/tags/" version))
+ (revision 39266)
+ (user-name "anonymous")
+ (password "")))
+ (file-name "datatype")
+ (sha256
+ (base32
+ "1a58q8ypjkjz6wdv25247wixds4179239d36nnvsfn6gp70s9jfq"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "datatype"))
+ (native-inputs
+ `(("chicken-srfi-1" ,chicken-srfi-1)
+ ("chicken-test" ,chicken-test)))
+ (home-page "https://wiki.call-cc.org/eggref/5/datatype")
+ (synopsis "Facility for creating and using variant records")
+ (description
+ "A facility for creating and using variant records, as described
+in the book Essentials of Programming Languages by Friedman, Wand and Haynes")
+ (license license:bsd-3)))
+
(define-public chicken-iset
(package
(name "chicken-iset")
--
2.29.2
From 6a977d5b65082c9022281b5c4cdd767bd65d36c8 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:24:12 +0200
Subject: [PATCH 09/20] gnu: Added chicken-srfi-14.

* gnu/packages/chicken.scm (chicken-srfi-14): New variable.
---
gnu/packages/chicken.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 28973eafa8..4f442a51d9 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -111,6 +111,33 @@ processing procedures for construction, examining, destructuring and
manipulating lists and pairs.")
(license license:bsd-3)))
+(define-public chicken-srfi-14
+ (package
+ (name "chicken-srfi-14")
+ (version "0.2.1")
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "https://code.call-cc.org/svn/chicken-eggs/"
+ "release/5/srfi-14/tags/" version))
+ (revision 39057)
+ (user-name "anonymous")
+ (password "")))
+ (file-name "srfi-14")
+ (sha256
+ (base32
+ "0wjsqfwawh9bx6vvii1gwag166bxkflc0ib374fbws14914g2ac1"))))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "srfi-14"))
+ (home-page "https://wiki.call-cc.org/eggref/5/srfi-14")
+ (synopsis "Character set library")
+ (description
+ "Character sets can be created, extended, tested for the membership of
+a characters and be compared to other character sets")
+ (license (license:non-copyleft
+ "http://wiki.call-cc.org/eggref/5/srfi-14#license"))))
+
(define-public chicken-srfi-69
(package
(name "chicken-srfi-69")
--
2.29.2
From 869b56d5eba824024a50d9de28d2265955526146 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 13 Oct 2020 09:54:39 +0200
Subject: [PATCH 10/20] gnu: Added chicken-agrep.

* gnu/packages/chicken.scm (chicken-agrep): New variable.
---
gnu/packages/chicken.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
index 4f442a51d9..b700b21d29 100644
--- a/gnu/packages/chicken.scm
+++ b/gnu/packages/chicken.scm
@@ -165,6 +165,38 @@ a characters and be compared to other character sets")
and binary search.")
(license license:bsd-3)))
+(define-public chicken-agrep
+ (package
+ (name "chicken-agrep")
+ (version "1.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/iraikov/chicken-agrep")
+ (commit version)))
+ (file-name "agrep")
+ (sha256
+ (base32
+ "0z05x7f154n9bgmainrsmncf5i6dil43r9ymr3rdgwbg4wnxmz4s"))))
+ ;; TODO do we really have to make these propagated?
+ ;; I don't know Chicken's module system well enough to tell
+ (propagated-inputs
+ `(("chicken-datatype" ,chicken-datatype)
+ ("chicken-srfi-1" ,chicken-srfi-1)
+ ("chicken-srfi-14" ,chicken-srfi-14)))
+ (native-inputs
+ `(("chicken-test" ,chicken-test)))
+ (build-system chicken-build-system)
+ (arguments '(#:egg-name "agrep"))
+ (synopsis "Approximate string matching library")
+ (home-page "https://wiki.call-cc.org/eggref/5/agrep")
+ (description
+ "This library implements the Wu-Manber algorithm for approximate string
+searching with errors, popularized by the agrep Unix command and the glimpse
+file indexing tool.")
+ (license license:gpl3+)))
+
(define-public chicken-datatype
(package
(name "chicken-datatype")
--
2.29.2
L
L
Ludovic Courtès wrote on 3 Dec 2020 17:04
(name . raingloom)(address . raingloom@riseup.net)(address . 43976-done@debbugs.gnu.org)
877dpyeuz9.fsf@gnu.org
Hi raingloom,

I’ve now pushed the 11 patches as of
b5a6eddd8e9f2e840f47d3307f436433e74e16f3, tweaking packages in minor
ways: tweaking descriptions (info "(guix) Synopses and Descriptions"),
adding a ‘file-name’ field in origin that contains the full package name
and version, changing ‘native-inputs’ to ‘inputs’ in a couple of cases,
removing the stale search path comment as discussed earlier, adjusting
commit logs.

Thanks!

Ludo’.
Closed
?