aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/guile.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/guile.scm')
-rw-r--r--gnu/packages/guile.scm367
1 files changed, 270 insertions, 97 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index f2a252b8d3..c271c4b6a0 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
-;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@@ -12,13 +12,14 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2017 David Thompson <davet@gnu.org>
-;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
+;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -67,6 +68,7 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages image)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages slang)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages networking)
@@ -212,8 +214,7 @@ without requiring the source code to be rewritten.")
(files '("share/guile/site/2.0")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
- (files '("lib/guile/2.0/site-ccache"
- "share/guile/site/2.0")))))
+ (files '("lib/guile/2.0/site-ccache")))))
(synopsis "Scheme implementation intended especially for extensions")
(description
@@ -225,10 +226,24 @@ without requiring the source code to be rewritten.")
(home-page "https://www.gnu.org/software/guile/")
(license license:lgpl3+)))
+(define-public guile-2.0.13
+ ;; For testing a "minimal" Guix
+ (hidden-package
+ (package (inherit guile-2.0)
+ (name "guile")
+ (version "2.0.13")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/guile/guile-" version
+ ".tar.xz"))
+ (sha256
+ (base32
+ "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p")))))))
+
(define-public guile-2.2
(package (inherit guile-2.0)
(name "guile")
- (version "2.2.3")
+ (version "2.2.4")
(source (origin
(method url-fetch)
@@ -238,7 +253,7 @@ without requiring the source code to be rewritten.")
".tar.xz"))
(sha256
(base32
- "11j01agvnci2cx32wwpqs9078856yxmvs15gcsz7ganpkj2ahlw3"))
+ "07p3g0v2ba2vlfbfidqzlgbhnzdx46wh2rgc5gszq1mjyx5bks6r"))
(modules '((guix build utils)))
;; Remove the pre-built object files. Instead, build everything
@@ -257,8 +272,7 @@ without requiring the source code to be rewritten.")
(files '("share/guile/site/2.2")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
- (files '("lib/guile/2.2/site-ccache"
- "share/guile/site/2.2")))))
+ (files '("lib/guile/2.2/site-ccache")))))
(arguments
(if (%current-target-system)
@@ -287,37 +301,31 @@ without requiring the source code to be rewritten.")
(max-silent-time . 36000))))) ;10 hours (needed on ARM
; when heavily loaded)
-(define-public guile-2.2.2
- ;; Keep it so that, when 'guix' runs on 2.2.2, 'guix pull' compiles objects
- ;; with 2.2.2, thereby avoiding the ABI incompatibility issues described in
- ;; <https://bugs.gnu.org/29570>.
- (package
- (inherit guile-2.2)
- (version "2.2.2")
- (source (origin
- (inherit (package-source guile-2.2))
- (uri (string-append "mirror://gnu/guile/guile-" version
- ".tar.xz"))
- (sha256
- (base32
- "1azm25zcmxif0skxfrp11d2wc89nrzpjaann9yxdw6pvjxhs948w"))))))
-
-(define-public guile-2.2.4
- ;; This version contains important bug fixes, in particular wrt. to crashes
- ;; of multi-threaded code as used by 'guix pull' and grafting.
- (package
- (inherit guile-2.2)
- (version "2.2.4")
- (source (origin
- (inherit (package-source guile-2.2))
- (uri (string-append "mirror://gnu/guile/guile-" version
- ".tar.xz"))
- (sha256
- (base32
- "07p3g0v2ba2vlfbfidqzlgbhnzdx46wh2rgc5gszq1mjyx5bks6r"))))))
-
(define-public guile-next
- (deprecated-package "guile-next" guile-2.2))
+ ;; This is the upcoming Guile 3.0, with JIT support.
+ (let ((commit "6f3357b0df64c4be17e72079864c09a542f1c779")
+ (revision "1"))
+ (package
+ (inherit guile-2.2)
+ (name "guile-next")
+ (version "2.9.1")
+ (source (origin
+ (inherit (package-source guile-2.2))
+ (uri (string-append "https://alpha.gnu.org/gnu/guile/guile-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0iba93yqn6mvgid0rfsrg4amym36pg9m8cqdplxsy222blrj9gh1"))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GUILE_LOAD_PATH")
+ (files '("share/guile/site/3.0")))
+ (search-path-specification
+ (variable "GUILE_LOAD_COMPILED_PATH")
+ (files '("lib/guile/3.0/site-ccache"
+ "share/guile/site/3.0")))))
+ (properties '((ftp-server . "alpha.gnu.org")
+ (upstream-name . "guile"))))))
(define (make-guile-readline guile)
(package
@@ -478,10 +486,7 @@ AM_SCM_LOG_FLAGS = --no-auto-compile -s")
;; FIXME: one of the database tests fails for unknown
;; reasons. It does not fail when run outside of Guix.
(("tests/database.scm") ""))
- #t))
- (add-after 'fix-bug-22 'autogen
- (lambda _
- (zero? (system* "sh" "autogen.sh")))))))
+ #t)))))
(inputs
`(("guile" ,guile-2.0)))
(native-inputs
@@ -821,14 +826,6 @@ provides tight coupling to Guix.")
(base32
"0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g"))))
(build-system gnu-build-system)
- (arguments
- '(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'autoreconf
- (lambda _
- ;; Repository comes with a broken symlink
- (delete-file "README")
- (symlink "README.org" "README")
- (zero? (system* "autoreconf" "-fi")))))))
(native-inputs
`(("autoconf" ,autoconf-wrapper)
("automake" ,automake)
@@ -897,20 +894,17 @@ for Guile\".")
(define-public guile-json
(package
(name "guile-json")
- (version "1.1.1")
+ (version "1.2.0")
(home-page "https://github.com/aconchillo/guile-json")
(source (origin
(method url-fetch)
- (uri (string-append home-page "/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (string-append "https://download.savannah.nongnu.org/releases/"
+ name "/" name "-" version ".tar.gz"))
(sha256
(base32
- "12jqkn9qgwdlxbasy2n25a2a7apf30dww1nnxqfam5735k3jdngv"))))
+ "15gnb84d7hpazqhskkf3g9z4r6knw54wfj4ch5270kakz1lp70c9"))))
(build-system gnu-build-system)
- (native-inputs `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("pkg-config" ,pkg-config)
+ (native-inputs `(("pkg-config" ,pkg-config)
("guile" ,guile-2.2)))
(inputs `(("guile" ,guile-2.2)))
(synopsis "JSON module for Guile")
@@ -924,7 +918,9 @@ specification. These are the main features:
@item Unicode support for strings.
@item Allows JSON pretty printing.
@end itemize\n")
- (license license:lgpl3+)))
+
+ ;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+).
+ (license license:gpl3+)))
(define-public guile2.2-json
(deprecated-package "guile2.2-json" guile-json))
@@ -1103,7 +1099,7 @@ Guile's foreign function interface.")
(package
(name "guile-sqlite3")
(version "0.1.0")
- (home-page "https://notabug.org/civodul/guile-sqlite3.git")
+ (home-page "https://notabug.org/guile-sqlite3/guile-sqlite3.git")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1126,17 +1122,20 @@ Guile's foreign function interface.")
"This package provides Guile bindings to the SQLite database system.")
(license license:gpl3+)))
+(define-public guile2.0-sqlite3
+ (package-for-guile-2.0 guile-sqlite3))
+
(define-public haunt
(package
(name "haunt")
- (version "0.2.2")
+ (version "0.2.4")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/haunt/haunt-"
version ".tar.gz"))
(sha256
(base32
- "0nm00krmqq4zmqi2irh35dbf2cn6al58s620hijmhfvhgvdqznlp"))))
+ "056z4znikk83nr5mr0x2ac3iinqbywa2bvb37mhr566a1q50isfc"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 match) (ice-9 ftw)
@@ -1144,13 +1143,15 @@ Guile's foreign function interface.")
#:tests? #f ; test suite is non-deterministic :(
#:phases (modify-phases %standard-phases
(add-after 'install 'wrap-haunt
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'haunt' command to refer to the right
;; modules.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(site (string-append
- out "/share/guile/site")))
+ out "/share/guile/site"))
+ (deps (list (assoc-ref inputs "guile-reader")
+ (assoc-ref inputs "guile-commonmark"))))
(match (scandir site)
(("." ".." version)
(let ((modules (string-append site "/" version))
@@ -1159,9 +1160,19 @@ Guile's foreign function interface.")
"/site-ccache")))
(wrap-program (string-append bin "/haunt")
`("GUILE_LOAD_PATH" ":" prefix
- (,modules))
+ (,modules
+ ,@(map (lambda (dep)
+ (string-append dep
+ "/share/guile/site/"
+ version))
+ deps)))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix
- (,compiled-modules)))
+ (,compiled-modules
+ ,@(map (lambda (dep)
+ (string-append dep "/lib/guile/"
+ version
+ "/site-ccache"))
+ deps))))
#t)))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -1525,10 +1536,7 @@ $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
(("^guilesitedir =.*$")
"guilesitedir = \
$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
- #t))
- (add-after 'unpack 'autoreconf
- (lambda _
- (zero? (system* "autoreconf" "-vfi")))))))
+ #t)))))
(home-page "https://github.com/artyom-poptsov/guile-dsv")
(synopsis "DSV module for Guile")
(description
@@ -1594,7 +1602,7 @@ you send to a FIFO file.")
(define-public guile-commonmark
(package
(name "guile-commonmark")
- (version "0.1")
+ (version "0.1.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/OrangeShark/" name
@@ -1602,22 +1610,12 @@ you send to a FIFO file.")
"/" name "-" version ".tar.gz"))
(sha256
(base32
- "12cb5fqvvgc87f5xp0ih5az305wnjia89l5jba83d0r2p8bfy0b0"))
- (modules '((guix build utils)))
- (snippet
- ;; Use the real effective version of Guile in directory names
- ;; instead of a hard-coded "/2.0".
- '(begin
- (substitute* "configure"
- (("ac_subst_vars='")
- "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n"))
- (substitute* "Makefile.in"
- (("/site/2.0")
- "/site/@GUILE_EFFECTIVE_VERSION@"))
- #t))))
+ "0kzclwkfijj8xka3g9kfj53y67c34ndfy84swdbw3j7y962ndxq6"))))
(build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.2)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(synopsis "CommonMark parser for Guile")
(description
"guile-commonmark is a library for parsing CommonMark, a fully specified
@@ -1817,6 +1815,20 @@ Note that 8sync is only available for Guile 2.2.")
(base32
"0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'install 'mode-guile-objects
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; .go files are installed to "lib/guile/X.Y/cache".
+ ;; This phase moves them to "…/site-ccache".
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib/guile"))
+ (old (car (find-files lib "^ccache$"
+ #:directories? #t)))
+ (new (string-append (dirname old)
+ "/site-ccache")))
+ (rename-file old new)
+ #t))))))
(native-inputs
`(("texinfo" ,texinfo)
("pkg-config" ,pkg-config)))
@@ -2013,9 +2025,33 @@ Vicare Scheme and IronScheme. Right now it contains:
@end itemize\n")
(license license:bsd-3)))
+(define-public guile-aa-tree
+ (package
+ (name "guile-aa-tree")
+ (version "3.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/guile-aa-tree/guile-aa-tree-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0044c105r3q9vpl17pv3phl1b79kjm1llhkakqgiasixyav01blh"))))
+ (build-system guile-build-system)
+ (native-inputs `(("guile" ,guile-2.2)))
+ ;; https://savannah.nongnu.org/projects/guile-aa-tree
+ (home-page "https://qlfiles.net/guile-aa-tree/")
+ (synopsis "AA tree data structure for Guile")
+ (description
+ "This package provides an implementation of @dfn{AA trees}, a
+self-balancing binary tree data structure, for Guile. It ensure @math{O(log
+n)} worst case performance for core operations. The module provides
+non-mutating insert, delete, and search operations, with support for
+convenient nested tree operations.")
+ (license license:gpl3+)))
+
(define-public guile-simple-zmq
- (let ((commit "1f3b7c0b9b249c6fde8e8a632b252d8a1b794424")
- (revision "1"))
+ (let ((commit "68bedb6679716214fb9d3472da57544526f7a618")
+ (revision "3"))
(package
(name "guile-simple-zmq")
(version (git-version "0.0.0" revision commit))
@@ -2027,7 +2063,7 @@ Vicare Scheme and IronScheme. Right now it contains:
(commit commit)))
(sha256
(base32
- "0nj2pd5bsmmgd3c54wh4sixfhmsv1arsq7yam2d7487h3n9q57r7"))
+ "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli"))
(file-name (git-file-name name version))))
(build-system guile-build-system)
(arguments
@@ -2052,8 +2088,8 @@ messaging library.")
(license license:gpl3+))))
(define-public jupyter-guile-kernel
- (let ((commit "a5c5f3ea3215b65e770bcb62f71117b0ec4575ed")
- (revision "0"))
+ (let ((commit "a7db9245a886e104138474df46c3e88b95cff629")
+ (revision "1"))
(package
(name "jupyter-guile-kernel")
(version (git-version "0.0.0" revision commit))
@@ -2065,7 +2101,7 @@ messaging library.")
(commit commit)))
(sha256
(base32
- "0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9"))))
+ "0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f"))))
(build-system guile-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@@ -2088,9 +2124,13 @@ messaging library.")
(add-after 'install 'install-kernel
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (dir (string-append
- out "/share/jupyter/kernels/guile")))
+ (let* ((out (assoc-ref outputs "out"))
+ (json (assoc-ref inputs "guile-json"))
+ (zmq (assoc-ref inputs "guile-simple-zmq"))
+ (deps (list json zmq))
+ (dir (string-append
+ out "/share/jupyter/kernels/guile"))
+ (effective (target-guile-effective-version)))
;; Install kernel.
(install-file "src/kernel.json" dir)
@@ -2104,13 +2144,30 @@ messaging library.")
(string-append "\"" (assoc-ref inputs "guile")
"/bin/guile\""))
(("-s")
- (string-append "--no-auto-compile\", \"-s")))
+ ;; Add '-L' and '-C' flags so that the kernel
+ ;; finds its dependencies.
+ (let ((-L (map (lambda (item)
+ (string-append "\"" item
+ "/share/guile/site/"
+ effective "\""))
+ deps))
+ (-C (map (lambda (item)
+ (string-append "\"" item
+ "/lib/guile/"
+ effective
+ "/site-ccache\""))
+ deps)))
+ (string-append "--no-auto-compile\""
+ (string-join -L ", \"-L\", "
+ 'prefix)
+ (string-join -C ", \"-C\", "
+ 'prefix)
+ ", \"-s"))))
#t))))))
(inputs
`(("openssl" ,openssl)
- ("guile" ,guile-2.2)))
- (propagated-inputs
- `(("guile-json" ,guile-json)
+ ("guile" ,guile-2.2)
+ ("guile-json" ,guile-json)
("guile-simple-zmq" ,guile-simple-zmq)))
(synopsis "Guile kernel for the Jupyter Notebook")
(description
@@ -2143,4 +2200,120 @@ endpoint. Additionally, it provides an interface to write SPARQL queries
using S-expressions.")
(license license:gpl3+)))
+(define-public guile-debbugs
+ (package
+ (name "guile-debbugs")
+ (version "0.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/guile-debbugs/guile-debbugs-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "16l8910p57im6s3j93xhdaqvgfy6ms5n97177mrch3y961z5hy0i"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile.in"
+ (("^godir = (.*)/ccache" _ prefix)
+ (string-append "godir = " prefix "/site-ccache"))))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("guile" ,guile-2.2)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://savannah.gnu.org/projects/guile-debbugs/")
+ (synopsis "Guile interface to the Debbugs bug tracking service")
+ (description
+ "This package provides a Guile library to communicate with a Debbugs bug
+tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
+ (license license:gpl3+)))
+
+(define-public guile-email
+ (let ((commit "fa52eac55e5946db89621a6c583d2aa357864dee")
+ (revision "1"))
+ (package
+ (name "guile-email")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.systemreboot.net/guile-email")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1037mbz7qd9bzaqp8ysyhnl9ipd97fmj3b9jr8qfzx9179vvsj63"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (inputs
+ `(("guile" ,guile-2.2)))
+ (home-page "https://git.systemreboot.net/guile-email")
+ (synopsis "Guile email parser")
+ (description "This package provides an email parser written in pure
+Guile.")
+ (license license:agpl3+))))
+
+(define-public guile-debbugs-next
+ (let ((commit "75a331d561c8b6f8efcf16216dab961c17759efe")
+ (revision "1"))
+ (package (inherit guile-debbugs)
+ (name "guile-debbugs")
+ (version (git-version "0.0.3" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/guile-debbugs.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0br3mgbw41bpc9x57jlghl0i8dz9nl63r4wzs5l47aqszf84870y"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("texinfo" ,texinfo)))
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("guile-email" ,guile-email))))))
+
+;; There has not been any release yet.
+(define-public guile-newt
+ (let ((commit "a73889c57b0572347f7641facdb1bcf08922feff")
+ (revision "2"))
+ (package
+ (name "guile-newt")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/mothacehe/guile-newt")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0k37vir22r2sq121lyy74grfai4643s7kr55z01k4j0bh27i06c3"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags
+ '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("newt" ,newt)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Guile bindings to Newt")
+ (description
+ "This package provides bindings for Newt, a programming library for
+color text mode, widget based user interfaces. The bindings are written in pure
+Scheme by using Guile’s foreign function interface.")
+ (home-page "https://gitlab.com/mothacehe/guile-newt")
+ (license license:gpl3+))))
+
;;; guile.scm ends here