summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonrad Hinsen <konrad.hinsen@fastmail.net>2020-02-11 11:33:20 +0100
committerGuillaume Le Vaillant <glv@posteo.net>2020-02-12 09:38:10 +0100
commitca6c5c7fdf67100b5a0f0a0ae20ec3bce6b96043 (patch)
treecfa21bc6e3435c5f1bc694e2881ec8d4554a1a87
parent8926866ef7c2b0204a9fe7072e927186b87e8d66 (diff)
gnu: Add cl-specialized-function.
* gnu/packages/lisp-xyz.scm (sbcl-specialized-function, cl-specialized-function): New variables. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
-rw-r--r--gnu/packages/lisp-xyz.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 392544529f..c6859c333e 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -10423,3 +10423,45 @@ correctly.")
(define-public cl-trivialib-type-unify
(sbcl-package->cl-source-package sbcl-trivialib-type-unify))
+
+(define-public sbcl-specialized-function
+ (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
+ (revision "1"))
+ (package
+ (name "sbcl-specialized-function")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/numcl/specialized-function.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Julia-like dispatch for Common Lisp")
+ (description
+ "This library is part of NUMCL. It provides a macro
+@code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
+lazily compiling a type-specific version of the function from the same
+code. The main target of this macro is speed.")
+ (home-page "https://github.com/numcl/specialized-function")
+ (license license:lgpl3+)
+ (inputs
+ `(("trivia" ,sbcl-trivia)
+ ("alexandria" ,sbcl-alexandria)
+ ("iterate" ,sbcl-iterate)
+ ("lisp-namespace" ,sbcl-lisp-namespace)
+ ("type-r" ,sbcl-type-r)
+ ("trivial-cltl2" ,sbcl-trivial-cltl2)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "specialized-function"
+ #:asd-file "specialized-function.asd"
+ #:test-asd-file "specialized-function.test.asd")))))
+
+(define-public cl-specialized-function
+ (sbcl-package->cl-source-package sbcl-specialized-function))