andreas pushed a commit to branch wip-sage2
in repository guix.

commit 3a947a946ee74dbd883259c223bf4ed1225fd7cb
Author: Andreas Enge <andr...@enge.fr>
AuthorDate: Wed Feb 12 10:19:15 2025 +0100

    gnu: Add maxima-ecl.
    
    * gnu/packages/maths.scm (maxima-ecl): New variable.
    
    Change-Id: I71a14d064e67aa34fdd7f6eb8499dfbd1dea11b9
---
 gnu/packages/maths.scm | 36 +++++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 4a1637b952..4dcf986ccc 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2019, 2020, 2023, 2024 Andreas Enge 
<andr...@enge.fr>
+;;; Copyright © 2013, 2014, 2015, 2016, 2019, 2020, 2023, 2024, 2025 Andreas 
Enge <andr...@enge.fr>
 ;;; Copyright © 2013 Nikita Karetnikov <nik...@karetnikov.org>
 ;;; Copyright © 2014, 2016, 2017 John Darrington <j...@gnu.org>
 ;;; Copyright © 2014-2022 Eric Bavier <bav...@posteo.net>
@@ -5511,6 +5511,40 @@ point numbers.")
     ;; GPLv2 only is therefore the smallest subset.
     (license license:gpl2)))
 
+(define-public maxima-ecl
+  (package/inherit maxima
+    (name "maxima-ecl")
+    (inputs
+      (modify-inputs (package-inputs maxima)
+        (delete "sbcl")
+        (prepend ecl)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments maxima)
+       ((#:configure-flags flags)
+         #~(list "--enable-ecl"))
+        ((#:phases phases)
+          #~(modify-phases #$phases
+            (add-after 'install 'install-lib
+             (lambda _
+               (let ((lib (string-append
+                            #$output "/lib/maxima/"
+                            #$(package-version this-package)
+                            "/binary-ecl")))
+                    (install-file "src/binary-ecl/maxima.fas" lib))))
+            (replace 'check
+              (lambda _
+                (invoke "sh" "-c"
+                        (string-append
+                          "./maxima-local "
+                          "--lisp=ecl "
+                          "--batch-string=\"run_testsuite();\" "
+                          "| grep -q \"No unexpected errors found\""))))))))
+    (description
+      (string-append
+        (package-description maxima)
+        "  This package variant uses ECL as the underlying Lisp
+implementation."))))
+
 (define-public wxmaxima
   (package
     (name "wxmaxima")

Reply via email to