aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2023-12-07 21:36:11 +0100
committerW. Kosior <koszko@koszko.org>2024-05-03 14:46:55 +0200
commit9fabf34a28eb7741ceb8ab2f62d58ff73ae9e834 (patch)
treefc5a437956b54d5722588a1bef235e613bcdb1bf /gnu/packages
parent138a1ee5035e8693d496dbb7e9c187c4f64f663e (diff)
downloadguix-9fabf34a28eb7741ceb8ab2f62d58ff73ae9e834.tar.gz
guix-9fabf34a28eb7741ceb8ab2f62d58ff73ae9e834.zip
gnu: Add guile-de-paul-records.
* gnu/packages/guile-xyz.scm (guile-de-paul-records): New variable. Change-Id: I869c65666f83aedec7a34809b66396798e62e2cf
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/guile-xyz.scm37
1 files changed, 37 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 3dfc7b288b..1d115a2f59 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -4686,6 +4686,43 @@ of SRFI-64's @code{test-*} forms as well as some extra facilities to aid with
writing tests.")
(license license:gpl3+)))
+(define-public guile-de-paul-records
+ (package
+ (name "guile-de-paul-records")
+ (version "0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.koszko.org/de-paul-records")
+ (commit "7c23b2d0fcee30f15dbf27cf26ef280a6dde398e")))
+ (sha256
+ (base32
+ "0c51lccpx9b1cxkknbf4bhihyg85rmgpynwj12j6w6842mjylswm"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list autoconf automake guile-3.0 pkg-config lawrence-boilerplate))
+ (inputs
+ (list guile-3.0 guile-myra-test-utils))
+ (home-page "https://git.koszko.org/de-paul-records/about")
+ (synopsis "Pure records API for GNU Guile")
+ (description "This library builds upon @code{(srfi srfi-9 gnu)}. It
+features:
+
+@itemize
+@item automatic deriving of getter names from field names;
+@item automatic generation of record constructor macros;
+@item support for default field values;
+@item support for programmer-supplied record finalizer procedures;
+@item syntax for creation of a record object based on an existing one;
+@item optional automatic export of generated getters and other variables;
+@item amended variants of @code{(ice-9 match)} forms with (unhygienic) record
+matcher that allows fields to be matched by name.
+@end itemize
+
+This library is inspired by the Guix records API but follows purely functional
+approach.")
+ (license license:cc0)))
+
(define-public guile-semver
(package
(name "guile-semver")