aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2020-12-01 11:14:46 +0100
committerPierre Neidhardt <mail@ambrevar.xyz>2020-12-01 12:37:52 +0100
commitab15cf5a6d25c710183acdad94ede86135423d30 (patch)
tree97e675ebeb3eafc884d39a2732c70ad6520aa25d
parent0ce02f679dc73b5c12f01078fe15fb7d81f942f1 (diff)
downloadguix-ab15cf5a6d25c710183acdad94ede86135423d30.tar
guix-ab15cf5a6d25c710183acdad94ede86135423d30.tar.gz
gnu: Add lisp-repl-core-dumper.
* gnu/packages/lisp.scm (lisp-repl-core-dumper): New variable.
-rw-r--r--gnu/packages/lisp.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 681aaac68d..a0997f2337 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -44,6 +44,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system ant)
#: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,
assembler, PEG) is less than 1MB.")
(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 It’s 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+)))