diff options
author | Ashish SHUKLA <ashish.is@lostca.se> | 2024-08-14 12:46:18 +0000 |
---|---|---|
committer | Guillaume Le Vaillant <glv@posteo.net> | 2024-08-15 14:23:39 +0200 |
commit | 1e2aca13eedc71b869e43525549080ba153e2887 (patch) | |
tree | 065e1ce424489d97dd9287896118354ac0b3addb /gnu/packages/lisp.scm | |
parent | c9dd09855e69af3e166ddfdafb3a1f57a26901e0 (diff) | |
download | guix-1e2aca13eedc71b869e43525549080ba153e2887.tar guix-1e2aca13eedc71b869e43525549080ba153e2887.tar.gz |
gnu: Add clasp-cl.
* gnu/packages/lisp.scm (clasp-cl): New variable.
Change-Id: I1d1dbc358c0e05577d3d535600c2f9863ad29fad
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
Diffstat (limited to 'gnu/packages/lisp.scm')
-rw-r--r-- | gnu/packages/lisp.scm | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index b446dd8b56..543ceb9953 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2023 Andrew Kravchuk <awkravchuk@gmail.com> ;;; Copyright © 2024 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2024 bigbug <bigbookofbug@proton.me> +;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +68,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) @@ -85,15 +87,19 @@ #:use-module (gnu packages libffcall) #:use-module (gnu packages libffi) #:use-module (gnu packages libsigsegv) + #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages m4) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages ninja) #:use-module (gnu packages notcurses) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages readline) #:use-module (gnu packages sdl) #:use-module (gnu packages tcl) @@ -367,6 +373,81 @@ generational, compacting garbage collector, and a convenient foreign-function interface.") (license license:asl2.0))) +(define-public clasp-cl + (package + (name "clasp-cl") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/clasp-developers/clasp/releases/download/" + version "/clasp-" version ".tar.gz")) + (sha256 + (base32 "10jjhcid6qp64gx29iyy5rqqijwy8hrvx66f0xabdj8w3007ky39")))) + (build-system gnu-build-system) + (inputs + (list boost clang-15 fmt `(,gcc "lib") gmp libelf libunwind llvm-15)) + (native-inputs + (list binutils-gold ninja pkg-config sbcl)) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'check) + (add-after 'unpack 'patch-koga + (lambda* _ + (call-with-port (open-file "src/koga/units.lisp" "a") + (lambda (p) + (display "(defmethod configure-unit (c (u (eql :git))))\n" p))))) + (add-before 'configure 'set-configure-environment + (lambda* _ + (setenv "SOURCE_DATE_EPOCH" "1") + (setenv "ASDF_OUTPUT_TRANSLATIONS" + (string-append (getenv "PWD") + ":" + (getenv "PWD") + "/__fasls")))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (clang (assoc-ref inputs "clang")) + (ld-flags + (string-join + (apply append + (map (lambda (f) + (list "-L" f "-rpath" f)) + (string-split (getenv "LIBRARY_PATH") #\:))) + ","))) + (invoke "sbcl" + "--script" + "./koga" + "--skip-sync" + "--build-mode=bytecode-faso" + (string-append "--cc=" clang "/bin/clang") + (string-append "--cxx=" clang "/bin/clang++") + (string-append "--ldflags=-Wl," ld-flags) + "--reproducible-build" + "--package-path=/" + (string-append "--bin-path=" out "/bin") + (string-append "--lib-path=" out "/lib") + (string-append "--share-path=" out "/share"))))) + (replace 'build + (lambda* _ + (invoke "ninja" "-C" "build"))) + (replace 'install + (lambda* _ + (invoke "ninja" "-C" "build" "install")))))) + (home-page "https://clasp-developers.github.io/") + (synopsis "Common Lisp implementation based on LLVM and C++") + (description "Clasp is a new Common Lisp implementation that seamlessly + interoperates with C++ libraries and programs using LLVM for compilation to + native code. This allows Clasp to take advantage of a vast array of + preexisting libraries and programs, such as out of the scientific computing + ecosystem. Embedding them in a Common Lisp environment allows you to make use + of rapid prototyping, incremental development, and other capabilities that + make it a powerful language.") + (license license:lgpl2.1+))) + (define-public cl-asdf (package (name "cl-asdf") |