diff mbox series

[bug#37817,1/7] gnu: Add cl-heap.

Message ID 20191018204206.15154-1-glv@posteo.net
State Accepted
Headers show
Series Add graph Common Lisp library and dependencies. | expand

Commit Message

Guillaume Le Vaillant Oct. 18, 2019, 8:42 p.m. UTC
* gnu/packages/lisp.scm (cl-heap, sbcl-cl-heap, ecl-cl-heap): New variables.
---
 gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

Comments

Pierre Neidhardt Oct. 21, 2019, 9:16 a.m. UTC | #1
Thanks for this patch.

Everything is looking good, except the last patch where you should add an
extra commit for the 'dot' package.

Regarding the .asd patch: the lack of inferred package support is a
general issue with our current build system.  Ideally, we could support
it directly.  See this discussion for more details:

https://gitlab.common-lisp.net/asdf/asdf/issues/10

Would you be interested in working on it?  It might not be too hard :p
Guillaume Le Vaillant Oct. 21, 2019, 10:05 a.m. UTC | #2
Pierre Neidhardt skribis:

> Thanks for this patch.
>
> Everything is looking good, except the last patch where you should add an
> extra commit for the 'dot' package.
>
> Regarding the .asd patch: the lack of inferred package support is a
> general issue with our current build system.  Ideally, we could support
> it directly.  See this discussion for more details:
>
> https://gitlab.common-lisp.net/asdf/asdf/issues/10
>
> Would you be interested in working on it?  It might not be too hard :p

Ok, I'll put 'sbcl-graph-dot' and 'sbcl-graph-json' in their own
commits.

Also, I saw that there is a 'graph.scm' file with definitions of graph
related packages. Should I put 'sbcl-graph', 'sbcl-graph-dot' and
'sbcl-graph-json' in it, or should I keep them in 'lisp.scm'?
Pierre Neidhardt Oct. 21, 2019, 10:16 a.m. UTC | #3
Guillaume Le Vaillant <glv@posteo.net> writes:

> Also, I saw that there is a 'graph.scm' file with definitions of graph
> related packages. Should I put 'sbcl-graph', 'sbcl-graph-dot' and
> 'sbcl-graph-json' in it, or should I keep them in 'lisp.scm'?

In my understanding, file separation works as follows:

1. Make sure the file compilation graph is as simple as possible.

2. If 1. does not apply (e.g. same complexity is both cases), place the
package where it's most relevant.

3. If neither 1 nor 2 apply, that is, if a package is relevant in both
files, well, do what suits you best :)

Here my intuition would be to leave them in lisp.scm.

Cheers!
Pierre Neidhardt Oct. 22, 2019, 8:50 a.m. UTC | #4
Merged, thanks!
diff mbox series

Patch

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index bb2a589578..e407093348 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7833,3 +7833,33 @@  Clojure, as well as several expansions on the idea.")
 
 (define-public ecl-arrows
   (sbcl-package->ecl-package sbcl-arrows))
+
+(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))