diff options
author | Yuval Langer <yuval.langer@gmail.com> | 2023-12-16 02:09:20 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-01-05 17:27:21 +0100 |
commit | 5dbfd2db62354d96eb69d30a66422f362688ebbb (patch) | |
tree | 546248ebf0fa0a65f7585f8592bbcfc768486870 /gnu/packages/guile-xyz.scm | |
parent | d5724111ea2a8f5312b47fe9aae2bc74278c127e (diff) | |
download | guix-5dbfd2db62354d96eb69d30a66422f362688ebbb.tar.gz guix-5dbfd2db62354d96eb69d30a66422f362688ebbb.zip |
gnu: Add guile-srfi-133.
* gnu/packages/guile-xyz.scm (guile-srfi-133): New variable.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I9466a7def7a90aeabf40c92bd8d78608e8011021
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index afd8900848..328c2cdf18 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3565,6 +3565,80 @@ structures. This package re-uses the SRFI sample implementation.") ;; contains ISC code from the SRFI sample implementation license:isc)))) +(define-public guile-srfi-133 + (package + (name "guile-srfi-133") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/scheme-requests-for-implementation/srfi-133") + (commit "db81a114cd3e23375f024baec15482614ec90453"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a7srl72291yah0aj6rwddhj041v2spximhknjj7hczlparsrm7f")))) + (build-system guile-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-create-and-delete-files + (lambda _ + (rename-file "vectors" "srfi") + (rename-file "srfi/vectors-test.scm" "srfi/srfi-test.scm") + (rename-file "srfi/vectors-impl.scm" "srfi/srfi-impl.scm") + (with-output-to-file "srfi/srfi-133.scm" + (lambda () + (display "(define-module (srfi srfi-133) + #:replace (;; Constructors + vector-copy + + ;; Mutators + vector-fill! vector-copy! + + ;; Conversion + vector->list list->vector) + #:export (;; Constructors + vector-unfold vector-unfold-right vector-reverse-copy + vector-append vector-concatenate vector-append-subvectors + + ;; Predicates + vector-empty? vector= + + ;; Iteration + vector-fold vector-fold-right vector-map vector-map! + vector-for-each vector-count vector-cumulate + + ;; Searching + vector-index vector-index-right vector-skip vector-skip-right + vector-binary-search vector-any vector-every vector-partition + + ;; Mutators + vector-swap! vector-reverse! + vector-reverse-copy! vector-unfold! vector-unfold-right! + + ;; Conversion + reverse-vector->list reverse-list->vector + vector->string string->vector)) + +(include \"srfi-impl.scm\")"))) + (for-each (lambda (filename) + (delete-file filename)) + '("tests/run.scm" + "srfi/vectors.sld" + "srfi/vectors.scm"))))))) + (native-inputs + (list guile-3.0)) + (home-page "https://github.com/scheme-requests-for-implementation/srfi-133") + (synopsis "R7RS-compatible vector library for Guile") + (description + "This package provides a Guile implementation of +@uref{https://srfi.schemers.org/srfi-133/srfi-133.html, SRFI-133}, a +comprehensive library of vector operations.") + (license license:expat))) + (define-public guile-srfi-145 (package (name "guile-srfi-145") |