From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 13 Oct 2020 08:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 43976@debbugs.gnu.org X-Debbugs-Original-To: Guix Patches Received: via spool by submit@debbugs.gnu.org id=B.160257915211904 (code B ref -1); Tue, 13 Oct 2020 08:53:02 +0000 Received: (at submit) by debbugs.gnu.org; 13 Oct 2020 08:52:32 +0000 Received: from localhost ([127.0.0.1]:45206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSG2k-00035q-7T for submit@debbugs.gnu.org; Tue, 13 Oct 2020 04:52:32 -0400 Received: from lists.gnu.org ([209.51.188.17]:43790) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSG2h-00035i-Mj for submit@debbugs.gnu.org; Tue, 13 Oct 2020 04:52:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kSG2h-00057a-Bk for guix-patches@gnu.org; Tue, 13 Oct 2020 04:52:23 -0400 Received: from mx1.riseup.net ([198.252.153.129]:42258) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kSG2a-0007uN-Lb for guix-patches@gnu.org; Tue, 13 Oct 2020 04:52:22 -0400 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4C9TnC0hg6zFgRs for ; Tue, 13 Oct 2020 01:51:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1602579119; bh=rSRee91Jdyq5MwgX+2DAD+kFO7bMqrDadVBEiRl5I6Y=; h=Date:From:To:Subject:From; b=AUDbl1LX5qckEoa1F/dQPm0JlSlzX61UWK8qA2L+YTYF18LSTPG5BBY27h2HlRrAN yet4xcgnhh5LjFQijzkyQbyqwfBk2cIDePP8zlJhzyfs/hKeHR1BUhxZcszIF9KvfN zBZ3cAlWPEgNu14OIz8A5dZSKJ0DQ5LzZ9yt1W20= X-Riseup-User-ID: F2BEBA530941D54587ABBF68DDC6DDC1CB52E0B64184D72F32371A7D00AAF2A0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4C9TnB2TvzzJmys for ; Tue, 13 Oct 2020 01:51:55 -0700 (PDT) Date: Tue, 13 Oct 2020 10:52:20 +0200 From: raingloom Message-ID: <20201013105220.7606ee5a@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/kp9IG+qxiKrEBhV4_nIhV/I" Received-SPF: pass client-ip=198.252.153.129; envelope-from=raingloom@riseup.net; helo=mx1.riseup.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/13 04:10:32 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline 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. --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0001-gnu-Added-search-paths-for-Chicken-Scheme.patch >From 502235505c75446758cc1932bd1ba333644423ca Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-guix-Added-chicken-build-system.patch =46rom a734e591ad066c20a53f9d0f955716ba8422bac5 Mon Sep 17 00:00:00 2001 From: raingloom 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. --- Makefile.am | 2 + guix/build-system/chicken.scm | 137 ++++++++++++++++++++++++++++ guix/build/chicken-build-system.scm | 103 +++++++++++++++++++++ 3 files changed, 242 insertions(+) create mode 100644 guix/build-system/chicken.scm create mode 100644 guix/build/chicken-build-system.scm diff --git a/Makefile.am b/Makefile.am index 8e91e1e558..a2b2ca1093 100644 --- a/Makefile.am +++ b/Makefile.am @@ -113,6 +113,7 @@ MODULES =3D \ guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ guix/build-system/cargo.scm \ + guix/build-system/chicken.scm \ guix/build-system/clojure.scm \ guix/build-system/cmake.scm \ guix/build-system/dub.scm \ @@ -162,6 +163,7 @@ MODULES =3D \ guix/build/download-nar.scm \ guix/build/cargo-build-system.scm \ guix/build/cargo-utils.scm \ + guix/build/chicken-build-system.scm \ guix/build/cmake-build-system.scm \ guix/build/dub-build-system.scm \ guix/build/dune-build-system.scm \ diff --git a/guix/build-system/chicken.scm b/guix/build-system/chicken.scm new file mode 100644 index 0000000000..b1629b9929 --- /dev/null +++ b/guix/build-system/chicken.scm @@ -0,0 +1,137 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2020 raingloom +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system chicken) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%chicken-build-system-modules + chicken-build + chicken-build-system)) + +(define %chicken-build-system-modules + ;; Build-side modules imported and used by default. + `((guix build chicken-build-system) + (guix build union) + ,@%gnu-build-system-modules)) + +(define (default-chicken) + ;; Lazily resolve the binding to avoid a circular dependency. + ;; TODO is this actually needed in every build system? + (let ((chicken (resolve-interface '(gnu packages chicken)))) + (module-ref chicken 'chicken))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (chicken (default-chicken)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:chicken #:inputs #:native-inputs)) + + ;; TODO: cross-compilation support + (and (not target) + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ;; Chicken compiles Scheme by using C as an interm= ediate language. + ,@(standard-packages))) + (build-inputs `(("chicken" ,chicken) + ,@native-inputs)) + (outputs outputs) + (build chicken-build) + (arguments (strip-keyword-arguments private-keywords arguments)))= )) + +(define* (chicken-build store name inputs + #:key + (phases '(@ (guix build chicken-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (install-source? #t) + (egg-name "") + (unpack-path "") + (build-flags ''()) + (tests? #t) + ;; TODO holdover from go.scm + ;; not yet sure if it should be removed. + (allow-chicken-reference? #f) + (system (%current-system)) + (guile #f) + (imported-modules %chicken-build-system-modules) + (modules '((guix build chicken-build-system) + (guix build union) + (guix build utils)))) + (define builder + `(begin + (use-modules ,@modules) + (chicken-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:install-source? ,install-source? + #:egg-name ,egg-name + #:unpack-path ,unpack-path + #:build-flags ,build-flags + #:tests? ,tests? + #:allow-chicken-reference? ,allow-chicken-reference? + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system + #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define chicken-build-system + (build-system + (name 'chicken) + (description + "Build system for Chicken Scheme programs") + (lower lower))) diff --git a/guix/build/chicken-build-system.scm b/guix/build/chicken-build= -system.scm new file mode 100644 index 0000000000..ee2b15d6c1 --- /dev/null +++ b/guix/build/chicken-build-system.scm @@ -0,0 +1,103 @@ +(define-module (guix build chicken-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build union) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (rnrs io ports) + #:use-module (rnrs bytevectors) + #:export (%standard-phases + chicken-build)) + +;; CHICKEN_EGG_CACHE is where sources are fetched and binaries are built +;; CHICKEN_INSTALL_REPOSITORY is where dependencies are looked up +;; its first component is also where new eggs are installed. + +;; TODO: deduplicate with go-build-system.scm ? +;; TODO: the binary version should be defined in one of the relevant modul= es +;; instead of being hardcoded everywhere. Tried to do that but got undefin= ed +;; variable errors. + +(define (chicken-package? name) + (string-prefix? "chicken-" name)) + +(define* (setup-chicken-environment #:key inputs outputs #:allow-other-key= s) + (setenv "CHICKEN_INSTALL_REPOSITORY" + (string-concatenate + ;; see TODO item about binary version above + (append (list (assoc-ref outputs "out") "/var/lib/chicken/11/") + (let ((oldenv (getenv "CHICKEN_INSTALL_REPOSITORY"))) + (if oldenv + (list ":" oldenv) + '()))))) + (setenv "CHICKEN_EGG_CACHE" (getcwd)) + #t) + +;; This is copied from go-build-system.scm so it could probably be simplif= ied. +;; I used it because the source of the egg needs to be unpacked into a dir= ectory +;; that is named after the egg and I knew that the go build system does th= at. +(define* (unpack #:key source egg-name unpack-path #:allow-other-keys) + "Relative to $CHICKEN_EGG_CACHE, unpack SOURCE in UNPACK-PATH, or EGG-NA= ME +when UNPACK-PATH is unset. If the SOURCE archive has a single top level +directory, it is stripped so that the sources appear directly under UNPACK= -PATH. +When SOURCE is a directory, copy its content into UNPACK-PATH instead of +unpacking." + (define (unpack-maybe-strip source dest) + (let* ((scratch-dir (string-append (or (getenv "TMPDIR") "/tmp") + "/scratch-dir")) + (out (mkdir-p scratch-dir))) + (with-directory-excursion scratch-dir + (if (string-suffix? ".zip" source) + (invoke "unzip" source) + (invoke "tar" "-xvf" source)) + (let ((top-level-files (remove (lambda (x) + (member x '("." ".."))) + (scandir ".")))) + (match top-level-files + ((top-level-file) + (when (file-is-directory? top-level-file) + (copy-recursively top-level-file dest #:keep-mtime? #t))) + (_ + (copy-recursively "." dest #:keep-mtime? #t))))) + (delete-file-recursively scratch-dir))) + + (when (string-null? egg-name) + (display "WARNING: The egg name is unset.\n")) + (when (string-null? unpack-path) + (set! unpack-path egg-name)) + (let ((dest (string-append (getenv "CHICKEN_EGG_CACHE") "/" unpack-path)= )) + (mkdir-p dest) + (if (file-is-directory? source) + (copy-recursively source dest #:keep-mtime? #t) + (unpack-maybe-strip source dest))) + #t) + +(define* (build #:key egg-name #:allow-other-keys) + "Build the Chicken egg named by EGG-NAME" + (invoke "chicken-install" "-cached" "-no-install" egg-name)) + +(define* (install #:key egg-name outputs #:allow-other-keys) + "Install the already built egg named by EGG-NAME" + (invoke "chicken-install" "-cached" egg-name)) + +;; TODO how do we run tests??? + +;; TODO remove references + +(define %standard-phases + (modify-phases gnu:%standard-phases + (replace 'unpack unpack) + (delete 'bootstrap) + (delete 'configure) + (delete 'patch-generated-file-shebangs) + (add-before 'unpack 'setup-chicken-environment setup-chicken-environme= nt) + (replace 'build build) + (delete 'check) + (replace 'install install))) + +(define* (chicken-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Chicken package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) --=20 2.28.0 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0003-gnu-Use-qualified-license-names-in-chicken.scm-inste.patch >From 8a03cdcda02988384fd3a2e6e36adf0713264311 Mon Sep 17 00:00:00 2001 From: raingloom 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(-) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0004-gnu-Added-imports-for-chicken-eggs.patch >From a7e3b91b76625e01eed749c2c83a94862e3ef738 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0005-gnu-Added-chicken-srfi-1.patch >From 3cbb676b118c2db197b0d2b621cbcb5133e09fd9 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0006-gnu-Added-chicken-srfi-69.patch >From f564a2ac0e3c716347245b90fe8c7d4332b91889 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0007-gnu-Added-chicken-iset.patch >From 062e1ba3e468df07115bd022130d577132d13a41 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0008-gnu-Added-chicken-datatype.patch >From bb4c402ff458239a9270680d1b7032182fcab5df Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0009-gnu-Added-chicken-srfi-14.patch >From f20607f28be8bd050407e0ae582db7c03285dbb2 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0010-gnu-Added-chicken-agrep.patch >From aaef438dd04f85305c50f50003d0f17082bfb83c Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0011-gnu-Added-myself-to-chicken.scm-copyright.patch =46rom 52a27d11eb3d4d0ced3deda01fe901bf2f1937fd Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 =C2=A9 2020 Ekaitz Zarraga ;;; Copyright =C2=A9 2020 Evan Hanson +;;; Copyright =C2=A9 2020 raingloom ;;; ;;; This file is part of GNU Guix. ;;; --=20 2.28.0 --MP_/kp9IG+qxiKrEBhV4_nIhV/I-- From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 18 Oct 2020 16:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: raingloom Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.16030374296758 (code B ref 43976); Sun, 18 Oct 2020 16:11:01 +0000 Received: (at 43976) by debbugs.gnu.org; 18 Oct 2020 16:10:29 +0000 Received: from localhost ([127.0.0.1]:38937 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kUBGP-0001kw-6F for submit@debbugs.gnu.org; Sun, 18 Oct 2020 12:10:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48164) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kUBGN-0001kk-7Q for 43976@debbugs.gnu.org; Sun, 18 Oct 2020 12:10:27 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45554) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kUBGH-0005hu-Uo; Sun, 18 Oct 2020 12:10:21 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=42238 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kUBGH-0000ZN-EE; Sun, 18 Oct 2020 12:10:21 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <20201013105220.7606ee5a@riseup.net> Date: Sun, 18 Oct 2020 18:10:19 +0200 In-Reply-To: <20201013105220.7606ee5a@riseup.net> (raingloom@riseup.net's message of "Tue, 13 Oct 2020 10:52:20 +0200") Message-ID: <87mu0j347o.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi! raingloom skribis: > 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. > # What's broken > Cross-compilation has not been attempted beacuse the Go build system I > based this on does not support it either. That=E2=80=99s fine, it can come later if/when someone feels like it. > # 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 =E2=80=98guix size chicken-srfi-14=E2=80=99 (sa= y). If it contains things that shouldn=E2=80=99t be there, like GCC or whatever, then we should do something about it. [...] >>>From 502235505c75446758cc1932bd1ba333644423ca Mon Sep 17 00:00:00 2001 > From: raingloom > 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_INCLUD= E_PATH [...] > + (native-search-paths > + (list (search-path-specification > + (variable "CHICKEN_REPOSITORY_PATH") > + ;; TODO extract binary version into a module level definitio= n. > + (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=E2=80=99s really what Chicken expects, then so be it. Otherwise LGTM! > From a734e591ad066c20a53f9d0f955716ba8422bac5 Mon Sep 17 00:00:00 2001 > From: raingloom > 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 =E2=80=9CBuild Systems=E2=80=9D wi= th a paragraph explaining the basics, as is done for the other build systems. > --- /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. > +;; 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 =E2=80=98chicken-build-system=E2=80= =99 can have a =E2=80=98check=E2=80=99 phase that follows common practice. Otherwise LGTM! >>>From a7e3b91b76625e01eed749c2c83a94862e3ef738 Mon Sep 17 00:00:00 2001 > From: raingloom > 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=E2=80=99d import modules in the patch where we first make use of them. Otherwise one might think this patch has no effect. > + (home-page "http://wiki.call-cc.org/eggref/5/srfi-69") > + (synopsis "An implementation of SRFI 69 with SRFI 90 extensions") I think =E2=80=98guix lint=E2=80=99 won=E2=80=99t like that=E2=80=A6 > + (description > + "Hash table implementation and binary search") =E2=80=A6 and a full sentence here would be welcome. :-) https://guix.gnu.org/manual/devel/en/html_node/Synopses-and-Descriptions.= html Same for the other packages. > + (url (string-append "https://code.call-cc.org/svn/chicken-e= ggs/" > + "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.")))) You can use instead of . The license looks weird indeed, but it looks like a valid free software license. The only discussion I found is at: . > From 52a27d11eb3d4d0ced3deda01fe901bf2f1937fd Mon Sep 17 00:00:00 2001 > From: raingloom > 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=E2=80=99s it. Could you send a v2? Thank you for working on it! Ludo=E2=80=99. From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 20 Nov 2020 04:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.160584790119363 (code B ref 43976); Fri, 20 Nov 2020 04:52:02 +0000 Received: (at 43976) by debbugs.gnu.org; 20 Nov 2020 04:51:41 +0000 Received: from localhost ([127.0.0.1]:41595 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfyOa-00052F-Kb for submit@debbugs.gnu.org; Thu, 19 Nov 2020 23:51:40 -0500 Received: from mx1.riseup.net ([198.252.153.129]:32950) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfyOX-000525-VY for 43976@debbugs.gnu.org; Thu, 19 Nov 2020 23:51:38 -0500 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4CckfH3BJPzFdt3; Thu, 19 Nov 2020 20:51:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1605847895; bh=HLcQSeWVWudnwqR1jGXvpnO6fh1Rb5Q/rrUQNbHTvPc=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=CNgK62SEskVDizUsAAwlesVzX9kujUEJrpqEJRCuxI6YZkIE2sQGXctasVj0NhDIn H5QR5sKfCVRSEZLF8FQb4tt5cyqEAb72YDA8qJXPCCiqMhLyH6RtMf87c9v7B2Fwtq 1rYRPT51VORxhFssM5maQeL35OgYatoMrdG4BuVQ= X-Riseup-User-ID: BDBD2F1C8264DDA1CA91B582EE59246D3D0430D4CAEC02E6D84D7C6B3388D727 Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4CckfD4Fg4zJqLk; Thu, 19 Nov 2020 20:51:30 -0800 (PST) Date: Fri, 20 Nov 2020 05:51:17 +0100 From: raingloom Message-ID: <20201120055117.7cb76230@riseup.net> In-Reply-To: <87mu0j347o.fsf@gnu.org> References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) 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... 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 ``` From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 21 Nov 2020 11:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: raingloom Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.160595782015955 (code B ref 43976); Sat, 21 Nov 2020 11:24:02 +0000 Received: (at 43976) by debbugs.gnu.org; 21 Nov 2020 11:23:40 +0000 Received: from localhost ([127.0.0.1]:45000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgQzT-00049G-Nm for submit@debbugs.gnu.org; Sat, 21 Nov 2020 06:23:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52924) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgQzS-000492-Bp for 43976@debbugs.gnu.org; Sat, 21 Nov 2020 06:23:38 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56311) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kgQzM-0006nz-OG; Sat, 21 Nov 2020 06:23:32 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=45548 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kgQzM-0005yD-CO; Sat, 21 Nov 2020 06:23:32 -0500 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> Date: Sat, 21 Nov 2020 12:23:30 +0100 In-Reply-To: <20201120055117.7cb76230@riseup.net> (raingloom@riseup.net's message of "Fri, 20 Nov 2020 05:51:17 +0100") Message-ID: <87k0ufc5sd.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, raingloom skribis: > 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=E2=80=99m 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=E2=80=99s probably safer. > 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=E2=80=99. From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 21 Nov 2020 20:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.160599155319370 (code B ref 43976); Sat, 21 Nov 2020 20:46:02 +0000 Received: (at 43976) by debbugs.gnu.org; 21 Nov 2020 20:45:53 +0000 Received: from localhost ([127.0.0.1]:46272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgZlZ-00052M-5p for submit@debbugs.gnu.org; Sat, 21 Nov 2020 15:45:53 -0500 Received: from mx1.riseup.net ([198.252.153.129]:37824) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgZlX-00052D-J6 for 43976@debbugs.gnu.org; Sat, 21 Nov 2020 15:45:52 -0500 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4Cdlms19lczDsPX; Sat, 21 Nov 2020 12:45:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1605991549; bh=OIbjpKGBHwJFBmqoG2AgtxzFFZUqv4hVkQBaCxgYf2U=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=m0yxwvRdDoGUDfQnZIb+tpNcuVS61P7Q6Oz+wYtWb8iYSBJaWy3VRedHa+L8PUgql Rjwlrz9eCgZ2G0VZ/VZHbrg9/zbf336mFnCwm0YrwWmySIy2FJk9Cs0wvPug/Yy4Q1 pvzueC7MkucBMDCCYDc0lHvWfTd3vNwOvYsgr9yU= X-Riseup-User-ID: 96E62055AEC7A62DE08CD76723F41814599187830F2D392A87C19A3CC5F9C270 Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4Cdlmp25xpzJn6J; Sat, 21 Nov 2020 12:45:46 -0800 (PST) Date: Sat, 21 Nov 2020 21:45:43 +0100 From: raingloom Message-ID: <20201121214543.37c27429@riseup.net> In-Reply-To: <20201120055117.7cb76230@riseup.net> References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Fri, 20 Nov 2020 05:51:17 +0100 raingloom 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. From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: Efraim Flashner Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 21 Nov 2020 21:00:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: raingloom Cc: 43976@debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.160599237920577 (code B ref 43976); Sat, 21 Nov 2020 21:00:01 +0000 Received: (at 43976) by debbugs.gnu.org; 21 Nov 2020 20:59:39 +0000 Received: from localhost ([127.0.0.1]:46276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgZyt-0005Lp-Cr for submit@debbugs.gnu.org; Sat, 21 Nov 2020 15:59:39 -0500 Received: from flashner.co.il ([178.62.234.194]:47164) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgZys-0005Lc-1g for 43976@debbugs.gnu.org; Sat, 21 Nov 2020 15:59:38 -0500 Received: from localhost (unknown [141.226.15.169]) by flashner.co.il (Postfix) with ESMTPSA id D1B28401FA; Sat, 21 Nov 2020 20:59:31 +0000 (UTC) Date: Sat, 21 Nov 2020 22:58:58 +0200 From: Efraim Flashner Message-ID: <20201121205858.GE1088@E5400> References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> <20201121214543.37c27429@riseup.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="PPYy/fEw/8QCHSq3" Content-Disposition: inline In-Reply-To: <20201121214543.37c27429@riseup.net> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --PPYy/fEw/8QCHSq3 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Nov 21, 2020 at 09:45:43PM +0100, raingloom wrote: > On Fri, 20 Nov 2020 05:51:17 +0100 > raingloom wrote: >=20 > > 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. >=20 > 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? > 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. >=20 > This is why we always `set -e` in our Bash scripts, kids. >=20 > 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 :) --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --PPYy/fEw/8QCHSq3 Content-Type: application/pgp-signature; name="signature.asc" -----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----- --PPYy/fEw/8QCHSq3-- From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 21 Nov 2020 22:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Efraim Flashner Cc: 43976@debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.16059969023249 (code B ref 43976); Sat, 21 Nov 2020 22:16:02 +0000 Received: (at 43976) by debbugs.gnu.org; 21 Nov 2020 22:15:02 +0000 Received: from localhost ([127.0.0.1]:46350 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgb9p-0000qE-O0 for submit@debbugs.gnu.org; Sat, 21 Nov 2020 17:15:02 -0500 Received: from mx1.riseup.net ([198.252.153.129]:39204) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgb9o-0000px-Ft for 43976@debbugs.gnu.org; Sat, 21 Nov 2020 17:15:00 -0500 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4Cdnlh695KzFfFH; Sat, 21 Nov 2020 14:14:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1605996900; bh=r5LZn86yGFJn9AzZHYqdJ+gvTHRPddu8CvXCzvj/gkY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=pYXF+ati8Pa1z1HwtqmO0oYpuCVsu6liOXez3STCzYaZTwC3kulSAkxNOz54cd4iI iNNItFIHcQvj1pXIVFDN4+SnIctTXTIC732P3bQU9YrS2qQXX0Fl7Pc7IOXeCETy9v NVENFxSQJwfTxfRPKk1Vx2FcmsJKM95PXtZ+kiEY= X-Riseup-User-ID: 3D2BD12349E0909C75E65DE1122D63CA66C1A3CB5EB8B939E982CF01EE1A84BB Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4Cdnlg4fR2zJpKH; Sat, 21 Nov 2020 14:14:50 -0800 (PST) Date: Sat, 21 Nov 2020 23:13:38 +0100 From: raingloom Message-ID: <20201121231338.6fcf3659@riseup.net> In-Reply-To: <20201121205858.GE1088@E5400> References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> <20201121214543.37c27429@riseup.net> <20201121205858.GE1088@E5400> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Sat, 21 Nov 2020 22:58:58 +0200 Efraim Flashner wrote: > > 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. From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 22 Nov 2020 23:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.160608677616974 (code B ref 43976); Sun, 22 Nov 2020 23:13:01 +0000 Received: (at 43976) by debbugs.gnu.org; 22 Nov 2020 23:12:56 +0000 Received: from localhost ([127.0.0.1]:48515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgyXQ-0004Pi-5K for submit@debbugs.gnu.org; Sun, 22 Nov 2020 18:12:56 -0500 Received: from mx1.riseup.net ([198.252.153.129]:45278) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgyXK-0004PV-Sp for 43976@debbugs.gnu.org; Sun, 22 Nov 2020 18:12:54 -0500 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4CfQzz659PzFf2h; Sun, 22 Nov 2020 15:12:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1606086767; bh=GczOmMggpJY1I+/l3sHDop9W14KomJ+3gn2W9C7Y3uI=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=leI0lYV9HyAoR87BFniDn5ebAXpO+ZEIQZta3OHELu1gOSNfu4PpiOihP2JOJI01Z QGwl+DcuZo3jb/0GkSgnMFscTYqFh1vEIN0BhMUh9NhZWtme0emtKDOkvg5bOR6S0l Ys/v4Xj8ji3s65HtCnK7TpQVb2QzZp4iU07TlG3Y= X-Riseup-User-ID: F86193496EB31573A83F44D48964DB9A0ADEF16445DA7941B1FA2F415BB43614 Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4CfQzx1qPfzJmnT; Sun, 22 Nov 2020 15:12:45 -0800 (PST) Date: Mon, 23 Nov 2020 00:12:41 +0100 From: raingloom Message-ID: <20201123001241.024b7a08@riseup.net> In-Reply-To: <20201121214543.37c27429@riseup.net> References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> <20201121214543.37c27429@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/MHM+3513HiinjKy6jofrdgF" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --MP_/MHM+3513HiinjKy6jofrdgF Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sat, 21 Nov 2020 21:45:43 +0100 raingloom wrote: > On Fri, 20 Nov 2020 05:51:17 +0100 > raingloom 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. --MP_/MHM+3513HiinjKy6jofrdgF Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0001-gnu-Added-search-paths-for-Chicken-Scheme.patch >From eeb306cb76ea8e6c1487df0c13c7539d69202e3f Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/MHM+3513HiinjKy6jofrdgF-- From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 25 Nov 2020 01:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.16062688205193 (code B ref 43976); Wed, 25 Nov 2020 01:47:02 +0000 Received: (at 43976) by debbugs.gnu.org; 25 Nov 2020 01:47:00 +0000 Received: from localhost ([127.0.0.1]:33636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khjtc-0001Lc-6U for submit@debbugs.gnu.org; Tue, 24 Nov 2020 20:47:00 -0500 Received: from mx1.riseup.net ([198.252.153.129]:37654) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khjtW-0001LF-0A for 43976@debbugs.gnu.org; Tue, 24 Nov 2020 20:46:58 -0500 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4CgkJq1DlRzFcs1; Tue, 24 Nov 2020 17:46:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1606268811; bh=0/HfAoAC5HT5G3IMdJrF7nMdQPq3lkyYznC7pO+nK70=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=JotlNR1s1s9DMCcia/P5jtc5YMsE8thcO6emAbsXPnpc4koRPQOvlUo+1EKbWcTOg 2Yit3/FvcbNpST9f1reQLwlnhthhKNg3LZjj+CAZbOy/sb+jtd69IYH9828Eeekx1J UCGkZfArnyYlD+ncPtamFjuUNrnm/WQqAiDZbTv4= X-Riseup-User-ID: 8DB4885BD8B828DD2384919DB73D4D6B2638000FB2F27A0DE55966E27A784455 Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4CgkJp2v0FzJrSB; Tue, 24 Nov 2020 17:46:48 -0800 (PST) Date: Tue, 24 Nov 2020 21:22:54 +0100 From: raingloom Message-ID: <20201124212254.0c69b459@riseup.net> In-Reply-To: <20201123001241.024b7a08@riseup.net> References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> <20201121214543.37c27429@riseup.net> <20201123001241.024b7a08@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/IuhzkrU9eHSihXZ4qdF7sGu" X-Spam-Score: 0.4 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) --MP_/IuhzkrU9eHSihXZ4qdF7sGu Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Mon, 23 Nov 2020 00:12:41 +0100 raingloom wrote: > On Sat, 21 Nov 2020 21:45:43 +0100 > raingloom wrote: > > > On Fri, 20 Nov 2020 05:51:17 +0100 > > raingloom 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. --MP_/IuhzkrU9eHSihXZ4qdF7sGu Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0001-gnu-Added-search-paths-for-Chicken-Scheme.patch >From 2ba52705cf909590a428ea598dfdf1c61ada6a8c Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/IuhzkrU9eHSihXZ4qdF7sGu-- From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 27 Nov 2020 09:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: raingloom Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.160646817920395 (code B ref 43976); Fri, 27 Nov 2020 09:10:02 +0000 Received: (at 43976) by debbugs.gnu.org; 27 Nov 2020 09:09:39 +0000 Received: from localhost ([127.0.0.1]:43946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiZl5-0005It-0I for submit@debbugs.gnu.org; Fri, 27 Nov 2020 04:09:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiZl2-0005If-S6 for 43976@debbugs.gnu.org; Fri, 27 Nov 2020 04:09:37 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34199) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiZkx-0007AN-IW; Fri, 27 Nov 2020 04:09:31 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=46498 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiZkx-0006uj-6x; Fri, 27 Nov 2020 04:09:31 -0500 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> <20201121214543.37c27429@riseup.net> <20201123001241.024b7a08@riseup.net> <20201124212254.0c69b459@riseup.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 7 Frimaire an 229 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 27 Nov 2020 10:09:29 +0100 In-Reply-To: <20201124212254.0c69b459@riseup.net> (raingloom@riseup.net's message of "Tue, 24 Nov 2020 21:22:54 +0100") Message-ID: <87eekfxj1y.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi raingloom! raingloom skribis: > From 2ba52705cf909590a428ea598dfdf1c61ada6a8c Mon Sep 17 00:00:00 2001 > From: raingloom > 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 definitio= n. > + (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 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=E2=80=99. From unknown Sat Sep 06 13:38:08 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#43976] [PATCH] Chicken build system + some example eggs Resent-From: raingloom Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 01 Dec 2020 04:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 43976@debbugs.gnu.org Received: via spool by 43976-submit@debbugs.gnu.org id=B43976.160679650011488 (code B ref 43976); Tue, 01 Dec 2020 04:22:01 +0000 Received: (at 43976) by debbugs.gnu.org; 1 Dec 2020 04:21:40 +0000 Received: from localhost ([127.0.0.1]:57409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjxAV-0002z8-Ax for submit@debbugs.gnu.org; Mon, 30 Nov 2020 23:21:40 -0500 Received: from mx1.riseup.net ([198.252.153.129]:52134) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjxAR-0002yy-RK for 43976@debbugs.gnu.org; Mon, 30 Nov 2020 23:21:33 -0500 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4ClTST0HRZzDt1N; Mon, 30 Nov 2020 20:21:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1606796489; bh=C5hgXOZg0hyxAYLBx6lN2OYaidMpr5Mw2jL0oQAf4yI=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=E2hqz8Spg/ZSNpo09Wc6HPmqwd8UYh6rqlVPmpMhnR1u4A22Le0iInlkZvsWfFCQQ WThj5aOlVcn2r7doXRuawWoznyxhOCN8qBUm3jWF16YcX5C/VMaUvpJ4w0pKG0rEcj dd28xQRKgT4xpzGKdP7oT/7wV+Wz5GnhMoqVBAO8= X-Riseup-User-ID: 957007F0EC2C563FD52A5A0EC5ED688D8FF5D4CA3143806C00D6FDD3A3DA4B7F Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4ClTSQ1WzbzJnP0; Mon, 30 Nov 2020 20:21:20 -0800 (PST) Date: Tue, 1 Dec 2020 05:14:28 +0100 From: raingloom Message-ID: <20201201051428.15ac4d84@riseup.net> In-Reply-To: <87eekfxj1y.fsf@gnu.org> References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> <20201121214543.37c27429@riseup.net> <20201123001241.024b7a08@riseup.net> <20201124212254.0c69b459@riseup.net> <87eekfxj1y.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/GeKoxlj0NHyMfXuLNPzq7S6" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Fri, 27 Nov 2020 10:09:29 +0100 Ludovic Court=C3=A8s wrote: > Hi raingloom! >=20 > raingloom skribis: >=20 > > From 2ba52705cf909590a428ea598dfdf1c61ada6a8c Mon Sep 17 00:00:00 > > 2001 From: raingloom > > 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. =20 >=20 > [...] >=20 > > + (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"))) =20 >=20 > 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. > Could you please ensure that earlier comments notably at > 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? >=20 > Thanks in advance! >=20 > Ludo=E2=80=99. 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0001-gnu-Added-search-paths-for-Chicken-Scheme.patch >From 547d738458dc8be2ecebcbb19e3c70cb4df30bdb Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-guix-Added-chicken-build-system.patch =46rom e973faf042a9af75c1dd568450d13e0a82137e7f Mon Sep 17 00:00:00 2001 From: raingloom Date: Tue, 13 Oct 2020 09:26:52 +0200 Subject: [PATCH 02/20] guix: Added chicken-build-system. * guix/build-system/chicken.scm: New file. * guix/build/chicken-build-system.scm: New file. * Makefile.am: Add them. * doc/guix.texi: Document it. --- Makefile.am | 2 + doc/guix.texi | 22 +++++ guix/build-system/chicken.scm | 132 +++++++++++++++++++++++++++ guix/build/chicken-build-system.scm | 133 ++++++++++++++++++++++++++++ 4 files changed, 289 insertions(+) create mode 100644 guix/build-system/chicken.scm create mode 100644 guix/build/chicken-build-system.scm diff --git a/Makefile.am b/Makefile.am index d63f2ae4b7..2313a070b1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -126,6 +126,7 @@ MODULES =3D \ guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ guix/build-system/cargo.scm \ + guix/build-system/chicken.scm \ guix/build-system/clojure.scm \ guix/build-system/cmake.scm \ guix/build-system/dub.scm \ @@ -175,6 +176,7 @@ MODULES =3D \ guix/build/download-nar.scm \ guix/build/cargo-build-system.scm \ guix/build/cargo-utils.scm \ + guix/build/chicken-build-system.scm \ guix/build/cmake-build-system.scm \ guix/build/dub-build-system.scm \ guix/build/dune-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index b0126b961d..9c9a3e523a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7314,6 +7314,28 @@ parameters available to cargo. It will also remove = an included defined by the crate. @end defvr =20 +@defvr {Scheme Variable} chicken-build-system +This variable is exported by @code{(guix build-system chicken)}. +It builds Chicken Scheme modules (also called ``eggs'' or ``extensions''). +Chicken generates C source code, which then gets compiled by a C compiler, +in this case GCC. + +It adds @code{chicken} to the package inputs, as well as the packages of +@code{gnu-build-system}. + +The build system can't (yet) deduce the egg's name automatically, so just = like +with @code{go-build-system} and its @code{#:import-path}, you should define +@code{#:egg-name} in the package's @code{arguments} field. + +For example, if you are packaging the srfi-1 egg: +@lisp +(arguments '(#:egg-name "srfi-1")) +@end lisp + +Egg dependencies must be defined in @code{propagated-inputs}, not @code{in= puts} +because Chicken doesn't embed absolute references in compiled eggs. +Test dependecies should go to @code{native-inputs}, as usual. +@end defvr =20 @defvr {Scheme Variable} copy-build-system This variable is exported by @code{(guix build-system copy)}. It diff --git a/guix/build-system/chicken.scm b/guix/build-system/chicken.scm new file mode 100644 index 0000000000..9abae0431a --- /dev/null +++ b/guix/build-system/chicken.scm @@ -0,0 +1,132 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2020 raingloom +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system chicken) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%chicken-build-system-modules + chicken-build + chicken-build-system)) + +(define %chicken-build-system-modules + ;; Build-side modules imported and used by default. + `((guix build chicken-build-system) + (guix build union) + ,@%gnu-build-system-modules)) + +(define (default-chicken) + ;; Lazily resolve the binding to avoid a circular dependency. + ;; TODO is this actually needed in every build system? + (let ((chicken (resolve-interface '(gnu packages chicken)))) + (module-ref chicken 'chicken))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (chicken (default-chicken)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:chicken #:inputs #:native-inputs)) + + ;; TODO: cross-compilation support + (and (not target) + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system',= since + ;; Chicken compiles Scheme by using C as an interm= ediate + ;; language. + ,@(standard-packages))) + (build-inputs `(("chicken" ,chicken) + ,@native-inputs)) + (outputs outputs) + (build chicken-build) + (arguments (strip-keyword-arguments private-keywords arguments)))= )) + +(define* (chicken-build store name inputs + #:key + (phases '(@ (guix build chicken-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (egg-name "") + (unpack-path "") + (build-flags ''()) + (tests? #t) + (system (%current-system)) + (guile #f) + (imported-modules %chicken-build-system-modules) + (modules '((guix build chicken-build-system) + (guix build union) + (guix build utils)))) + (define builder + `(begin + (use-modules ,@modules) + (chicken-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:egg-name ,egg-name + #:unpack-path ,unpack-path + #:build-flags ,build-flags + #:tests? ,tests? + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system + #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define chicken-build-system + (build-system + (name 'chicken) + (description + "Build system for Chicken Scheme programs") + (lower lower))) diff --git a/guix/build/chicken-build-system.scm b/guix/build/chicken-build= -system.scm new file mode 100644 index 0000000000..5db9906acf --- /dev/null +++ b/guix/build/chicken-build-system.scm @@ -0,0 +1,133 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2020 raingloom +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build chicken-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build union) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (rnrs io ports) + #:use-module (rnrs bytevectors) + #:export (%standard-phases + chicken-build)) + +;; CHICKEN_EGG_CACHE is where sources are fetched and binaries are built +;; CHICKEN_INSTALL_REPOSITORY is where dependencies are looked up +;; its first component is also where new eggs are installed. + +;; TODO: deduplicate with go-build-system.scm ? +;; TODO: the binary version should be defined in one of the relevant modul= es +;; instead of being hardcoded everywhere. Tried to do that but got undefin= ed +;; variable errors. + +(define (chicken-package? name) + (string-prefix? "chicken-" name)) + +(define* (setup-chicken-environment #:key inputs outputs #:allow-other-key= s) + (setenv "CHICKEN_INSTALL_REPOSITORY" + (string-concatenate + ;; see TODO item about binary version above + (append (list (assoc-ref outputs "out") "/var/lib/chicken/11/") + (let ((oldenv (getenv "CHICKEN_INSTALL_REPOSITORY"))) + (if oldenv + (list ":" oldenv) + '()))))) + (setenv "CHICKEN_EGG_CACHE" (getcwd)) + #t) + +;; This is copied from go-build-system.scm so it could probably be simplif= ied. +;; I used it because the source of the egg needs to be unpacked into a dir= ectory +;; that is named after the egg and I knew that the go build system does th= at. +(define* (unpack #:key source egg-name unpack-path #:allow-other-keys) + "Relative to $CHICKEN_EGG_CACHE, unpack SOURCE in UNPACK-PATH, or EGG-NA= ME +when UNPACK-PATH is unset. If the SOURCE archive has a single top level +directory, it is stripped so that the sources appear directly under UNPACK= -PATH. +When SOURCE is a directory, copy its content into UNPACK-PATH instead of +unpacking." + (define (unpack-maybe-strip source dest) + (let* ((scratch-dir (string-append (or (getenv "TMPDIR") "/tmp") + "/scratch-dir")) + (out (mkdir-p scratch-dir))) + (with-directory-excursion scratch-dir + (if (string-suffix? ".zip" source) + (invoke "unzip" source) + (invoke "tar" "-xvf" source)) + (let ((top-level-files (remove (lambda (x) + (member x '("." ".."))) + (scandir ".")))) + (match top-level-files + ((top-level-file) + (when (file-is-directory? top-level-file) + (copy-recursively top-level-file dest #:keep-mtime? #t))) + (_ + (copy-recursively "." dest #:keep-mtime? #t))))) + (delete-file-recursively scratch-dir))) + + (when (string-null? egg-name) + (display "WARNING: The egg name is unset.\n")) + (when (string-null? unpack-path) + (set! unpack-path egg-name)) + (let ((dest (string-append (getenv "CHICKEN_EGG_CACHE") "/" unpack-path)= )) + (mkdir-p dest) + (if (file-is-directory? source) + (copy-recursively source dest #:keep-mtime? #t) + (unpack-maybe-strip source dest))) + #t) + +(define* (build #:key egg-name #:allow-other-keys) + "Build the Chicken egg named by EGG-NAME" + (invoke "chicken-install" "-cached" "-no-install" egg-name)) + +(define* (install #:key egg-name #:allow-other-keys) + "Install the already built egg named by EGG-NAME" + (invoke "chicken-install" "-cached" egg-name)) + +(define* (check #:key egg-name tests? #:allow-other-keys) + "Build and run tests for the Chicken egg EGG-NAME" + ;; there is no "-test-only" option, but we've already run install + ;; so this just runs tests. + ;; i think it's a fair assumption that phases won't be reordered. + (setenv "CHICKEN_REPOSITORY_PATH" + (string-append (getenv "CHICKEN_INSTALL_REPOSITORY") + ":" + (getenv "CHICKEN_REPOSITORY_PATH"))) + (when tests? + (invoke "chicken-install" "-cached" "-test" "-no-install" egg-name))) + +;; It doesn't look like Chicken generates any unnecessary references. +;; So we don't have to remove them either. Nice. + +(define %standard-phases + (modify-phases gnu:%standard-phases + (replace 'unpack unpack) + (delete 'bootstrap) + (delete 'configure) + (delete 'patch-generated-file-shebangs) + (add-before 'unpack 'setup-chicken-environment setup-chicken-environme= nt) + (replace 'build build) + (delete 'check) + (replace 'install install) + (add-after 'install 'check check))) + +(define* (chicken-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Chicken package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) --=20 2.29.2 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0003-gnu-Use-qualified-license-names-in-chicken.scm-inste.patch >From 55c057a0fcb3cea672a8b97bc1d4af6f84aa8b38 Mon Sep 17 00:00:00 2001 From: raingloom 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(-) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0004-gnu-Added-chicken-test.patch =46rom 700ebbd7064feb9df11223ba107ff4be9cc0cc7f Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 =C2=A9 2020 Ekaitz Zarraga ;;; Copyright =C2=A9 2020 Evan Hanson +;;; Copyright =C2=A9 2020 raingloom ;;; ;;; 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-egg= s/" + "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))) --=20 2.29.2 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0005-gnu-Added-chicken-srfi-1.patch >From e35b7f2e0af8cd1c1868f10ceb3e142c6fc5e1b9 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0006-gnu-Added-chicken-srfi-69.patch >From eaaffee062ec5fac8e4a6f24a8101eb834593abe Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0007-gnu-Added-chicken-iset.patch >From 21ab568f10f89a0db769487784fb0c4deb10fab4 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0008-gnu-Added-chicken-datatype.patch >From 316d30bebc1e63f851b6ab23a1f42b1470e76b85 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0009-gnu-Added-chicken-srfi-14.patch >From 6a977d5b65082c9022281b5c4cdd767bd65d36c8 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6 Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0010-gnu-Added-chicken-agrep.patch >From 869b56d5eba824024a50d9de28d2265955526146 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/GeKoxlj0NHyMfXuLNPzq7S6-- From unknown Sat Sep 06 13:38:08 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: raingloom Subject: bug#43976: closed (Re: [bug#43976] [PATCH] Chicken build system + some example eggs) Message-ID: References: <877dpyeuz9.fsf@gnu.org> <20201013105220.7606ee5a@riseup.net> X-Gnu-PR-Message: they-closed 43976 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 43976@debbugs.gnu.org Date: Thu, 03 Dec 2020 16:06:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1607011562-29720-1" This is a multi-part message in MIME format... ------------=_1607011562-29720-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #43976: [PATCH] Chicken build system + some example eggs which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 43976@debbugs.gnu.org. --=20 43976: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D43976 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1607011562-29720-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 43976-done) by debbugs.gnu.org; 3 Dec 2020 16:05:07 +0000 Received: from localhost ([127.0.0.1]:41487 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkr6R-0007hj-AI for submit@debbugs.gnu.org; Thu, 03 Dec 2020 11:05:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44594) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkr6Q-0007h4-3A for 43976-done@debbugs.gnu.org; Thu, 03 Dec 2020 11:05:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45988) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kkr6K-0007JB-V2; Thu, 03 Dec 2020 11:05:00 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=50894 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kkr6K-0003VU-Er; Thu, 03 Dec 2020 11:05:00 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: raingloom Subject: Re: [bug#43976] [PATCH] Chicken build system + some example eggs References: <20201013105220.7606ee5a@riseup.net> <87mu0j347o.fsf@gnu.org> <20201120055117.7cb76230@riseup.net> <20201121214543.37c27429@riseup.net> <20201123001241.024b7a08@riseup.net> <20201124212254.0c69b459@riseup.net> <87eekfxj1y.fsf@gnu.org> <20201201051428.15ac4d84@riseup.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 13 Frimaire an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 03 Dec 2020 17:04:58 +0100 In-Reply-To: <20201201051428.15ac4d84@riseup.net> (raingloom@riseup.net's message of "Tue, 1 Dec 2020 05:14:28 +0100") Message-ID: <877dpyeuz9.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.3 (/) X-Debbugs-Envelope-To: 43976-done Cc: 43976-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-) Hi raingloom, I=E2=80=99ve now pushed the 11 patches as of b5a6eddd8e9f2e840f47d3307f436433e74e16f3, tweaking packages in minor ways: tweaking descriptions (info "(guix) Synopses and Descriptions"), adding a =E2=80=98file-name=E2=80=99 field in origin that contains the full= package name and version, changing =E2=80=98native-inputs=E2=80=99 to =E2=80=98inputs=E2= =80=99 in a couple of cases, removing the stale search path comment as discussed earlier, adjusting commit logs. Thanks! Ludo=E2=80=99. ------------=_1607011562-29720-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 13 Oct 2020 08:52:32 +0000 Received: from localhost ([127.0.0.1]:45206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSG2k-00035q-7T for submit@debbugs.gnu.org; Tue, 13 Oct 2020 04:52:32 -0400 Received: from lists.gnu.org ([209.51.188.17]:43790) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSG2h-00035i-Mj for submit@debbugs.gnu.org; Tue, 13 Oct 2020 04:52:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kSG2h-00057a-Bk for guix-patches@gnu.org; Tue, 13 Oct 2020 04:52:23 -0400 Received: from mx1.riseup.net ([198.252.153.129]:42258) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kSG2a-0007uN-Lb for guix-patches@gnu.org; Tue, 13 Oct 2020 04:52:22 -0400 Received: from bell.riseup.net (bell-pn.riseup.net [10.0.1.178]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "*.riseup.net", Issuer "Sectigo RSA Domain Validation Secure Server CA" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4C9TnC0hg6zFgRs for ; Tue, 13 Oct 2020 01:51:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1602579119; bh=rSRee91Jdyq5MwgX+2DAD+kFO7bMqrDadVBEiRl5I6Y=; h=Date:From:To:Subject:From; b=AUDbl1LX5qckEoa1F/dQPm0JlSlzX61UWK8qA2L+YTYF18LSTPG5BBY27h2HlRrAN yet4xcgnhh5LjFQijzkyQbyqwfBk2cIDePP8zlJhzyfs/hKeHR1BUhxZcszIF9KvfN zBZ3cAlWPEgNu14OIz8A5dZSKJ0DQ5LzZ9yt1W20= X-Riseup-User-ID: F2BEBA530941D54587ABBF68DDC6DDC1CB52E0B64184D72F32371A7D00AAF2A0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by bell.riseup.net (Postfix) with ESMTPSA id 4C9TnB2TvzzJmys for ; Tue, 13 Oct 2020 01:51:55 -0700 (PDT) Date: Tue, 13 Oct 2020 10:52:20 +0200 From: raingloom To: Guix Patches Subject: [PATCH] Chicken build system + some example eggs Message-ID: <20201013105220.7606ee5a@riseup.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/kp9IG+qxiKrEBhV4_nIhV/I" Received-SPF: pass client-ip=198.252.153.129; envelope-from=raingloom@riseup.net; helo=mx1.riseup.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/13 04:10:32 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline 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. --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0001-gnu-Added-search-paths-for-Chicken-Scheme.patch >From 502235505c75446758cc1932bd1ba333644423ca Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0002-guix-Added-chicken-build-system.patch =46rom a734e591ad066c20a53f9d0f955716ba8422bac5 Mon Sep 17 00:00:00 2001 From: raingloom 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. --- Makefile.am | 2 + guix/build-system/chicken.scm | 137 ++++++++++++++++++++++++++++ guix/build/chicken-build-system.scm | 103 +++++++++++++++++++++ 3 files changed, 242 insertions(+) create mode 100644 guix/build-system/chicken.scm create mode 100644 guix/build/chicken-build-system.scm diff --git a/Makefile.am b/Makefile.am index 8e91e1e558..a2b2ca1093 100644 --- a/Makefile.am +++ b/Makefile.am @@ -113,6 +113,7 @@ MODULES =3D \ guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ guix/build-system/cargo.scm \ + guix/build-system/chicken.scm \ guix/build-system/clojure.scm \ guix/build-system/cmake.scm \ guix/build-system/dub.scm \ @@ -162,6 +163,7 @@ MODULES =3D \ guix/build/download-nar.scm \ guix/build/cargo-build-system.scm \ guix/build/cargo-utils.scm \ + guix/build/chicken-build-system.scm \ guix/build/cmake-build-system.scm \ guix/build/dub-build-system.scm \ guix/build/dune-build-system.scm \ diff --git a/guix/build-system/chicken.scm b/guix/build-system/chicken.scm new file mode 100644 index 0000000000..b1629b9929 --- /dev/null +++ b/guix/build-system/chicken.scm @@ -0,0 +1,137 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2020 raingloom +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system chicken) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%chicken-build-system-modules + chicken-build + chicken-build-system)) + +(define %chicken-build-system-modules + ;; Build-side modules imported and used by default. + `((guix build chicken-build-system) + (guix build union) + ,@%gnu-build-system-modules)) + +(define (default-chicken) + ;; Lazily resolve the binding to avoid a circular dependency. + ;; TODO is this actually needed in every build system? + (let ((chicken (resolve-interface '(gnu packages chicken)))) + (module-ref chicken 'chicken))) + +(define* (lower name + #:key source inputs native-inputs outputs system target + (chicken (default-chicken)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:chicken #:inputs #:native-inputs)) + + ;; TODO: cross-compilation support + (and (not target) + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ;; Chicken compiles Scheme by using C as an interm= ediate language. + ,@(standard-packages))) + (build-inputs `(("chicken" ,chicken) + ,@native-inputs)) + (outputs outputs) + (build chicken-build) + (arguments (strip-keyword-arguments private-keywords arguments)))= )) + +(define* (chicken-build store name inputs + #:key + (phases '(@ (guix build chicken-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (install-source? #t) + (egg-name "") + (unpack-path "") + (build-flags ''()) + (tests? #t) + ;; TODO holdover from go.scm + ;; not yet sure if it should be removed. + (allow-chicken-reference? #f) + (system (%current-system)) + (guile #f) + (imported-modules %chicken-build-system-modules) + (modules '((guix build chicken-build-system) + (guix build union) + (guix build utils)))) + (define builder + `(begin + (use-modules ,@modules) + (chicken-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:install-source? ,install-source? + #:egg-name ,egg-name + #:unpack-path ,unpack-path + #:build-flags ,build-flags + #:tests? ,tests? + #:allow-chicken-reference? ,allow-chicken-reference? + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system + #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define chicken-build-system + (build-system + (name 'chicken) + (description + "Build system for Chicken Scheme programs") + (lower lower))) diff --git a/guix/build/chicken-build-system.scm b/guix/build/chicken-build= -system.scm new file mode 100644 index 0000000000..ee2b15d6c1 --- /dev/null +++ b/guix/build/chicken-build-system.scm @@ -0,0 +1,103 @@ +(define-module (guix build chicken-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build union) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (rnrs io ports) + #:use-module (rnrs bytevectors) + #:export (%standard-phases + chicken-build)) + +;; CHICKEN_EGG_CACHE is where sources are fetched and binaries are built +;; CHICKEN_INSTALL_REPOSITORY is where dependencies are looked up +;; its first component is also where new eggs are installed. + +;; TODO: deduplicate with go-build-system.scm ? +;; TODO: the binary version should be defined in one of the relevant modul= es +;; instead of being hardcoded everywhere. Tried to do that but got undefin= ed +;; variable errors. + +(define (chicken-package? name) + (string-prefix? "chicken-" name)) + +(define* (setup-chicken-environment #:key inputs outputs #:allow-other-key= s) + (setenv "CHICKEN_INSTALL_REPOSITORY" + (string-concatenate + ;; see TODO item about binary version above + (append (list (assoc-ref outputs "out") "/var/lib/chicken/11/") + (let ((oldenv (getenv "CHICKEN_INSTALL_REPOSITORY"))) + (if oldenv + (list ":" oldenv) + '()))))) + (setenv "CHICKEN_EGG_CACHE" (getcwd)) + #t) + +;; This is copied from go-build-system.scm so it could probably be simplif= ied. +;; I used it because the source of the egg needs to be unpacked into a dir= ectory +;; that is named after the egg and I knew that the go build system does th= at. +(define* (unpack #:key source egg-name unpack-path #:allow-other-keys) + "Relative to $CHICKEN_EGG_CACHE, unpack SOURCE in UNPACK-PATH, or EGG-NA= ME +when UNPACK-PATH is unset. If the SOURCE archive has a single top level +directory, it is stripped so that the sources appear directly under UNPACK= -PATH. +When SOURCE is a directory, copy its content into UNPACK-PATH instead of +unpacking." + (define (unpack-maybe-strip source dest) + (let* ((scratch-dir (string-append (or (getenv "TMPDIR") "/tmp") + "/scratch-dir")) + (out (mkdir-p scratch-dir))) + (with-directory-excursion scratch-dir + (if (string-suffix? ".zip" source) + (invoke "unzip" source) + (invoke "tar" "-xvf" source)) + (let ((top-level-files (remove (lambda (x) + (member x '("." ".."))) + (scandir ".")))) + (match top-level-files + ((top-level-file) + (when (file-is-directory? top-level-file) + (copy-recursively top-level-file dest #:keep-mtime? #t))) + (_ + (copy-recursively "." dest #:keep-mtime? #t))))) + (delete-file-recursively scratch-dir))) + + (when (string-null? egg-name) + (display "WARNING: The egg name is unset.\n")) + (when (string-null? unpack-path) + (set! unpack-path egg-name)) + (let ((dest (string-append (getenv "CHICKEN_EGG_CACHE") "/" unpack-path)= )) + (mkdir-p dest) + (if (file-is-directory? source) + (copy-recursively source dest #:keep-mtime? #t) + (unpack-maybe-strip source dest))) + #t) + +(define* (build #:key egg-name #:allow-other-keys) + "Build the Chicken egg named by EGG-NAME" + (invoke "chicken-install" "-cached" "-no-install" egg-name)) + +(define* (install #:key egg-name outputs #:allow-other-keys) + "Install the already built egg named by EGG-NAME" + (invoke "chicken-install" "-cached" egg-name)) + +;; TODO how do we run tests??? + +;; TODO remove references + +(define %standard-phases + (modify-phases gnu:%standard-phases + (replace 'unpack unpack) + (delete 'bootstrap) + (delete 'configure) + (delete 'patch-generated-file-shebangs) + (add-before 'unpack 'setup-chicken-environment setup-chicken-environme= nt) + (replace 'build build) + (delete 'check) + (replace 'install install))) + +(define* (chicken-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Chicken package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) --=20 2.28.0 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0003-gnu-Use-qualified-license-names-in-chicken.scm-inste.patch >From 8a03cdcda02988384fd3a2e6e36adf0713264311 Mon Sep 17 00:00:00 2001 From: raingloom 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(-) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0004-gnu-Added-imports-for-chicken-eggs.patch >From a7e3b91b76625e01eed749c2c83a94862e3ef738 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0005-gnu-Added-chicken-srfi-1.patch >From 3cbb676b118c2db197b0d2b621cbcb5133e09fd9 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0006-gnu-Added-chicken-srfi-69.patch >From f564a2ac0e3c716347245b90fe8c7d4332b91889 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0007-gnu-Added-chicken-iset.patch >From 062e1ba3e468df07115bd022130d577132d13a41 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0008-gnu-Added-chicken-datatype.patch >From bb4c402ff458239a9270680d1b7032182fcab5df Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0009-gnu-Added-chicken-srfi-14.patch >From f20607f28be8bd050407e0ae582db7c03285dbb2 Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0010-gnu-Added-chicken-agrep.patch >From aaef438dd04f85305c50f50003d0f17082bfb83c Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 --MP_/kp9IG+qxiKrEBhV4_nIhV/I Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0011-gnu-Added-myself-to-chicken.scm-copyright.patch =46rom 52a27d11eb3d4d0ced3deda01fe901bf2f1937fd Mon Sep 17 00:00:00 2001 From: raingloom 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(+) 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 =C2=A9 2020 Ekaitz Zarraga ;;; Copyright =C2=A9 2020 Evan Hanson +;;; Copyright =C2=A9 2020 raingloom ;;; ;;; This file is part of GNU Guix. ;;; --=20 2.28.0 --MP_/kp9IG+qxiKrEBhV4_nIhV/I-- ------------=_1607011562-29720-1--