guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

12/29: gnu: Add fast-generic-functions.


From: guix-commits
Subject: 12/29: gnu: Add fast-generic-functions.
Date: Thu, 30 Jun 2022 14:02:14 -0400 (EDT)

ambrevar pushed a commit to branch master
in repository guix.

commit b754c3da53adaabe08ad95b8819b297ad560c197
Author: Pierre Neidhardt <mail@ambrevar.xyz>
AuthorDate: Thu Jun 30 17:14:15 2022 +0200

    gnu: Add fast-generic-functions.
    
    * gnu/packages/lisp-xyz.scm (cl-fast-generic-functions,
    ecl-fast-generic-functions, sbcl-fast-generic-functions): New variables.
---
 gnu/packages/lisp-xyz.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]