gnu: Add global-vars.

* gnu/packages/lisp.scm (cl-global-vars, ecl-global-vars, sbcl-global-vars):
  New variables.
This commit is contained in:
Pierre Neidhardt 2019-10-07 13:48:52 +02:00
parent 3658db3fd7
commit 003a714e7e
No known key found for this signature in database
GPG key ID: 9BDCF497A4BBCC7F

View file

@ -7557,3 +7557,40 @@ (define-public cl-string-case
(define-public ecl-string-case
(sbcl-package->ecl-package sbcl-string-case))
(define-public sbcl-global-vars
(let ((commit "c749f32c9b606a1457daa47d59630708ac0c266e")
(revision "0"))
(package
(name "sbcl-global-vars")
(version (git-version "1.0.0" revision commit))
(home-page "https://github.com/lmj/global-vars")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"06m3xc8l3pgsapl8fvsi9wf6y46zs75cp9zn7zh6dc65v4s5wz3d"))))
(build-system asdf-build-system/sbcl)
(synopsis "Efficient global variables in Common Lisp")
(description
"In Common Lisp, a special variable that is never dynamically bound
typically serves as a stand-in for a global variable. The @code{global-vars}
library provides true global variables that are implemented by some compilers.
An attempt to rebind a global variable properly results in a compiler error.
That is, a global variable cannot be dynamically bound.
Global variables therefore allow us to communicate an intended usage that
differs from special variables. Global variables are also more efficient than
special variables, especially in the presence of threads.")
(license license:expat))))
(define-public cl-global-vars
(sbcl-package->cl-source-package sbcl-global-vars))
(define-public ecl-global-vars
(sbcl-package->ecl-package sbcl-global-vars))