gnu: Add guile-srfi-125.

* gnu/packages/patches/guile-srfi-125-fix-r7rs-rename-clause.patch: New file.
* gnu/local.mk (dist_patch_DATA): New entry for patch.
* gnu/packages/guile-xyz.scm (guile-srfi-125): New variable.

Change-Id: I4cbe67f67278a2be362a6e5a54a79dacae41011e
Signed-off-by: Zheng Junjie <z572@z572.online>
This commit is contained in:
Grigory Shepelev 2025-06-22 19:23:19 +03:00 committed by Zheng Junjie
parent 75069c147b
commit f7fb7734fa
No known key found for this signature in database
GPG key ID: 3B5AA993E1A2DFF0
3 changed files with 101 additions and 0 deletions

View file

@ -2307,6 +2307,7 @@ dist_patch_DATA = \
%D%/packages/patches/softhsm-fix-openssl3-tests.patch \ %D%/packages/patches/softhsm-fix-openssl3-tests.patch \
%D%/packages/patches/spectre-meltdown-checker-externalize-fwdb.patch \ %D%/packages/patches/spectre-meltdown-checker-externalize-fwdb.patch \
%D%/packages/patches/sphinxbase-fix-doxygen.patch \ %D%/packages/patches/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/guile-srfi-125-fix-r7rs-rename-clause.patch \
%D%/packages/patches/sssd-system-directories.patch \ %D%/packages/patches/sssd-system-directories.patch \
%D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/suitesparse-mongoose-cmake.patch \ %D%/packages/patches/suitesparse-mongoose-cmake.patch \

View file

@ -4470,6 +4470,58 @@ pre-alpha code.")
parameters, which define* and lambda* special forms") parameters, which define* and lambda* special forms")
(license license:gpl3+))) (license license:gpl3+)))
(define-public guile-srfi-125
(let ((revision "0")
(commit "556827a4b88b43acc0b941ac3f7f926ffad27e42"))
(package
(name "guile-srfi-125")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/scheme-requests-for-implementation/srfi-125")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0dy839sq14h9y6fi4i27pli4xgz92zsswndad4fi0271rs2c26zy"))
(patches (search-patches "guile-srfi-125-fix-r7rs-rename-clause.patch"))
(snippet #~(begin
(rename-file "srfi/125.sld" "srfi/srfi-125.scm")
(delete-file "tables-test.sps")))))
(build-system guile-build-system)
(arguments (list #:not-compiled-file-regexp "body\\.scm$"))
(inputs (list guile-3.0))
(native-inputs (list guile-3.0 guile-srfi-126 guile-srfi-128))
(propagated-inputs (list guile-srfi-126 guile-srfi-128))
(home-page
"https://github.com/scheme-requests-for-implementation/srfi-125")
(synopsis "SRFI 125: Intermediate hash tables")
(description
"Procedures in this SRFI are drawn primarily from SRFI 69 and R6RS. In
addition, the following sources are acknowledged:
@itemize
@item @code{hash-table-mutable?} procedure and the second argument of
@code{hash-table-copy} (which allows the creation of immutable hash tables)
are from R6RS, renamed in the style of this SRFI.
@item @code{hash-table-intern!} procedure is from Racket, renamed in the style
of this SRFI.
@item @code{hash-table-find} procedure is a modified version of
@code{table-search} in Gambit.
@item procedures @code{hash-table-unfold} and @code{hash-table-count} were
suggested by SRFI 1.
@item procedures @code{hash-table=?} and @code{hash-table-map} were suggested
by Haskell's @code{Data.Map.Strict} module.
@item procedure @code{hash-table-map->list} is from Guile.
@end itemize
The procedures @code{hash-table-empty?}, @code{hash-table-empty-copy},
@code{hash-table-pop!}, @code{hash-table-map!},
@code{hash-table-intersection!}, @code{hash-table-difference!}, and
@code{hash-table-xor!} were added for convenience and completeness.")
(license license:expat))))
(define-public guile-srfi-126 (define-public guile-srfi-126
(let ((revision "0") (let ((revision "0")
(commit "f480cf2d1a33c1f3d0fab3baf321c0ed5b5eb248")) (commit "f480cf2d1a33c1f3d0fab3baf321c0ed5b5eb248"))

View file

@ -0,0 +1,48 @@
From 8f4942f0612b6cc6af56fc90146afcccfe67d85f Mon Sep 17 00:00:00 2001
From: Grigory Shepelev <shegeley@gmail.com>
Date: Sat, 25 May 2024 10:32:28 +0300
Subject: [PATCH] srfi/125.sld: conform "rename" clause to r6rs
---
srfi/125.sld | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/srfi/125.sld b/srfi/125.sld
index 08d9ac1..467c6a8 100644
--- a/srfi/125.sld
+++ b/srfi/125.sld
@@ -53,19 +53,18 @@
;; The following procedures are deprecated by SRFI 125:
- (rename deprecated:hash hash)
- (rename deprecated:string-hash string-hash)
- (rename deprecated:string-ci-hash string-ci-hash)
- (rename deprecated:hash-by-identity hash-by-identity)
-
- (rename deprecated:hash-table-equivalence-function
- hash-table-equivalence-function)
- (rename deprecated:hash-table-hash-function hash-table-hash-function)
- (rename deprecated:hash-table-exists? hash-table-exists?)
- (rename deprecated:hash-table-walk hash-table-walk)
- (rename deprecated:hash-table-merge! hash-table-merge!)
-
- )
+ (rename
+ (deprecated:hash hash)
+ (deprecated:string-hash string-hash)
+ (deprecated:string-ci-hash string-ci-hash)
+ (deprecated:hash-by-identity hash-by-identity)
+ (deprecated:string-ci-hash string-ci-hash)
+ (deprecated:hash-by-identity hash-by-identity)
+ (deprecated:hash-table-equivalence-function hash-table-equivalence-function)
+ (deprecated:hash-table-hash-function hash-table-hash-function)
+ (deprecated:hash-table-exists? hash-table-exists?)
+ (deprecated:hash-table-walk hash-table-walk)
+ (deprecated:hash-table-merge! hash-table-merge!)))
(import (scheme base)
(scheme write) ; for warnings about deprecated features
--
2.49.0