diff options
author | Pierre Neidhardt <mail@ambrevar.xyz> | 2022-06-30 17:14:15 +0200 |
---|---|---|
committer | Pierre Neidhardt <mail@ambrevar.xyz> | 2022-06-30 20:01:36 +0200 |
commit | b754c3da53adaabe08ad95b8819b297ad560c197 (patch) | |
tree | e9e4d309fb897d54e1be967709fb85cddbc09c13 | |
parent | 7bf53a25e86429f9c9ce6f823b2561bbd4d2de33 (diff) | |
download | guix-b754c3da53adaabe08ad95b8819b297ad560c197.tar guix-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.scm | 38 |
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)) |