summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2022-06-30 17:14:15 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2022-06-30 20:01:36 +0200
commitb754c3da53adaabe08ad95b8819b297ad560c197 (patch)
treee9e4d309fb897d54e1be967709fb85cddbc09c13
parent7bf53a25e86429f9c9ce6f823b2561bbd4d2de33 (diff)
downloadguix-patches-b754c3da53adaabe08ad95b8819b297ad560c197.tar
guix-patches-b754c3da53adaabe08ad95b8819b297ad560c197.tar.gz
gnu: Add fast-generic-functions.
* gnu/packages/lisp-xyz.scm (cl-fast-generic-functions, ecl-fast-generic-functions, sbcl-fast-generic-functions): New variables.
-rw-r--r--gnu/packages/lisp-xyz.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 8784a7a0ed..b8f1df3b00 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -21887,3 +21887,41 @@ conditions.")
(define-public ecl-sealable-metaobjects
(sbcl-package->ecl-package sbcl-sealable-metaobjects))
+
+(define-public sbcl-fast-generic-functions
+ (let ((commit "9c307cd28af6453e45038ac3510de3123ff23743"))
+ (package
+ (name "sbcl-fast-generic-functions")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marcoheisig/fast-generic-functions/")
+ (commit commit)))
+ (file-name (git-file-name "cl-fast-generic-functions" version))
+ (sha256
+ (base32 "16hf9bi2p5s77p3m3aqsihcd9iicqjhhxxpsarjv93c41qs54yad"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-closer-mop
+ sbcl-sealable-metaobjects
+ sbcl-trivial-macroexpand-all))
+ (arguments
+ ;; Tests fail: https://github.com/marcoheisig/fast-generic-functions/issues/10
+ '(#:tests? #f))
+ (home-page "https://github.com/marcoheisig/fast-generic-functions/")
+ (synopsis "Seal generic functions to boost performance")
+ (description
+ "This library introduces @emph{fast generic functions}, i.e. functions
+that behave just like regular generic functions, except that the can be sealed
+on certain domains. If the compiler can then statically detect that the
+arguments to a fast generic function fall within such a domain, it will
+perform a variety of optimizations.")
+ (license license:expat))))
+
+(define-public cl-fast-generic-functions
+ (sbcl-package->cl-source-package sbcl-fast-generic-functions))
+
+(define-public ecl-fast-generic-functions
+ (sbcl-package->ecl-package sbcl-fast-generic-functions))