gnu: Add lisp-repl-core-dumper.

* gnu/packages/lisp.scm (lisp-repl-core-dumper): New variable.
This commit is contained in:
Pierre Neidhardt 2020-12-01 11:14:46 +01:00
parent 0ce02f679d
commit ab15cf5a6d
No known key found for this signature in database
GPG key ID: 9BDCF497A4BBCC7F

View file

@ -44,6 +44,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system ant) #:use-module (guix build-system ant)
#:use-module (guix build-system asdf) #:use-module (guix build-system asdf)
@ -1048,3 +1049,50 @@ embedding a single C file and two headers. It can be easily ported to new
platforms. The entire language (core library, interpreter, compiler, platforms. The entire language (core library, interpreter, compiler,
assembler, PEG) is less than 1MB.") assembler, PEG) is less than 1MB.")
(license license:expat))) (license license:expat)))
(define-public lisp-repl-core-dumper
(package
(name "lisp-repl-core-dumper")
(version "0.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/ambrevar/lisp-repl-core-dumper.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1n6hlmppn3k8hmwmr21mnapzpvgdcagg17b8a3zz2aa128611s5s"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("lisp-repl-core-dumper" "bin/"))
#:phases
(modify-phases %standard-phases
(add-before 'install 'fix-utils-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((coreutils (string-append (assoc-ref inputs "coreutils") "/bin/"))
(paste (string-append coreutils "paste"))
(sort (string-append coreutils "sort"))
(basename (string-append coreutils "basename"))
(sed (string-append (assoc-ref inputs "sed") "/bin/sed")))
(substitute* "lisp-repl-core-dumper"
(("\\$\\(basename") (string-append "$(" basename))
(("\\<paste\\>") paste)
(("\\<sed\\>") sed)
(("\\<sort\\>") sort))))))))
(inputs
`(("coreutils" ,coreutils-minimal)
("sed" ,sed)))
(home-page "https://gitlab.com/ambrevar/lisp-repl-core-dumper")
(synopsis "Generate REPL-optimized Lisp cores on demand")
(description
"This tool generates Lisp images that can embed the provided systems
and make for REPLs that start blazing fast.
@itemize
@item Its portable and should work with any compiler.
@item It works for any REPL.
@item It allows you to include arbitrary libraries.
@end itemize\n")
(license license:gpl3+)))