diff options
| -rw-r--r-- | .guix/run64-package.scm | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/.guix/run64-package.scm b/.guix/run64-package.scm index fd03f6d..be9332c 100644 --- a/.guix/run64-package.scm +++ b/.guix/run64-package.scm @@ -19,13 +19,56 @@ (define-module (run64-package) #:use-module ((gnu packages base) #:select (gnu-make)) #:use-module ((gnu packages emacs) #:select (emacs-minimal)) + #:use-module ((gnu packages guile) #:select (guile-3.0)) + #:use-module ((gnu packages scheme) #:select (chibi-scheme)) #:use-module (guix build-system gnu) + #:use-module (guix build-system guile) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils)) +(define-public guile-chibi-match + (package + (name "guile-chibi-match") + (version (package-version chibi-scheme)) + (source (package-source chibi-scheme)) + (build-system guile-build-system) + (arguments + (list #:modules '((guix build guile-build-system) + (guix build utils) + (ice-9 ftw)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'rearrange-files + (lambda _ + ;; Delete and rearrange files so that (chibi match) + ;; is in the expected directory hierarchy. + (chdir "lib/chibi") + (rename-file "match" "chibi") + (for-each (lambda (file) + (unless (member file (list "." ".." "chibi")) + (delete-file-recursively file))) + (scandir ".")) + (substitute* "chibi/match.scm" + ((";; 2006/12/01[^\n]*" line) + (string-append line + "\n(define-module (chibi match) +#:export (match match-lambda match-lambda* match-let match-letrec match-let*))")))))))) + (inputs + (list guile-3.0)) + (home-page "https://synthcode.com/scheme/chibi/lib/chibi/match.html") + (synopsis "Portable hygienic pattern matcher") + (description "@code{guile-chibi-match} is a portable hygienic +pattern matcher for Scheme. This is a full superset of the popular +match package by Andrew Wright, written in fully portable syntax-rules +and thus preserving hygiene. The most notable extensions are the +ability to use non-linear patterns---patterns in which the same +identifier occurs multiple times, tail patterns after ellipsis, and +the experimental tree patterns.") + (license (package-license chibi-scheme)))) + (define-public run64 (package (name "run64") |
