From f2d6d9b829ec48cdb9327db269019c6a9819fca1 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sat, 19 Oct 2019 09:25:53 +0200 Subject: gnu: Add simple-parallel-tasks. * gnu/packages/lisp.scm (cl-simple-parallel-tasks, sbcl-simple-parallel-tasks, ecl-simple-parallel-tasks): New variables. --- gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index bb2a589578..dcc396dd25 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7833,3 +7833,36 @@ Clojure, as well as several expansions on the idea.") (define-public ecl-arrows (sbcl-package->ecl-package sbcl-arrows)) + +(define-public sbcl-simple-parallel-tasks + (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda") + (revision "0")) + (package + (name "sbcl-simple-parallel-tasks") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/glv2/simple-parallel-tasks.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (inputs + `(("chanl" ,sbcl-chanl))) + (synopsis "Common Lisp library to evaluate some forms in parallel") + (description "This is a simple Common Lisp library to evaluate some +forms in parallel.") + (home-page "https://github.com/glv2/simple-parallel-tasks") + (license license:gpl3)))) + +(define-public cl-simple-parallel-tasks + (sbcl-package->cl-source-package sbcl-simple-parallel-tasks)) + +(define-public ecl-simple-parallel-tasks + (sbcl-package->ecl-package sbcl-simple-parallel-tasks)) -- cgit v1.2.3 From 487392ce3da2ade80e293aa76600db0ed247945f Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:02:55 +0200 Subject: gnu: Add cl-heap. * gnu/packages/lisp.scm (cl-heap, sbcl-cl-heap, ecl-cl-heap): New variables. --- gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index dcc396dd25..7f62aed6b0 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7866,3 +7866,33 @@ forms in parallel.") (define-public ecl-simple-parallel-tasks (sbcl-package->ecl-package sbcl-simple-parallel-tasks)) + +(define-public sbcl-cl-heap + (package + (name "sbcl-cl-heap") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://common-lisp.net/project/cl-heap/releases/" + "cl-heap_" version ".tar.gz")) + (sha256 + (base32 + "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("xlunit" ,sbcl-xlunit))) + (arguments + `(#:test-asd-file "cl-heap-tests.asd")) + (synopsis "Heap and priority queue data structures for Common Lisp") + (description + "CL-HEAP provides various implementations of heap data structures (a +binary heap and a Fibonacci heap) as well as an efficient priority queue.") + (home-page "https://common-lisp.net/project/cl-heap/") + (license license:gpl3+))) + +(define-public cl-heap + (sbcl-package->cl-source-package sbcl-cl-heap)) + +(define-public ecl-cl-heap + (sbcl-package->ecl-package sbcl-cl-heap)) -- cgit v1.2.3 From bb20a990cd06b8f6c2b2d97528bfb348f54a7ee7 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:02:56 +0200 Subject: gnu: Add curry-compose-reader-macros. * gnu/packages/lisp.scm (cl-curry-compose-reader-macros, sbcl-curry-compose-reader-macros, ecl-curry-compose-reader-macros): New variables. --- gnu/packages/lisp.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 7f62aed6b0..5e4f9484ee 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7896,3 +7896,37 @@ binary heap and a Fibonacci heap) as well as an efficient priority queue.") (define-public ecl-cl-heap (sbcl-package->ecl-package sbcl-cl-heap)) + +(define-public sbcl-curry-compose-reader-macros + (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2") + (revision "0")) + (package + (name "sbcl-curry-compose-reader-macros") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/eschulte/curry-compose-reader-macros.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("named-readtables" ,sbcl-named-readtables))) + (synopsis "Reader macros for partial application and composition") + (description + "This Common Lisp library provides reader macros for concise expression +of function partial application and composition.") + (home-page "https://eschulte.github.io/curry-compose-reader-macros/") + (license license:public-domain)))) + +(define-public cl-curry-compose-reader-macros + (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros)) + +(define-public ecl-curry-compose-reader-macros + (sbcl-package->ecl-package sbcl-curry-compose-reader-macros)) -- cgit v1.2.3 From 9d9a82d94dfd3fdffc23149e33886ed021cac7af Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:02:57 +0200 Subject: gnu: Add yason. * gnu/packages/lisp.scm (cl-yason, sbcl-yason, ecl-yason): New variables. --- gnu/packages/lisp.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 5e4f9484ee..be0b876df8 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7930,3 +7930,34 @@ of function partial application and composition.") (define-public ecl-curry-compose-reader-macros (sbcl-package->ecl-package sbcl-curry-compose-reader-macros)) + +(define-public sbcl-yason + (package + (name "sbcl-yason") + (version "0.7.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phmarek/yason.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (synopsis "Common Lisp JSON parser/encoder") + (description + "YASON is a Common Lisp library for encoding and decoding data in the +JSON interchange format.") + (home-page "https://github.com/phmarek/yason") + (license license:bsd-3))) + +(define-public cl-yason + (sbcl-package->cl-source-package sbcl-yason)) + +(define-public ecl-yason + (sbcl-package->ecl-package sbcl-yason)) -- cgit v1.2.3 From 5bb3272e181a6b8d02132006df5ffc75ffcdd707 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:02:58 +0200 Subject: gnu: sbcl-iterate: Add missing native input. * gnu/packages/lisp.scm (sbcl-iterate)[native-inputs]: Add rt. --- gnu/packages/lisp.scm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index be0b876df8..a559dcc37b 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1508,6 +1508,8 @@ else @code{parse-number} signals an error of type @code{invalid-number}.") (base32 "0kvz16gnxnkdz0fy1x8y5yr28nfm7i2qpvix7mgwccdpjmsb4pgm")))) (build-system asdf-build-system/sbcl) + (native-inputs + `(("rt" ,sbcl-rt))) (home-page "https://common-lisp.net/project/iterate/") (synopsis "Iteration construct for Common Lisp") (description "@code{iterate} is an iteration construct for Common Lisp. -- cgit v1.2.3 From 93b27394343bdd1ccfbc1c0492bb772613f01fba Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:02:59 +0200 Subject: gnu: Add ecl-iterate. * gnu/packages/lisp.scm (ecl-iterate): New variable. --- gnu/packages/lisp.scm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index a559dcc37b..8f46ee9891 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1526,6 +1526,9 @@ It is similar to the @code{CL:LOOP} macro, with these distinguishing marks: (define-public cl-iterate (sbcl-package->cl-source-package sbcl-iterate)) +(define-public ecl-iterate + (sbcl-package->ecl-package sbcl-iterate)) + (define-public sbcl-cl-uglify-js ;; There have been many bug fixes since the 2010 release. (let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5") -- cgit v1.2.3 From 54d761d3a4ed29381364aef26bedf2fbd4ba5fbd Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:03:00 +0200 Subject: gnu: Add stefil. * gnu/packages/lisp.scm (cl-stefil, sbcl-stefil): New variables. --- gnu/packages/lisp.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 8f46ee9891..4abc0f7790 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7966,3 +7966,46 @@ JSON interchange format.") (define-public ecl-yason (sbcl-package->ecl-package sbcl-yason)) + +(define-public sbcl-stefil + (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a") + (revision "0")) + (package + (name "sbcl-stefil") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/stefil/stefil.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("iterate" ,sbcl-iterate) + ("metabang-bind" ,sbcl-metabang-bind))) + (propagated-inputs + ;; Swank doesn't have a pre-compiled package, therefore we must + ;; propagate its sources. + `(("swank" ,cl-slime-swank))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'drop-unnecessary-dependency + (lambda _ + (substitute* "package.lisp" + ((":stefil-system") "")) + #t))))) + (home-page "https://common-lisp.net/project/stefil/index-old.shtml") + (synopsis "Simple test framework") + (description + "Stefil is a simple test framework for Common Lisp, with a focus on +interactive development.") + (license license:public-domain)))) + +(define-public cl-stefil + (sbcl-package->cl-source-package sbcl-stefil)) -- cgit v1.2.3 From 9574d42008143909b269836a0eadbdbac67a6293 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:03:01 +0200 Subject: gnu: Add graph. * gnu/packages/lisp.scm (cl-graph, sbcl-graph): New variables. * gnu/packages/patches/sbcl-graph-asdf-definitions.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/lisp.scm | 40 +++++++++++++ .../patches/sbcl-graph-asdf-definitions.patch | 70 ++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 gnu/packages/patches/sbcl-graph-asdf-definitions.patch (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 4292e6f415..2568d75c1a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1319,6 +1319,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-coresimd-doctest.patch \ %D%/packages/patches/rust-reproducible-builds.patch \ %D%/packages/patches/rxvt-unicode-escape-sequences.patch \ + %D%/packages/patches/sbcl-graph-asdf-definitions.patch \ %D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scotch-build-parallelism.patch \ diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 4abc0f7790..38fc35744e 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -8009,3 +8009,43 @@ interactive development.") (define-public cl-stefil (sbcl-package->cl-source-package sbcl-stefil)) + +(define-public sbcl-graph + (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f") + (revision "0")) + (package + (name "sbcl-graph") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/eschulte/graph.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g")) + (patches (search-patches "sbcl-graph-asdf-definitions.patch")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("stefil" ,sbcl-stefil))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-heap" ,sbcl-cl-heap) + ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros) + ("metabang-bind" ,sbcl-metabang-bind) + ("named-readtables" ,sbcl-named-readtables))) + (arguments + '(#:test-asd-file "graph.test.asd")) + (synopsis "Graph data structure and algorithms for Common Lisp") + (description + "The GRAPH Common Lisp library provides a data structures to represent +graphs, as well as some graph manipulation and analysis algorithms (shortest +path, maximum flow, minimum spanning tree, etc.).") + (home-page "https://eschulte.github.io/graph/") + (license license:gpl3+)))) + +(define-public cl-graph + (sbcl-package->cl-source-package sbcl-graph)) diff --git a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch new file mode 100644 index 0000000000..a528ccfcc6 --- /dev/null +++ b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch @@ -0,0 +1,70 @@ +commit 52ebece1243ae6900e414b6248b5145a28348eef +Author: Guillaume Le Vaillant +Date: Fri Oct 18 15:41:23 2019 +0200 + + Use basic ASDF system definitions instead of package-inferred-system + +diff --git a/graph.asd b/graph.asd +index 193b6e3..56afc8f 100644 +--- a/graph.asd ++++ b/graph.asd +@@ -3,12 +3,10 @@ + :version "0.0.0" + :author ("Eric Schulte " "Thomas Dye") + :licence "GPL V3" +- :class :package-inferred-system +- :defsystem-depends-on (:asdf-package-system) ++ :in-order-to ((test-op (test-op graph-test))) + :depends-on (alexandria + metabang-bind + named-readtables + curry-compose-reader-macros +- graph/graph)) +- +-(register-system-packages "femlisp-matlisp" '(:fl.matlisp)) ++ cl-heap) ++ :components ((:file "graph"))) +diff --git a/graph.dot.asd b/graph.dot.asd +new file mode 100644 +index 0000000..12aec7e +--- /dev/null ++++ b/graph.dot.asd +@@ -0,0 +1,8 @@ ++(defsystem :graph-dot ++ :depends-on (alexandria ++ metabang-bind ++ named-readtables ++ curry-compose-reader-macros ++ cl-ppcre ++ graph) ++ :components ((:file "dot"))) +diff --git a/graph.json.asd b/graph.json.asd +new file mode 100644 +index 0000000..e7d091f +--- /dev/null ++++ b/graph.json.asd +@@ -0,0 +1,8 @@ ++(defsystem :graph-json ++ :depends-on (alexandria ++ metabang-bind ++ named-readtables ++ curry-compose-reader-macros ++ yason ++ graph) ++ :components ((:file "json"))) +diff --git a/graph.test.asd b/graph.test.asd +new file mode 100644 +index 0000000..1e811e1 +--- /dev/null ++++ b/graph.test.asd +@@ -0,0 +1,10 @@ ++(defsystem :graph-test ++ :depends-on (alexandria ++ metabang-bind ++ named-readtables ++ curry-compose-reader-macros ++ graph ++ stefil) ++ :perform (test-op (o s) ++ (uiop:symbol-call :graph/test 'test)) ++ :components ((:file "test"))) -- cgit v1.2.3 From a4daf996503281cd0addb020ec0f17207eb48313 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:03:02 +0200 Subject: gnu: Add sbcl-graph-dot. * gnu/packages/lisp.scm (sbcl-graph-dot): New variable. --- gnu/packages/lisp.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 38fc35744e..6083008870 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -8049,3 +8049,20 @@ path, maximum flow, minimum spanning tree, etc.).") (define-public cl-graph (sbcl-package->cl-source-package sbcl-graph)) + +(define-public sbcl-graph-dot + (package + (inherit sbcl-graph) + (name "sbcl-graph-dot") + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros) + ("graph" ,sbcl-graph) + ("metabang-bind" ,sbcl-metabang-bind) + ("named-readtables" ,sbcl-named-readtables))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-graph) + ((#:asd-file _ "") "graph.dot.asd") + ((#:asd-system-name _ #f) "graph-dot"))) + (synopsis "Serialize graphs to and from DOT format"))) -- cgit v1.2.3 From b090bdc9f592b85e394e88b3d2c3c0e9ecbd75ac Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 21 Oct 2019 14:03:03 +0200 Subject: gnu: Add sbcl-graph-json. * gnu/packages/lisp.scm (sbcl-graph-json): New variable. --- gnu/packages/lisp.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gnu/packages/lisp.scm') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 6083008870..4a7527344f 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -8066,3 +8066,20 @@ path, maximum flow, minimum spanning tree, etc.).") ((#:asd-file _ "") "graph.dot.asd") ((#:asd-system-name _ #f) "graph-dot"))) (synopsis "Serialize graphs to and from DOT format"))) + +(define-public sbcl-graph-json + (package + (inherit sbcl-graph) + (name "sbcl-graph-json") + (inputs + `(("alexandria" ,sbcl-alexandria) + ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros) + ("graph" ,sbcl-graph) + ("metabang-bind" ,sbcl-metabang-bind) + ("named-readtables" ,sbcl-named-readtables) + ("yason" ,sbcl-yason))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-graph) + ((#:asd-file _ "") "graph.json.asd") + ((#:asd-system-name _ #f) "graph-json"))) + (synopsis "Serialize graphs to and from JSON format"))) -- cgit v1.2.3