diff options
author | Wojtek Kosior <koszko@koszko.org> | 2023-12-07 21:36:11 +0100 |
---|---|---|
committer | W. Kosior <koszko@koszko.org> | 2024-05-03 14:46:55 +0200 |
commit | 9fabf34a28eb7741ceb8ab2f62d58ff73ae9e834 (patch) | |
tree | fc5a437956b54d5722588a1bef235e613bcdb1bf /gnu/packages/guile-xyz.scm | |
parent | 138a1ee5035e8693d496dbb7e9c187c4f64f663e (diff) | |
download | guix-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/guile-xyz.scm')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 37 |
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") |