commit fbd39b2ec9c7c410e2f7e263f4832687bb697743
parent 52f63d41323926596614f65c710cf74c13e60372
Author: Yuval Langer <yuval.langer@gmail.com>
Date: Thu, 5 Sep 2024 05:41:52 +0300
Add guile-srfi-253 package definition.
Diffstat:
1 file changed, 39 insertions(+), 0 deletions(-)
diff --git a/kakafarm/packages/guile-xyz.scm b/kakafarm/packages/guile-xyz.scm
@@ -350,6 +350,45 @@ arguments.")
"This SRFI contains various procedures that accept and return procedures, as well as a few others, drawn from an earlier version of Chicken. Common Lisp has a few of them too, and more come from the Standard Prelude from Programming Praxis. Using these procedures helps to keep code terse and reduce the need for ad hoc lambdas.")
(license license:expat))))
+(define-public guile-srfi-253
+ (let ((version "0.0.1")
+ (revision "1")
+ (commit "f72830bb9b8fd20b05145a7a0b78765ff9a571b0")
+ (git-repository-url
+ "https://github.com/scheme-requests-for-implementation/srfi-253"))
+ (package
+ (name "guile-srfi-253")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://github.com/scheme-requests-for-implementation/srfi-253")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ni137rar3w8wr329br82z2h2nq3qnmxfg8vkw5lzkg0vapa8z3w"))))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'move-create-and-delete-files
+ (lambda _
+ (substitute* "srfi/253.sld"
+ (("srfi 253")
+ "srfi srfi-253"))
+ (rename-file "srfi/253.sld" "srfi/srfi-253.scm")
+ (for-each (lambda (filename)
+ (delete-file filename))
+ '("existing-practice.scm" "test.scm")))))))
+ (native-inputs (list gnu:packages:guile:guile-3.0))
+ (home-page git-repository-url)
+ (synopsis "Data (Type-)Checking.")
+ (description
+ "Data validation and type checking (supposedly) make for more correct code. And faster code too, sometimes. And, in rare cases, code that's easier to follow than the un-checked one. Unfortunately, Scheme does not have many (type-)checking primitives out of the box. This SRFI provides some, with the aim of allowing more performant and correct code with minimum effort on the user side. Both (manual) argument checking/validation (check-arg) and return value(s) (values-checked) checking/coercion are provided. Syntax sugar like lambda-checked and define-checked is added on top.")
+ (license license:expat))))
+
(define-public guile-websocket-next
(let ((version "0.2")
(revision "1")