From a82d98e032b008cee3c2096556be4546c0ec5b1e Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sun, 16 Nov 2025 22:45:22 +0000 Subject: Use run64 for tests. --- .guix/ravanan-package.scm | 89 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) (limited to '.guix/ravanan-package.scm') diff --git a/.guix/ravanan-package.scm b/.guix/ravanan-package.scm index b9c6aeb..35914f7 100644 --- a/.guix/ravanan-package.scm +++ b/.guix/ravanan-package.scm @@ -18,11 +18,95 @@ (define-module (ravanan-package) #:use-module ((gnu packages bioinformatics) #:select (ravanan) #:prefix guix:) + #: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") + (version "0.1.0") + (source (local-file "/home/arun/Projects/run64" + "run64-checkout" + #:recursive? #t + #:select? (git-predicate "/home/arun/Projects/run64"))) + (build-system gnu-build-system) + (arguments + (list #:make-flags #~(list (string-append "prefix=" #$output)) + #:modules `(((guix build guile-build-system) + #:select (target-guile-effective-version)) + ,@%default-gnu-imported-modules) + #:phases + (with-imported-modules `((guix build guile-build-system) + ,@%default-gnu-imported-modules) + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (effective-version (target-guile-effective-version))) + (wrap-program (string-append out "/bin/guile-run64") + `("GUILE_LOAD_PATH" prefix + (,(string-append out "/share/guile/site/" effective-version) + ,(getenv "GUILE_LOAD_PATH"))) + `("GUILE_LOAD_COMPILED_PATH" prefix + (,(string-append out "/lib/guile/" + effective-version "/site-ccache") + ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))))))) + (inputs + (list guile-3.0 + guile-chibi-match)) + (home-page "https://run64.systemreboot.net") + (synopsis "SRFI-64 test runner for Scheme") + (description "run64 is a SRFI-64 test runner for Scheme.") + (license license:gpl3+))) + (define-public ravanan (package (inherit guix:ravanan) @@ -40,6 +124,9 @@ (not (string-contains file "/e2e-tests/")) ((or (git-predicate (dirname (current-source-directory))) (const #t)) - file stat))))))) + file stat))))) + (native-inputs + (modify-inputs (package-native-inputs guix:ravanan) + (prepend run64))))) ravanan -- cgit 1.4.1