[PATCH 00/12] gnu: Add some Common Lisp libraries

  • Done
  • quality assurance status badge
Details
4 participants
  • Katherine Cox-Buday
  • Guillaume LE VAILLANT
  • Ludovic Courtès
  • Pierre Neidhardt
Owner
unassigned
Submitted by
Guillaume LE VAILLANT
Severity
normal
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:27
(address . guix-patches@gnu.org)
20190701222716.12254-1-glv@posteo.net
This patch series adds the following Common Lisp libraries:

- fprog
- series
- periods
- periods-series
- metatilities-base
- cl-containers
- xlunit
- cambl
- cl-ledger
- bst
- cl-octet-streams
- cl-lzlib
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 04/12] gnu: Add periods-series
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-4-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-periods-series, cl-periods-series): New
variables.
---
gnu/packages/lisp.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index f00e8b3a5b..42aa30bbf3 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6062,6 +6062,23 @@ discontiguous ranges of time.")
(define-public cl-periods
(sbcl-package->cl-source-package sbcl-periods))
+(define-public sbcl-periods-series
+ (package
+ (inherit sbcl-periods)
+ (name "sbcl-periods-series")
+ (inputs
+ `(("periods" ,sbcl-periods)
+ ("series" ,sbcl-series)))
+ (arguments
+ '(#:asd-file "periods-series.asd"
+ #:asd-system-name "periods-series"))
+ (description
+ "Periods-series is an extension of the periods Common Lisp library
+providing functions compatible with the series Common Lisp library.")))
+
+(define-public cl-periods-series
+ (sbcl-package->cl-source-package sbcl-periods-series))
+
(define-public sbcl-fprog
(let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
(revision "1"))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 01/12] gnu: Add fprog.
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-1-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-fprog, cl-fprog): New variables.
---
gnu/packages/lisp.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 58813c2d84..88dfa51e7a 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5996,3 +5996,30 @@ cookie headers, cookie creation, cookie jar creation and more.")
(description "cl-cookie is a Common Lisp library featuring parsing of
cookie headers, cookie creation, cookie jar creation and more.")
(license license:bsd-2))))
+
+(define-public sbcl-fprog
+ (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
+ (revision "1"))
+ (package
+ (name "sbcl-fprog")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jwiegley/cambl.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Functional programming utilities for Common Lisp")
+ (description
+ "fprog is a Common Lisp library allowing iteration over immutable lists
+sharing identical sublists.")
+ (home-page "https://github.com/jwiegley/cambl")
+ (license license:bsd-3))))
+
+(define-public cl-fprog
+ (sbcl-package->cl-source-package sbcl-fprog))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 03/12] gnu: Add periods.
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-3-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-periods, cl-periods): New variables.
---
gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 76dd7a43c8..f00e8b3a5b 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6032,6 +6032,36 @@ programming style and the efficiency of an iterative programming style.")
(define-public cl-series
(sbcl-package->cl-source-package sbcl-series))
+(define-public sbcl-periods
+ (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
+ (revision "1"))
+ (package
+ (name "sbcl-periods")
+ (version (git-version "0.0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jwiegley/periods.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("local-time" ,sbcl-local-time)))
+ (synopsis "Common Lisp library for manipulating date/time objects")
+ (description
+ "Periods is a Common Lisp library providing a set of utilities for
+manipulating times, distances between times, and both contiguous and
+discontiguous ranges of time.")
+ (home-page "https://github.com/jwiegley/periods")
+ (license license:bsd-3))))
+
+(define-public cl-periods
+ (sbcl-package->cl-source-package sbcl-periods))
+
(define-public sbcl-fprog
(let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
(revision "1"))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 05/12] gnu: Add metatilities-base
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-5-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-metatilities-base, cl-metatilities-base): New
variables.
---
gnu/packages/lisp.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 42aa30bbf3..770c8030ad 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6079,6 +6079,35 @@ providing functions compatible with the series Common Lisp library.")))
(define-public cl-periods-series
(sbcl-package->cl-source-package sbcl-periods-series))
+(define-public sbcl-metatilities-base
+ (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
+ (revision "1"))
+ (package
+ (name "sbcl-metatilities-base")
+ (version (git-version "0.6.6" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/metatilities-base.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (synopsis "Core of the metatilities Common Lisp library")
+ (description
+ "Metatilities-base is the core of the metatilities Common Lisp library
+which implements a set of utilities.")
+ (home-page "https://common-lisp.net/project/metatilities-base/")
+ (license license:expat))))
+
+(define-public cl-metatilities-base
+ (sbcl-package->cl-source-package sbcl-metatilities-base))
+
(define-public sbcl-fprog
(let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
(revision "1"))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 10/12] gnu: Add bst.
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-10-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-bst, cl-bst): New variables.
---
gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index ad77792cb9..84663aebf0 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6284,3 +6284,33 @@ system.")
(define-public cl-ledger
(sbcl-package->cl-source-package sbcl-cl-ledger))
+
+(define-public sbcl-bst
+ (let ((commit "0656b90dce2dbdb898e1f40e4a1501c141e66e9b")
+ (revision "1"))
+ (package
+ (name "sbcl-bst")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/bst.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1bsk20vbvgzivgvnnmmjl376ya4c5j4139m8i0m3nwkaa9kigp6c"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("fiveam" ,sbcl-fiveam)))
+ (synopsis "Binary search tree for Common Lisp")
+ (description
+ "BST is a Common Lisp library for working with binary search trees that
+can contain any kind of values.")
+ (home-page "https://github.com/glv2/bst")
+ (license license:gpl3))))
+
+(define-public cl-bst
+ (sbcl-package->cl-source-package sbcl-bst))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 06/12] gnu: Add cl-containers
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-6-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-cl-containers, cl-containers): New variables.
---
gnu/packages/lisp.scm | 48 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 770c8030ad..d785ed2b73 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6108,6 +6108,54 @@ which implements a set of utilities.")
(define-public cl-metatilities-base
(sbcl-package->cl-source-package sbcl-metatilities-base))
+(define-public sbcl-cl-containers
+ (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-containers")
+ (version (git-version "0.12.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/cl-containers.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (inputs
+ `(("metatilities-base" ,sbcl-metatilities-base)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'relax-version-checks
+ (lambda _
+ (substitute* "cl-containers.asd"
+ (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
+ "\"metatilities-base\""))
+ (substitute* "cl-containers-test.asd"
+ (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
+ "\"lift\""))
+ #t)))))
+ (synopsis "Containers Library for Common Lisp")
+ (description
+ "Common Lisp ships with a set of powerful built in data structures
+including the venerable list, full featured arrays, and hash-tables.
+CL-containers enhances and builds on these structures by adding containers
+that are not available in native Lisp (for example: binary search trees,
+red-black trees, sparse arrays and so on), and by providing a standard
+interface so that they are simpler to use and so that changing design
+decisions becomes significantly easier.")
+ (home-page "https://common-lisp.net/project/cl-containers/")
+ (license license:expat))))
+
+(define-public cl-containers
+ (sbcl-package->cl-source-package sbcl-cl-containers))
+
(define-public sbcl-fprog
(let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
(revision "1"))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 07/12] gnu: Add xlunit
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-7-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-xlunit, cl-xlunit): New variables.
---
gnu/packages/lisp.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d785ed2b73..70b5ed4b79 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6156,6 +6156,41 @@ decisions becomes significantly easier.")
(define-public cl-containers
(sbcl-package->cl-source-package sbcl-cl-containers))
+(define-public sbcl-xlunit
+ (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
+ (revision "1"))
+ (package
+ (name "sbcl-xlunit")
+ (version (git-version "0.6.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.kpe.io/xlunit.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "xlunit.asd"
+ ((" :force t") ""))
+ #t)))))
+ (synopsis "Unit testing package for Common Lisp")
+ (description
+ "The XLUnit package is a toolkit for building test suites. It is based
+on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
+ (home-page "http://quickdocs.org/xlunit/")
+ (license license:bsd-3))))
+
+(define-public cl-xlunit
+ (sbcl-package->cl-source-package sbcl-xlunit))
+
(define-public sbcl-fprog
(let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
(revision "1"))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 02/12] gnu: Add series.
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-2-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-series, cl-series): New variables.
---
gnu/packages/lisp.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 88dfa51e7a..76dd7a43c8 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -5997,6 +5997,41 @@ cookie headers, cookie creation, cookie jar creation and more.")
cookie headers, cookie creation, cookie jar creation and more.")
(license license:bsd-2))))
+(define-public sbcl-series
+ (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
+ (revision "1"))
+ (package
+ (name "sbcl-series")
+ (version (git-version "2.2.11" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.code.sf.net/p/series/series")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; Disable the tests, they are apparently buggy and I didn't find
+ ;; a simple way to make them run and pass.
+ '(#:tests? #f))
+ (synopsis "Series data structure for Common Lisp")
+ (description
+ "This Common Lisp library provides a series data structure much like
+a sequence, with similar kinds of operations. The difference is that in many
+situations, operations on series may be composed functionally and yet execute
+iteratively, without the need to construct intermediate series values
+explicitly. In this manner, series provide both the clarity of a functional
+programming style and the efficiency of an iterative programming style.")
+ (home-page "http://series.sourceforge.net/")
+ (license license:expat))))
+
+(define-public cl-series
+ (sbcl-package->cl-source-package sbcl-series))
+
(define-public sbcl-fprog
(let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
(revision "1"))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 12/12] gnu: Add cl-lzlib
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-12-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-lzlib, cl-lzlib): New variables.
---
gnu/packages/lisp.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 94ebe813c5..e22314d059 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6344,3 +6344,45 @@ libraries.")
(define-public cl-octet-streams
(sbcl-package->cl-source-package sbcl-cl-octet-streams))
+
+(define-public sbcl-lzlib
+ (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
+ (revision "1"))
+ (package
+ (name "sbcl-lzlib")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/cl-lzlib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cl-octet-streams" ,sbcl-cl-octet-streams)
+ ("lzlib" ,lzlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/lzlib.lisp"
+ (("liblz\\.so")
+ (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
+ #t)))))
+ (synopsis "Common Lisp library for lzip (de)compression")
+ (description
+ "This Common Lisp library provides functions for lzip (LZMA)
+compression/decompression using bindings to the lzlib C library.")
+ (home-page "https://github.com/glv2/cl-lzlib")
+ (license license:gpl3+))))
+
+(define-public cl-lzlib
+ (sbcl-package->cl-source-package sbcl-lzlib))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 09/12] gnu: Add cl-ledger.
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-9-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-cl-ledger, cl-ledger): New variables.
---
gnu/packages/lisp.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 425b8029fd..ad77792cb9 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6242,3 +6242,45 @@ purpose of financial calculations."))))
(define-public cl-cambl
(sbcl-package->cl-source-package sbcl-cambl))
+
+(define-public sbcl-cl-ledger
+ (let ((commit "5e1c6ce410a485f455e61c5e38d1d1169c50eea4")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-ledger")
+ (version (git-version "4.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ledger/cl-ledger.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1hxqsh92jj5wjs1gr0lkfck5lzqp9giqi0b8d7iiaxljprqk9hki"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cambl" ,sbcl-cambl)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("local-time" ,sbcl-local-time)
+ ("periods-series" ,sbcl-periods-series)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-system-definition
+ (lambda _
+ (substitute* "cl-ledger.asd"
+ ((" :build-operation program-op") "")
+ ((" :build-pathname \"cl-ledger\"") "")
+ ((" :entry-point \"ledger::main\"") ""))
+ #t)))))
+ (synopsis "Common Lisp port of the Ledger accounting system")
+ (description
+ "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
+system.")
+ (home-page "https://github.com/ledger/cl-ledger")
+ (license license:bsd-3))))
+
+(define-public cl-ledger
+ (sbcl-package->cl-source-package sbcl-cl-ledger))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 11/12] gnu: Add cl-octet-streams
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-11-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-cl-octet-streams, cl-octet-streams): New
variables.
---
gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 84663aebf0..94ebe813c5 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6314,3 +6314,33 @@ can contain any kind of values.")
(define-public cl-bst
(sbcl-package->cl-source-package sbcl-bst))
+
+(define-public sbcl-cl-octet-streams
+ (package
+ (name "sbcl-cl-octet-streams")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/cl-octet-streams.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (synopsis "In-memory octet streams for Common Lisp")
+ (description
+ "cl-octet-streams is a library implementing in-memory octet streams for
+Common Lisp. It was inspired by the trivial-octet-streams and cl-plumbing
+libraries.")
+ (home-page "https://github.com/glv2/cl-octet-streams")
+ (license license:gpl3+)))
+
+(define-public cl-octet-streams
+ (sbcl-package->cl-source-package sbcl-cl-octet-streams))
--
2.22.0
G
G
Guillaume LE VAILLANT wrote on 2 Jul 2019 00:31
[PATCH 08/12] gnu: Add cambl.
(address . guix-patches@gnu.org)(name . Guillaume LE VAILLANT)(address . glv@posteo.net)
20190701223127.32222-8-glv@posteo.net
* gnu/packages/lisp.scm (sbcl-cambl, cl-cambl): New variables.
---
gnu/packages/lisp.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 70b5ed4b79..425b8029fd 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6217,3 +6217,28 @@ sharing identical sublists.")
(define-public cl-fprog
(sbcl-package->cl-source-package sbcl-fprog))
+
+(define-public sbcl-cambl
+ (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
+ (revision "1"))
+ (package
+ (inherit sbcl-fprog)
+ (name "sbcl-cambl")
+ (version (git-version "4.0.0" revision commit))
+ (native-inputs
+ `(("xlunit" ,sbcl-xlunit)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-containers" ,sbcl-cl-containers)
+ ("local-time" ,sbcl-local-time)
+ ("periods" ,sbcl-periods)
+ ("fprog" ,sbcl-fprog)))
+ (synopsis "Commoditized amounts and balances for Common Lisp")
+ (description
+ "Cambl is a Common Lisp library providing a convenient facility for
+working with commoditized values. It does not allow compound units (and so is
+not suited for scientific operations) but does work rather nicely for the
+purpose of financial calculations."))))
+
+(define-public cl-cambl
+ (sbcl-package->cl-source-package sbcl-cambl))
--
2.22.0
G
G
Guillaume Le Vaillant wrote on 8 Aug 2019 16:33
Re: [PATCH v2] gnu: Add some Common Lisp libraries
(address . 36467@debbugs.gnu.org)
87imr7rak9.fsf@yamatai
Updated and rebased patches attached. I also reordered them, which
should reduce the number of merge conflicts if the 'lisp.scm' file
changes before they are applied.
From f965092d2e0e2bdd2e5d73cc46f9aaad7db4de0c Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 18:40:19 +0200
Subject: [PATCH 01/12] gnu: Add series.

* gnu/packages/lisp.scm (sbcl-series, cl-series): New variables.
---
gnu/packages/lisp.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d2bed231bd..951bcc1ef0 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6650,3 +6650,38 @@ discoverable library instead of many; consistency and composability, where
@code{s} is always the last argument, which makes it easier to feed pipes and
arrows.")
(license license:expat))))
+
+(define-public sbcl-series
+ (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
+ (revision "1"))
+ (package
+ (name "sbcl-series")
+ (version (git-version "2.2.11" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.code.sf.net/p/series/series")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; Disable the tests, they are apparently buggy and I didn't find
+ ;; a simple way to make them run and pass.
+ '(#:tests? #f))
+ (synopsis "Series data structure for Common Lisp")
+ (description
+ "This Common Lisp library provides a series data structure much like
+a sequence, with similar kinds of operations. The difference is that in many
+situations, operations on series may be composed functionally and yet execute
+iteratively, without the need to construct intermediate series values
+explicitly. In this manner, series provide both the clarity of a functional
+programming style and the efficiency of an iterative programming style.")
+ (home-page "http://series.sourceforge.net/")
+ (license license:expat))))
+
+(define-public cl-series
+ (sbcl-package->cl-source-package sbcl-series))
--
2.22.0
From 63728e695b1c817be0fadd26530cc521204b8a2a Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 18:56:15 +0200
Subject: [PATCH 02/12] gnu: Add periods.

* gnu/packages/lisp.scm (sbcl-periods, cl-periods): New variables.
---
gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 951bcc1ef0..71be272fe8 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6685,3 +6685,33 @@ programming style and the efficiency of an iterative programming style.")
(define-public cl-series
(sbcl-package->cl-source-package sbcl-series))
+
+(define-public sbcl-periods
+ (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
+ (revision "1"))
+ (package
+ (name "sbcl-periods")
+ (version (git-version "0.0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jwiegley/periods.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("local-time" ,sbcl-local-time)))
+ (synopsis "Common Lisp library for manipulating date/time objects")
+ (description
+ "Periods is a Common Lisp library providing a set of utilities for
+manipulating times, distances between times, and both contiguous and
+discontiguous ranges of time.")
+ (home-page "https://github.com/jwiegley/periods")
+ (license license:bsd-3))))
+
+(define-public cl-periods
+ (sbcl-package->cl-source-package sbcl-periods))
--
2.22.0
From f8fd0a2edf794a3c4f4be8b2cbc24b4be4a2593c Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 19:16:48 +0200
Subject: [PATCH 03/12] gnu: Add periods-series

* gnu/packages/lisp.scm (sbcl-periods-series, cl-periods-series): New
variables.
---
gnu/packages/lisp.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 71be272fe8..c4a291fa72 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6715,3 +6715,20 @@ discontiguous ranges of time.")
(define-public cl-periods
(sbcl-package->cl-source-package sbcl-periods))
+
+(define-public sbcl-periods-series
+ (package
+ (inherit sbcl-periods)
+ (name "sbcl-periods-series")
+ (inputs
+ `(("periods" ,sbcl-periods)
+ ("series" ,sbcl-series)))
+ (arguments
+ '(#:asd-file "periods-series.asd"
+ #:asd-system-name "periods-series"))
+ (description
+ "Periods-series is an extension of the periods Common Lisp library
+providing functions compatible with the series Common Lisp library.")))
+
+(define-public cl-periods-series
+ (sbcl-package->cl-source-package sbcl-periods-series))
--
2.22.0
From 7cd8ab17c461d50fc403ef5c44db78e550a25431 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 20:16:38 +0200
Subject: [PATCH 04/12] gnu: Add metatilities-base

* gnu/packages/lisp.scm (sbcl-metatilities-base, cl-metatilities-base): New
variables.
---
gnu/packages/lisp.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index c4a291fa72..3efe4ee2bf 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6732,3 +6732,32 @@ providing functions compatible with the series Common Lisp library.")))
(define-public cl-periods-series
(sbcl-package->cl-source-package sbcl-periods-series))
+
+(define-public sbcl-metatilities-base
+ (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
+ (revision "1"))
+ (package
+ (name "sbcl-metatilities-base")
+ (version (git-version "0.6.6" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/metatilities-base.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (synopsis "Core of the metatilities Common Lisp library")
+ (description
+ "Metatilities-base is the core of the metatilities Common Lisp library
+which implements a set of utilities.")
+ (home-page "https://common-lisp.net/project/metatilities-base/")
+ (license license:expat))))
+
+(define-public cl-metatilities-base
+ (sbcl-package->cl-source-package sbcl-metatilities-base))
--
2.22.0
From 2c2067806ab48fc376912d5566c2d87a0189a374 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 20:56:50 +0200
Subject: [PATCH 05/12] gnu: Add cl-containers

* gnu/packages/lisp.scm (sbcl-cl-containers, cl-containers): New variables.
---
gnu/packages/lisp.scm | 48 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 3efe4ee2bf..e315b663ea 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6761,3 +6761,51 @@ which implements a set of utilities.")
(define-public cl-metatilities-base
(sbcl-package->cl-source-package sbcl-metatilities-base))
+
+(define-public sbcl-cl-containers
+ (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-containers")
+ (version (git-version "0.12.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/cl-containers.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (inputs
+ `(("metatilities-base" ,sbcl-metatilities-base)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'relax-version-checks
+ (lambda _
+ (substitute* "cl-containers.asd"
+ (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
+ "\"metatilities-base\""))
+ (substitute* "cl-containers-test.asd"
+ (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
+ "\"lift\""))
+ #t)))))
+ (synopsis "Containers Library for Common Lisp")
+ (description
+ "Common Lisp ships with a set of powerful built in data structures
+including the venerable list, full featured arrays, and hash-tables.
+CL-containers enhances and builds on these structures by adding containers
+that are not available in native Lisp (for example: binary search trees,
+red-black trees, sparse arrays and so on), and by providing a standard
+interface so that they are simpler to use and so that changing design
+decisions becomes significantly easier.")
+ (home-page "https://common-lisp.net/project/cl-containers/")
+ (license license:expat))))
+
+(define-public cl-containers
+ (sbcl-package->cl-source-package sbcl-cl-containers))
--
2.22.0
From 6e735c9f977b252ef016da11ad7a6fe802d848c5 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 21:32:46 +0200
Subject: [PATCH 06/12] gnu: Add xlunit

* gnu/packages/lisp.scm (sbcl-xlunit, cl-xlunit): New variables.
---
gnu/packages/lisp.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index e315b663ea..7f0308066b 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6809,3 +6809,38 @@ decisions becomes significantly easier.")
(define-public cl-containers
(sbcl-package->cl-source-package sbcl-cl-containers))
+
+(define-public sbcl-xlunit
+ (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
+ (revision "1"))
+ (package
+ (name "sbcl-xlunit")
+ (version (git-version "0.6.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.kpe.io/xlunit.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "xlunit.asd"
+ ((" :force t") ""))
+ #t)))))
+ (synopsis "Unit testing package for Common Lisp")
+ (description
+ "The XLUnit package is a toolkit for building test suites. It is based
+on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
+ (home-page "http://quickdocs.org/xlunit/")
+ (license license:bsd-3))))
+
+(define-public cl-xlunit
+ (sbcl-package->cl-source-package sbcl-xlunit))
--
2.22.0
From 83dfdfb91db9688d206f475292f3ff22c5177d89 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 17:31:19 +0200
Subject: [PATCH 07/12] gnu: Add fprog.

* gnu/packages/lisp.scm (sbcl-fprog, cl-fprog): New variables.
---
gnu/packages/lisp.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 7f0308066b..ca407613fa 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6844,3 +6844,30 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
(define-public cl-xlunit
(sbcl-package->cl-source-package sbcl-xlunit))
+
+(define-public sbcl-fprog
+ (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
+ (revision "1"))
+ (package
+ (name "sbcl-fprog")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jwiegley/cambl.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Functional programming utilities for Common Lisp")
+ (description
+ "fprog is a Common Lisp library allowing iteration over immutable lists
+sharing identical sublists.")
+ (home-page "https://github.com/jwiegley/cambl")
+ (license license:bsd-3))))
+
+(define-public cl-fprog
+ (sbcl-package->cl-source-package sbcl-fprog))
--
2.22.0
From fe89a3b37bee254072bd3fe2e14c7eca271c8946 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 21:46:50 +0200
Subject: [PATCH 08/12] gnu: Add cambl.

* gnu/packages/lisp.scm (sbcl-cambl, cl-cambl): New variables.
---
gnu/packages/lisp.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index ca407613fa..1a2ffd269c 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6871,3 +6871,28 @@ sharing identical sublists.")
(define-public cl-fprog
(sbcl-package->cl-source-package sbcl-fprog))
+
+(define-public sbcl-cambl
+ (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
+ (revision "1"))
+ (package
+ (inherit sbcl-fprog)
+ (name "sbcl-cambl")
+ (version (git-version "4.0.0" revision commit))
+ (native-inputs
+ `(("xlunit" ,sbcl-xlunit)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-containers" ,sbcl-cl-containers)
+ ("local-time" ,sbcl-local-time)
+ ("periods" ,sbcl-periods)
+ ("fprog" ,sbcl-fprog)))
+ (synopsis "Commoditized amounts and balances for Common Lisp")
+ (description
+ "Cambl is a Common Lisp library providing a convenient facility for
+working with commoditized values. It does not allow compound units (and so is
+not suited for scientific operations) but does work rather nicely for the
+purpose of financial calculations."))))
+
+(define-public cl-cambl
+ (sbcl-package->cl-source-package sbcl-cambl))
--
2.22.0
From 22f57385c7cd2014a56bd749a7494e9feaa85b57 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Thu, 8 Aug 2019 15:54:46 +0200
Subject: [PATCH 09/12] gnu: Add cl-ledger.

* gnu/packages/lisp.scm (sbcl-cl-ledger, cl-ledger): New variables.
---
gnu/packages/lisp.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 1a2ffd269c..2e6b79dab3 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6896,3 +6896,45 @@ purpose of financial calculations."))))
(define-public cl-cambl
(sbcl-package->cl-source-package sbcl-cambl))
+
+(define-public sbcl-cl-ledger
+ (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-ledger")
+ (version (git-version "4.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ledger/cl-ledger.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cambl" ,sbcl-cambl)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("local-time" ,sbcl-local-time)
+ ("periods-series" ,sbcl-periods-series)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-system-definition
+ (lambda _
+ (substitute* "cl-ledger.asd"
+ ((" :build-operation program-op") "")
+ ((" :build-pathname \"cl-ledger\"") "")
+ ((" :entry-point \"ledger::main\"") ""))
+ #t)))))
+ (synopsis "Common Lisp port of the Ledger accounting system")
+ (description
+ "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
+system.")
+ (home-page "https://github.com/ledger/cl-ledger")
+ (license license:bsd-3))))
+
+(define-public cl-ledger
+ (sbcl-package->cl-source-package sbcl-cl-ledger))
--
2.22.0
From da174b2df063da4c3fa981c68039bfca2aba0ac6 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Thu, 8 Aug 2019 16:00:15 +0200
Subject: [PATCH 10/12] gnu: Add bst.

* gnu/packages/lisp.scm (sbcl-bst, cl-bst): New variables.
---
gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 2e6b79dab3..6f516f673b 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6938,3 +6938,33 @@ system.")
(define-public cl-ledger
(sbcl-package->cl-source-package sbcl-cl-ledger))
+
+(define-public sbcl-bst
+ (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
+ (revision "1"))
+ (package
+ (name "sbcl-bst")
+ (version (git-version "1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/bst.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("fiveam" ,sbcl-fiveam)))
+ (synopsis "Binary search tree for Common Lisp")
+ (description
+ "BST is a Common Lisp library for working with binary search trees that
+can contain any kind of values.")
+ (home-page "https://github.com/glv2/bst")
+ (license license:gpl3))))
+
+(define-public cl-bst
+ (sbcl-package->cl-source-package sbcl-bst))
--
2.22.0
From f045c2af1b5aa24c1038dc50348b24b3b6eff7a0 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 22:50:23 +0200
Subject: [PATCH 11/12] gnu: Add cl-octet-streams

* gnu/packages/lisp.scm (sbcl-cl-octet-streams, cl-octet-streams): New
variables.
---
gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 6f516f673b..d4858245ec 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6968,3 +6968,33 @@ can contain any kind of values.")
(define-public cl-bst
(sbcl-package->cl-source-package sbcl-bst))
+
+(define-public sbcl-cl-octet-streams
+ (package
+ (name "sbcl-cl-octet-streams")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/cl-octet-streams.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (synopsis "In-memory octet streams for Common Lisp")
+ (description
+ "cl-octet-streams is a library implementing in-memory octet streams for
+Common Lisp. It was inspired by the trivial-octet-streams and cl-plumbing
+libraries.")
+ (home-page "https://github.com/glv2/cl-octet-streams")
+ (license license:gpl3+)))
+
+(define-public cl-octet-streams
+ (sbcl-package->cl-source-package sbcl-cl-octet-streams))
--
2.22.0
From c5fde4eb376cfa75127418ef68bc755ada2c3e0d Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 23:23:22 +0200
Subject: [PATCH 12/12] gnu: Add cl-lzlib

* gnu/packages/lisp.scm (sbcl-lzlib, cl-lzlib): New variables.
---
gnu/packages/lisp.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d4858245ec..385aa35002 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6998,3 +6998,45 @@ libraries.")
(define-public cl-octet-streams
(sbcl-package->cl-source-package sbcl-cl-octet-streams))
+
+(define-public sbcl-lzlib
+ (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
+ (revision "1"))
+ (package
+ (name "sbcl-lzlib")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/cl-lzlib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cl-octet-streams" ,sbcl-cl-octet-streams)
+ ("lzlib" ,lzlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/lzlib.lisp"
+ (("liblz\\.so")
+ (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
+ #t)))))
+ (synopsis "Common Lisp library for lzip (de)compression")
+ (description
+ "This Common Lisp library provides functions for lzip (LZMA)
+compression/decompression using bindings to the lzlib C library.")
+ (home-page "https://github.com/glv2/cl-lzlib")
+ (license license:gpl3+))))
+
+(define-public cl-lzlib
+ (sbcl-package->cl-source-package sbcl-lzlib))
--
2.22.0
L
L
Ludovic Courtès wrote on 4 Sep 2019 15:35
Re: [bug#36467] [PATCH v2] gnu: Add some Common Lisp libraries
(name . Guillaume Le Vaillant)(address . glv@posteo.net)
87blw018x7.fsf@gnu.org
Hello Guillaume,

Guillaume Le Vaillant <glv@posteo.net> skribis:

Toggle quote (4 lines)
> Updated and rebased patches attached. I also reordered them, which
> should reduce the number of merge conflicts if the 'lisp.scm' file
> changes before they are applied.

Katherine, Pierre, or Andy: could you take care of these patches and
push those that you deem ready?


Thanks in advance! :-)

Ludo’.
P
P
Pierre Neidhardt wrote on 16 Sep 2019 10:55
87y2yopqln.fsf@ambrevar.xyz
Hi Guillaume,

thanks for the big patchset, looking very good overall!

A few general nits:

- You didn't define any "ecl-" package. Could you define them for all the
packages (unless they are known to be broken with ECL)?
I know some packages lack the ecl- definition, this should be fixed :p

- 6 commit messages lack a period on the first line.
If you use Emacs, you might find this yasnippet useful:
guix/etc/snippets/text-mode/guix-commit-message-add-package

fprog:
- Description should start with a capital, or here maybe with @code{fprog}.

cambl:
- is spelled in all-caps ("CAMBL") according to the README.

cl-containers:
- synopsis: "Container library ..."

- I'm realizing the sbcl-lift does not have the right version number, which
should be (git-version "1.7.1" ...). Can you update this?

bst:
- 1.1 is out ;)

cl-octet-streams:
- Description should start with a capital, or here maybe with @code{cl-octet-streams}.

cl-lzlib
- License seems to be GPL-3, not GPL-3+, but since this is your library, the
decision is all yours ;)

Thanks a lot for this great contribution to "Common Lisp on Guix" :)

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl1/ThQACgkQm9z0l6S7
zH+AKwf+Lu515BzNR9gfDQTjWEC51isK8Fo5xZDNljMyfZqI72Wv0rUG9B4AsBQH
wXE3/w05YpZb5navtpoxRg832WS+7w3z0UdK0Ww9WwQISQ+xOp1Yvoc3oBL7jzsh
bVdycJ5I7GBj+nRXo4DME3lMfZZzawZn+Cj+pYKMKtk+8mcsW7Cm3lHmy/QyYBT9
cNIYxA9OjwyvSZs50Zb/WQTAk9/V0UdS6DLF07OoklT/TpjmdvLKwtl4wUr1bboP
Dcm1xG3DY3PLAcXGmrDYTxFkgwe5m3rSaHSR05eJX+/hiPG0dYw6GDc3Cm3CH9K4
cv2+y4cvGQm1/cpLorL6D4CubkQ7xA==
=Buvx
-----END PGP SIGNATURE-----

G
G
Guillaume Le Vaillant wrote on 16 Sep 2019 16:11
Re: [bug#36467] [PATCH v3] gnu: Add some Common Lisp libraries
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)
87h85ctjoe.fsf@yamatai
Pierre Neidhardt skribis:

Toggle quote (38 lines)
> Hi Guillaume,
>
> thanks for the big patchset, looking very good overall!
>
> A few general nits:
>
> - You didn't define any "ecl-" package. Could you define them for all the
> packages (unless they are known to be broken with ECL)?
> I know some packages lack the ecl- definition, this should be fixed :p
>
> - 6 commit messages lack a period on the first line.
> If you use Emacs, you might find this yasnippet useful:
> guix/etc/snippets/text-mode/guix-commit-message-add-package
>
> fprog:
> - Description should start with a capital, or here maybe with @code{fprog}.
>
> cambl:
> - is spelled in all-caps ("CAMBL") according to the README.
>
> cl-containers:
> - synopsis: "Container library ..."
>
> - I'm realizing the sbcl-lift does not have the right version number, which
> should be (git-version "1.7.1" ...). Can you update this?
>
> bst:
> - 1.1 is out ;)
>
> cl-octet-streams:
> - Description should start with a capital, or here maybe with @code{cl-octet-streams}.
>
> cl-lzlib
> - License seems to be GPL-3, not GPL-3+, but since this is your library, the
> decision is all yours ;)
>
> Thanks a lot for this great contribution to "Common Lisp on Guix" :)

Hi,

Here's the updated patch set (I think I didn't forget anything).

However some "ecl-" packages can't be built
right now because of a dependency that fails to build
(/gnu/store/sjyr2l309ldnfg9db718y585b3c13g51-ecl-hu.dwim.asdf-0.0.0-1.170b0e4.drv,
which apparently tries to load an SBCL-specific package).
From a3f1e0a871758e9fd00388b0e604d82a1faa5b79 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 13:47:46 +0200
Subject: [PATCH 01/13] gnu: Add series.

* gnu/packages/lisp.scm (sbcl-series, cl-series, ecl-series): New variables.
---
gnu/packages/lisp.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 0c8ad1e2fa..37a0893d2f 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6934,3 +6934,41 @@ classes and cyclic data structures are supported.")
(define-public ecl-cl-prevalence
(sbcl-package->ecl-package sbcl-cl-prevalence))
+
+(define-public sbcl-series
+ (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a")
+ (revision "1"))
+ (package
+ (name "sbcl-series")
+ (version (git-version "2.2.11" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.code.sf.net/p/series/series")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; Disable the tests, they are apparently buggy and I didn't find
+ ;; a simple way to make them run and pass.
+ '(#:tests? #f))
+ (synopsis "Series data structure for Common Lisp")
+ (description
+ "This Common Lisp library provides a series data structure much like
+a sequence, with similar kinds of operations. The difference is that in many
+situations, operations on series may be composed functionally and yet execute
+iteratively, without the need to construct intermediate series values
+explicitly. In this manner, series provide both the clarity of a functional
+programming style and the efficiency of an iterative programming style.")
+ (home-page "http://series.sourceforge.net/")
+ (license license:expat))))
+
+(define-public cl-series
+ (sbcl-package->cl-source-package sbcl-series))
+
+(define-public ecl-series
+ (sbcl-package->ecl-package sbcl-series))
--
2.23.0
From e298df4b1b8f5f10e1ec7c05efdb083fd5d4d557 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 13:54:30 +0200
Subject: [PATCH 02/13] gnu: Add periods.

* gnu/packages/lisp.scm (sbcl-periods, cl-periods, ecl-periods): New variables.
---
gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 37a0893d2f..362da8f646 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6972,3 +6972,36 @@ programming style and the efficiency of an iterative programming style.")
(define-public ecl-series
(sbcl-package->ecl-package sbcl-series))
+
+(define-public sbcl-periods
+ (let ((commit "983d4a57325db3c8def942f163133cec5391ec28")
+ (revision "1"))
+ (package
+ (name "sbcl-periods")
+ (version (git-version "0.0.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jwiegley/periods.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("local-time" ,sbcl-local-time)))
+ (synopsis "Common Lisp library for manipulating date/time objects")
+ (description
+ "Periods is a Common Lisp library providing a set of utilities for
+manipulating times, distances between times, and both contiguous and
+discontiguous ranges of time.")
+ (home-page "https://github.com/jwiegley/periods")
+ (license license:bsd-3))))
+
+(define-public cl-periods
+ (sbcl-package->cl-source-package sbcl-periods))
+
+(define-public ecl-periods
+ (sbcl-package->ecl-package sbcl-periods))
--
2.23.0
From c3f8369d21916eece5f69197c482be1e4a4f285d Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 14:40:27 +0200
Subject: [PATCH 03/13] gnu: Add periods-series.

* gnu/packages/lisp.scm (sbcl-periods-series, cl-periods-series,
ecl-periods-series): New variables.
---
gnu/packages/lisp.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 362da8f646..d88a18e358 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7005,3 +7005,23 @@ discontiguous ranges of time.")
(define-public ecl-periods
(sbcl-package->ecl-package sbcl-periods))
+
+(define-public sbcl-periods-series
+ (package
+ (inherit sbcl-periods)
+ (name "sbcl-periods-series")
+ (inputs
+ `(("periods" ,sbcl-periods)
+ ("series" ,sbcl-series)))
+ (arguments
+ '(#:asd-file "periods-series.asd"
+ #:asd-system-name "periods-series"))
+ (description
+ "Periods-series is an extension of the periods Common Lisp library
+providing functions compatible with the series Common Lisp library.")))
+
+(define-public cl-periods-series
+ (sbcl-package->cl-source-package sbcl-periods-series))
+
+(define-public ecl-periods-series
+ (sbcl-package->ecl-package sbcl-periods-series))
--
2.23.0
From dc4232786b61da7b9c1e545a63dabe2770f5cf75 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 20:16:38 +0200
Subject: [PATCH 04/13] gnu: Add metatilities-base.

* gnu/packages/lisp.scm (sbcl-metatilities-base, cl-metatilities-base,
ecl-metatilities-base): New variables.
---
gnu/packages/lisp.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index d88a18e358..b820f489e6 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7025,3 +7025,35 @@ providing functions compatible with the series Common Lisp library.")))
(define-public ecl-periods-series
(sbcl-package->ecl-package sbcl-periods-series))
+
+(define-public sbcl-metatilities-base
+ (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
+ (revision "1"))
+ (package
+ (name "sbcl-metatilities-base")
+ (version (git-version "0.6.6" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/metatilities-base.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (synopsis "Core of the metatilities Common Lisp library")
+ (description
+ "Metatilities-base is the core of the metatilities Common Lisp library
+which implements a set of utilities.")
+ (home-page "https://common-lisp.net/project/metatilities-base/")
+ (license license:expat))))
+
+(define-public cl-metatilities-base
+ (sbcl-package->cl-source-package sbcl-metatilities-base))
+
+(define-public ecl-metatilities-base
+ (sbcl-package->ecl-package sbcl-metatilities-base))
--
2.23.0
From 3272a8a144cb790c4e7042b8070f73185242abbd Mon Sep 17 00:00:00 2001
From: Guillaume Le Vaillant <glv@posteo.net>
Date: Mon, 16 Sep 2019 14:46:37 +0200
Subject: [PATCH 05/13] gnu: sbcl-lift: Fix version number.

* gnu/packages/lisp.scm (sbcl-lift)[version]: Set to 1.7.1 instead of 0.0.0.
---
gnu/packages/lisp.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index b820f489e6..f076798e7a 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -2485,7 +2485,7 @@ new fiends in addition to old friends like @command{aif} and
(let ((commit "7d49a66c62759535624037826891152223d4206c"))
(package
(name "sbcl-lift")
- (version (git-version "0.0.0" "1" commit))
+ (version (git-version "1.7.1" "1" commit))
(source
(origin
(method git-fetch)
--
2.23.0
From 9a071a220da512dd008a9d106070b879a396c918 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 14:57:53 +0200
Subject: [PATCH 06/13] gnu: Add cl-containers.

* gnu/packages/lisp.scm (sbcl-cl-containers, cl-containers, ecl-containers):
New variables.
---
gnu/packages/lisp.scm | 51 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index f076798e7a..40dba3b16c 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7057,3 +7057,54 @@ which implements a set of utilities.")
(define-public ecl-metatilities-base
(sbcl-package->ecl-package sbcl-metatilities-base))
+
+(define-public sbcl-cl-containers
+ (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-containers")
+ (version (git-version "0.12.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/cl-containers.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (inputs
+ `(("metatilities-base" ,sbcl-metatilities-base)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'relax-version-checks
+ (lambda _
+ (substitute* "cl-containers.asd"
+ (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)")
+ "\"metatilities-base\""))
+ (substitute* "cl-containers-test.asd"
+ (("\\(:version \"lift\" \"1\\.7\\.0\"\\)")
+ "\"lift\""))
+ #t)))))
+ (synopsis "Container library for Common Lisp")
+ (description
+ "Common Lisp ships with a set of powerful built in data structures
+including the venerable list, full featured arrays, and hash-tables.
+CL-containers enhances and builds on these structures by adding containers
+that are not available in native Lisp (for example: binary search trees,
+red-black trees, sparse arrays and so on), and by providing a standard
+interface so that they are simpler to use and so that changing design
+decisions becomes significantly easier.")
+ (home-page "https://common-lisp.net/project/cl-containers/")
+ (license license:expat))))
+
+(define-public cl-containers
+ (sbcl-package->cl-source-package sbcl-cl-containers))
+
+(define-public ecl-cl-containers
+ (sbcl-package->ecl-package sbcl-cl-containers))
--
2.23.0
From 74e4747cbeae69a08e5e7b02669bc7adeb2abeb0 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 15:03:55 +0200
Subject: [PATCH 07/13] gnu: Add xlunit.

* gnu/packages/lisp.scm (sbcl-xlunit, cl-xlunit, ecl-xlunit): New variables.
---
gnu/packages/lisp.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 40dba3b16c..23204fafe8 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7108,3 +7108,41 @@ decisions becomes significantly easier.")
(define-public ecl-cl-containers
(sbcl-package->ecl-package sbcl-cl-containers))
+
+(define-public sbcl-xlunit
+ (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
+ (revision "1"))
+ (package
+ (name "sbcl-xlunit")
+ (version (git-version "0.6.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.kpe.io/xlunit.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "xlunit.asd"
+ ((" :force t") ""))
+ #t)))))
+ (synopsis "Unit testing package for Common Lisp")
+ (description
+ "The XLUnit package is a toolkit for building test suites. It is based
+on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
+ (home-page "http://quickdocs.org/xlunit/")
+ (license license:bsd-3))))
+
+(define-public cl-xlunit
+ (sbcl-package->cl-source-package sbcl-xlunit))
+
+(define-public ecl-xlunit
+ (sbcl-package->ecl-package sbcl-xlunit))
--
2.23.0
From 09d1056ddad21dc4e543e3b80664e4477500fa76 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 15:10:03 +0200
Subject: [PATCH 08/13] gnu: Add fprog.

* gnu/packages/lisp.scm (sbcl-fprog, cl-fprog, ecl-fprog): New variables.
---
gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 23204fafe8..6f7667f77d 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7146,3 +7146,33 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
(define-public ecl-xlunit
(sbcl-package->ecl-package sbcl-xlunit))
+
+(define-public sbcl-fprog
+ (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
+ (revision "1"))
+ (package
+ (name "sbcl-fprog")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jwiegley/cambl.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Functional programming utilities for Common Lisp")
+ (description
+ "@code{fprog} is a Common Lisp library allowing iteration over
+immutable lists sharing identical sublists.")
+ (home-page "https://github.com/jwiegley/cambl")
+ (license license:bsd-3))))
+
+(define-public cl-fprog
+ (sbcl-package->cl-source-package sbcl-fprog))
+
+(define-public ecl-fprog
+ (sbcl-package->ecl-package sbcl-fprog))
--
2.23.0
From 70a55fbf061a8a73d23379d4875d73c617e0ba6f Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 15:13:53 +0200
Subject: [PATCH 09/13] gnu: Add cambl.

* gnu/packages/lisp.scm (sbcl-cambl, cl-cambl, ecl-cambl): New variables.
---
gnu/packages/lisp.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 6f7667f77d..8cd27c8d54 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7176,3 +7176,31 @@ immutable lists sharing identical sublists.")
(define-public ecl-fprog
(sbcl-package->ecl-package sbcl-fprog))
+
+(define-public sbcl-cambl
+ (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
+ (revision "1"))
+ (package
+ (inherit sbcl-fprog)
+ (name "sbcl-cambl")
+ (version (git-version "4.0.0" revision commit))
+ (native-inputs
+ `(("xlunit" ,sbcl-xlunit)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-containers" ,sbcl-cl-containers)
+ ("local-time" ,sbcl-local-time)
+ ("periods" ,sbcl-periods)
+ ("fprog" ,sbcl-fprog)))
+ (synopsis "Commoditized amounts and balances for Common Lisp")
+ (description
+ "CAMBL is a Common Lisp library providing a convenient facility for
+working with commoditized values. It does not allow compound units (and so is
+not suited for scientific operations) but does work rather nicely for the
+purpose of financial calculations."))))
+
+(define-public cl-cambl
+ (sbcl-package->cl-source-package sbcl-cambl))
+
+(define-public ecl-cambl
+ (sbcl-package->ecl-package sbcl-cambl))
--
2.23.0
From 3487c979ed67601bb84c06c3f92f7f17e41392fb Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Thu, 8 Aug 2019 15:54:46 +0200
Subject: [PATCH 10/13] gnu: Add cl-ledger.

* gnu/packages/lisp.scm (sbcl-cl-ledger, cl-ledger, ecl-cl-ledger): New
variables.
---
gnu/packages/lisp.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 8cd27c8d54..6a5e8da664 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7204,3 +7204,48 @@ purpose of financial calculations."))))
(define-public ecl-cambl
(sbcl-package->ecl-package sbcl-cambl))
+
+(define-public sbcl-cl-ledger
+ (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-ledger")
+ (version (git-version "4.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ledger/cl-ledger.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cambl" ,sbcl-cambl)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("local-time" ,sbcl-local-time)
+ ("periods-series" ,sbcl-periods-series)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-system-definition
+ (lambda _
+ (substitute* "cl-ledger.asd"
+ ((" :build-operation program-op") "")
+ ((" :build-pathname \"cl-ledger\"") "")
+ ((" :entry-point \"ledger::main\"") ""))
+ #t)))))
+ (synopsis "Common Lisp port of the Ledger accounting system")
+ (description
+ "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting
+system.")
+ (home-page "https://github.com/ledger/cl-ledger")
+ (license license:bsd-3))))
+
+(define-public cl-ledger
+ (sbcl-package->cl-source-package sbcl-cl-ledger))
+
+(define-public ecl-cl-ledger
+ (sbcl-package->ecl-package sbcl-cl-ledger))
--
2.23.0
From 70bc05a476205bbe1cb267b9df43b84acbcca76e Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Thu, 8 Aug 2019 16:00:15 +0200
Subject: [PATCH 11/13] gnu: Add bst.

* gnu/packages/lisp.scm (sbcl-bst, cl-bst, ecl-bst): New variables.
---
gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 6a5e8da664..205a6120be 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7249,3 +7249,36 @@ system.")
(define-public ecl-cl-ledger
(sbcl-package->ecl-package sbcl-cl-ledger))
+
+(define-public sbcl-bst
+ (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a")
+ (revision "1"))
+ (package
+ (name "sbcl-bst")
+ (version (git-version "1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/bst.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("fiveam" ,sbcl-fiveam)))
+ (synopsis "Binary search tree for Common Lisp")
+ (description
+ "BST is a Common Lisp library for working with binary search trees that
+can contain any kind of values.")
+ (home-page "https://github.com/glv2/bst")
+ (license license:gpl3))))
+
+(define-public cl-bst
+ (sbcl-package->cl-source-package sbcl-bst))
+
+(define-public ecl-bst
+ (sbcl-package->ecl-package sbcl-bst))
--
2.23.0
From 6677d5a172356a15fa2139cf2b34b2f6f8962cf4 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 16 Sep 2019 15:32:41 +0200
Subject: [PATCH 12/13] gnu: Add cl-octet-streams.

* gnu/packages/lisp.scm (sbcl-cl-octet-streams, cl-octet-streams,
ecl-cl-octet-streams): New variables.
---
gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 205a6120be..63381a8cea 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7282,3 +7282,36 @@ can contain any kind of values.")
(define-public ecl-bst
(sbcl-package->ecl-package sbcl-bst))
+
+(define-public sbcl-cl-octet-streams
+ (package
+ (name "sbcl-cl-octet-streams")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/cl-octet-streams.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (synopsis "In-memory octet streams for Common Lisp")
+ (description
+ "CL-octet-streams is a library implementing in-memory octet
+streams for Common Lisp. It was inspired by the trivial-octet-streams and
+cl-plumbing libraries.")
+ (home-page "https://github.com/glv2/cl-octet-streams")
+ (license license:gpl3+)))
+
+(define-public cl-octet-streams
+ (sbcl-package->cl-source-package sbcl-cl-octet-streams))
+
+(define-public ecl-cl-octet-streams
+ (sbcl-package->ecl-package sbcl-cl-octet-streams))
--
2.23.0
From 8a0ee3aba33e319b78e6cd3c550ed7f279642262 Mon Sep 17 00:00:00 2001
From: Guillaume LE VAILLANT <glv@posteo.net>
Date: Mon, 1 Jul 2019 23:23:22 +0200
Subject: [PATCH 13/13] gnu: Add cl-lzlib.

* gnu/packages/lisp.scm (sbcl-lzlib, cl-lzlib, ecl-lzlib): New variables.
---
gnu/packages/lisp.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 63381a8cea..94ef3731e0 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7315,3 +7315,48 @@ cl-plumbing libraries.")
(define-public ecl-cl-octet-streams
(sbcl-package->ecl-package sbcl-cl-octet-streams))
+
+(define-public sbcl-lzlib
+ (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47")
+ (revision "1"))
+ (package
+ (name "sbcl-lzlib")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/cl-lzlib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cl-octet-streams" ,sbcl-cl-octet-streams)
+ ("lzlib" ,lzlib)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/lzlib.lisp"
+ (("liblz\\.so")
+ (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so")))
+ #t)))))
+ (synopsis "Common Lisp library for lzip (de)compression")
+ (description
+ "This Common Lisp library provides functions for lzip (LZMA)
+compression/decompression using bindings to the lzlib C library.")
+ (home-page "https://github.com/glv2/cl-lzlib")
+ (license license:gpl3+))))
+
+(define-public cl-lzlib
+ (sbcl-package->cl-source-package sbcl-lzlib))
+
+(define-public ecl-lzlib
+ (sbcl-package->ecl-package sbcl-lzlib))
--
2.23.0
L
L
Ludovic Courtès wrote on 16 Sep 2019 17:12
(name . Guillaume Le Vaillant)(address . glv@posteo.net)
87d0g06zrf.fsf@gnu.org
Hi Guillaume & Pierre,

Guillaume Le Vaillant <glv@posteo.net> skribis:

Toggle quote (3 lines)
> However some "ecl-" packages can't be built
> right now because of a dependency that fails to build

We discussed whether to add “ecl-” packages in the first place a couple
of months ago IIRC, and I think the outcome was that it’s not worth it
most of the time. Do I remember correctly Katherine, Pierre?

So maybe you shouldn’t even bother with “ecl-” packages at all.

Thanks,
Ludo’.
P
P
Pierre Neidhardt wrote on 16 Sep 2019 19:50
87v9tsnn9b.fsf@ambrevar.xyz
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (4 lines)
> We discussed whether to add “ecl-” packages in the first place a couple
> of months ago IIRC, and I think the outcome was that it’s not worth it
> most of the time. Do I remember correctly Katherine, Pierre?

Hmmm, I don't remember this conversation :p
Do you have a link?

Those ecl- packages come for free, so it's cool to have them for users
using ECL. Admittedly, ECL is way less popular than SBCL, plus the cl-
packages can always be used as a fallback.
So no strong opinion on my end.

Either way, I guess this patch is ready to merge then. ECL packages can
always be tweaked later if need be.

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl1/y4AACgkQm9z0l6S7
zH/vpwf/WwX3cKa7H49XyVUd3xSmrV8ZWcQDPaNPPHcIeNNwcPeWXUbbxWHgUY0b
TMCvzTohijuKAJ+HFYQuPpMcJ5wV7eJHjydU318+leD8y+CcMu1CkYtHKHiULQSd
uo9WrRaZfQK7HbV3NkMA41ZC8bbg4rUWZGjDrCLLlOv9OYi1mNJ0sQ3lWLJzC9Pc
CFCmZNOqAaZVGFy9fcoXSVeP8PEwb+YfeRp905m/6Pz005EFLI5h6e5arPdTE02l
Jb0fyJiy9KT3cfIvJsqSW0VdnOFc2+Wnrj2OEAFXOaXZN9QZzERh5M41RuNJbpNJ
gm7yrzog6hKADk5UNv8Ltsduand65g==
=7vrt
-----END PGP SIGNATURE-----

K
K
Katherine Cox-Buday wrote on 17 Sep 2019 17:50
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)
87muf2hqg0.fsf@gmail.com
Pierre Neidhardt <mail@ambrevar.xyz> writes:

Toggle quote (9 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> We discussed whether to add “ecl-” packages in the first place a couple
>> of months ago IIRC, and I think the outcome was that it’s not worth it
>> most of the time. Do I remember correctly Katherine, Pierre?
>
> Hmmm, I don't remember this conversation :p
> Do you have a link?

This conversation was with me[1]. (Also apologies for not getting back
to this. It's on the ever-growing TODO list).

Toggle quote (5 lines)
> Those ecl- packages come for free, so it's cool to have them for users
> using ECL. Admittedly, ECL is way less popular than SBCL, plus the cl-
> packages can always be used as a fallback.
> So no strong opinion on my end.

The point I made in the afforementioned thread was that there is no
guarantee that packages will work across the various Lisp runtimes. I
think we should be optimistic and include ecl- packages where we can,
but I have no problem with authors bailing on them if they don't work
and it wasn't the point of their patch.

Toggle quote (3 lines)
> Either way, I guess this patch is ready to merge then. ECL packages can
> always be tweaked later if need be.

Thank you, Guilluame, for the submission, Ludovic for maintaining, and
Pierre for reviewing and weighing in :)


--
Katherine
P
P
Pierre Neidhardt wrote on 17 Sep 2019 18:09
(name . Katherine Cox-Buday)(address . cox.katherine.e@gmail.com)
87woe6kipo.fsf@ambrevar.xyz
Thanks for the heads up!

I think the patch is ready to be committed.
I'll do it tomorrow or Thursday, when I find the time.

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl2BBUMACgkQm9z0l6S7
zH+PhggAhIJSelOm8zCpO339Lac5Xx0XqgDj3w1SyxLG+z9Js59swic14tRmFKfn
x43sHMREso/+2RI3sBNHukiDdeLHymho+diEx0HBddepqTSQM1vzUlxO4xWXRmC4
cMwivndroOiGDJC8kKk9C7ZnOgzQZyebKTSkrbp9Uiln4bCvjvYqRJ5dQHLXm1tq
uJ8ax6MikACc/vlA0Hc8C7KTHSwiEDIUgdM3u+219MMP+7Z8Ant2dPmjPMwQYTvD
BHEhZ/IJ2jJMcZTi0In5Ci9+9+VmTROkFpEE0Drx3dPKsrlsSGLuqp+ynEbRo49u
oYbUXC2/hE+6U3b5AlDLkH6tKMNDmw==
=EvqQ
-----END PGP SIGNATURE-----

P
P
Pierre Neidhardt wrote on 18 Sep 2019 11:58
(name . Katherine Cox-Buday)(address . cox.katherine.e@gmail.com)
87muf2udrh.fsf@ambrevar.xyz
Merged, thanks everyone!

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl2B/9IACgkQm9z0l6S7
zH8dSQf/WDt0IPXQBdHuF/KgiPmXN9pFjKjE7lLpGQiT74lbQd7FXy+9EfXUVpRq
mfcLXq2um8zSfFOEB1AJUXYGzmKHvejGsD7/gjc3Sios27a5e0nuCP3EL7Q7dYIv
/tH5fsSKmjhzJrhHwPdh0HC8/pr+14fLCejUyPy0L+xIAeRT5dyVH7uKlXD3DslZ
0agUQKr/Y8WvxGnMjNkMcSQMqhgTKtIhp1U/BUoHAewLuUyOfVhgLXVTrIC1BhoO
u+q7qfDiYnP3mxpOTe5QR1phVdhYNyB2Fcs0N9oAVJC462U5DMEluJjyqvaR6m4Z
km8mUsAa5+Za/446mopS8rqDBWtNNA==
=ASty
-----END PGP SIGNATURE-----

P
P
Pierre Neidhardt wrote on 19 Sep 2019 10:31
control message for bug #36467
(address . control@debbugs.gnu.org)
877e64d6vc.fsf@ambrevar.xyz
close 36467
quit
--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl2DPPcACgkQm9z0l6S7
zH8+qwf9HfqtmFWc5r3p42lOYY3P799igBoHFs3EoAXCtzNsFTYb/odxfRPQ1qOK
VhK1duGuklDmQcKr+cfctyRZ9d3dDhLgJDodpFIah7vJhIb9odDJg6YVjCfyqD9H
FBsp9eACtoBstUjroyic6l2iDI+fkmdCZuwIuKAqR0iZvW1cqu97pEHO/1XxjcbM
8DukW4NID52rFNVE2A+pIPUFKdPNle/FYt44AbG8aNaJg44RbI0l5YEReJQzhGQl
k7UjXB+1qK+xbsoA8WJPN9gV47WXH4sMrfHt1xVu+iz6r/lEvAXbOJejPJXYrvgU
fEyoDlNCCoOZkgE34ljpdeQBFmch9A==
=dj2f
-----END PGP SIGNATURE-----

?