[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-----

?
Your comment

This issue is archived.

To comment on this conversation send an email to 36467@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 36467
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch