Greetings, and thanks as always for your very helpful reports!
I cannot reproduce (yet) as of maxima commit 88b7d1407 with the
following hopefully unessential changes:
=============================================================================
modified lisp-utils/defsystem.lisp
@@ -998,8 +998,10 @@
#+(or clisp cormanlisp ecl (and gcl defpackage) sbcl ccl)
(defpackage "MAKE" (:use "COMMON-LISP") (:nicknames "MK"))
-#-(or :sbcl :cltl2 :lispworks :ecl :scl :abcl :ccl)
+#-(or :gcl :sbcl :cltl2 :lispworks :ecl :scl :abcl :ccl)
(in-package :make :nicknames '("MK"))
+#+gcl
+(in-package :make)
;;; For CLtL2 compatible lisps...
#+(and :excl :allegro-v4.0 :cltl2)
modified src/generate-sys-proclaim.lisp
@@ -1,4 +1,4 @@
(load "../lisp-utils/defsystem.lisp")
(compiler::emit-fn t)
-(mk::oos "maxima" :compile :verbose t)
+(let ((mk::*files-missing-is-an-error* nil)) (mk::oos "maxima" :compile
:verbose t))
(compiler::make-all-proclaims "*/*.fn" "*/*/*/*.fn")
modified src/numerical/f2cl-lib.lisp
@@ -31,10 +31,10 @@ is not included")
;; If you change this, you may need to change some of the macros
;; below, such as INT and AINT!
-#+(or cmu scl sbcl ecl)
+#+(or cmu scl sbcl ecl gcl)
(deftype integer4 (&optional (low #x-80000000) (high #x7fffffff))
`(integer ,low ,high))
-#-(or cmu scl sbcl ecl)
+#-(or cmu scl sbcl ecl gcl)
(deftype integer4 (&optional low high)
(declare (ignore low high))
'fixnum)
@@ -1358,6 +1358,7 @@ causing all pending operations to be flushed"
#+ecl (scale-float (float #X10000000000001 1d0) -105)
1))
(5 (log (float (float-radix 1d0) 1d0) 10d0))))
+#+gcl(declaim (inline d1mach))
(defun r1mach (i)
(ecase i
@@ -1366,6 +1367,7 @@ causing all pending operations to be flushed"
(3 single-float-epsilon)
(4 (scale-float single-float-epsilon 1))
(5 (log (float (float-radix 1f0)) 10f0))))
+#+gcl(declaim (inline r1mach))
;;
;; This is the CMLIB version of I1MACH, the integer machine
@@ -1474,6 +1476,8 @@ causing all pending operations to be flushed"
(declare (ignore frac sign))
(- exp 1)))
))
+#+gcl(declaim (inline i1mach))
+
;; F2cl cannot tell if a STOP statement is an error condition or just
;; the end of the program. So, by default, we signal a continuable
=============================================================================
With this after a ./configure --with-gcl=gcl27 && make, I get a working
./maxima-local giving me one issue on run_testsuite():
closeto(jacobi_am(1.5, 1.5 + %i) - (0.9340542168700783
- 0.3723960452146072 %i), 5.4673E-16)
Result:
1.0990647210786426E-15
This differed from the expected result:
true
Will investigate this further, but FYI in case it helps.
Take care,
Raymond Toy <[email protected]> writes:
> On 4/7/25 2:12 PM, Raymond Toy wrote:
>
> On 4/6/25 7:11 PM, Camm Maguire wrote:
>
> Greetings, and thanks for your report! Should be fixed now -- please let
> me know if not.
>
> Yep, it’s fixed now. Took me a bit of time to rebuild successfully. I always
> have trouble building gcl unless I have a completely fresh checkout.
>
> But it’s all working now. Thanks!
>
> One final note, perhaps. I installed the latest version of gcl and used it to
> build maxima. No issues there, once I removed all the old stale fasls.
> Appears to build
> just fine, but it won’t run. I get this:
>
>
> $ ./maxima-local -g -l gcl
>
> Error:
> Fast links are on: do (si::use-fast-links nil) for debugging
> Signalled by "AN ANONYMOUS FUNCTION".
>
> INTERNAL-SIMPLE-UNDEFINED-FUNCTION: Cell error on RUN: Undefined function:
>
> Broken at NIL.
> 1 (abort) Return to debug level 5.
> 2 Return to debug level 4.
> 3 Return to debug level 3.
> 4 Return to debug level 2.
> 5 Return to debug level 1.
> 6 Return to top level.
>>>>>>>>
>
> Haven’t spent any time debugging this. I don’t know gcl’s debugger at all.
>
> Take care,
>
> Raymond Toy <[email protected]> writes:
>
> On 4/6/25 2:16 PM, Camm Maguire wrote:
>
> Greetings, and thank you so much for your report!
>
> I've pushed a fix to git branch gnu-build-system, which will appear in
> release 2.7.0 shortly.
>
> Fantastic! I build 2.7.0 and can confirm the macrolet issue is fixed.
>
> However, I do have a build issue. I had to run autoconf again because I don’t
> have aclocal-1.17. Everything built fine. But then I did make install. When I
> run the
> installed gcl, it can’t find /usr/lib/gcl-2.7.0/unixport/saved_gcl. I ran
> “configure –prefix=$HOME/dev/gcl-2.7.0”. There is saved_gcl in
> $HOME/dev/gcl-2.7.0/lib/gcl-2.7.0/unixport/saved_gcl, as I would have
> expected.
>
> Take care,
>
> David Scherfgen <[email protected]> writes:
>
> Dear GCL developers,
>
> Here's another bug(?) I encountered.
>
> The following code works correctly when entering it directly into the REPL.
> But compiling it doesn't work correctly.
>
> Place this in a file bug.lisp:
>
> (macrolet ((impl (op) `(,op x y)))
> (defun add (x y) (impl +)))
>
> This defines a function add (x y) with the body (+ x y).
> Compile it:
>
> (compile-file "bug.lisp")
>
> The compiler gives some warnings that already indicate that something is
> wrong:
>
> ; (DEFUN ADD ...) is being compiled.
> ;; Warning: The variable X is not used.
> ;; Warning: The variable Y is not used.
>
> Load the compiled file and try to call add:
>
> (load "bug.o")
> (add 3 4)
>
> The following error is shown:
>
> Condition in ADD [or a callee]: INTERNAL-SIMPLE-TYPE-ERROR: IMPL is not of
> type FUNCTION:
>
> The compiler failed to expand the impl macro and treated it like a function!
>
> Tested with GCL 2.6.14.
>
> Best regards
> David Scherfgen
>
> ​
>
> ​
>
> ​
>
--
Camm Maguire [email protected]
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah