bug_report() gives "Maxima encountered a Lisp error"
- Subject: bug_report() gives "Maxima encountered a Lisp error"
- From: Camm Maguire
- Date: 07 Oct 2004 11:09:13 -0400
Greetings!
Alexander Vidybida <vidybida@bitp.kiev.ua> writes:
> > > Maxima version: 5.9.1
> > > Error in MEVAL1 [or a callee]: Caught fatal error [memory may be damaged]
> > >
> > > Broken at CONDITIONS:INVOKE-DEBUGGER. Type :H for Help.
> > > 1 (Abort) Return to top level.
> > > dbl:MAXIMA>>:bt
> > >
> > > #0 INVOKE-DEBUGGER {datum=#<conditions::internal-simple-stream-error.0>,arguments=nil,loc2=#<condit...} [ihs=15]
> > > #1 ERROR {datum=conditions::internal-simple-stream-error,arguments=(:function-name meval1...} [ihs=14]
> > > #2 CLCS-UNIVERSAL-ERROR-HANDLER {error-name=:error,correctable=nil,function-name=meval1,continue-format-string=(...} [ihs=13]
> > > #3 $BUILD_INFO {loc0=t,loc1="Maxima build date: ~a:~a ~a/~a/~a~%",loc2="5.9.1",loc3=t,loc4=nil,...} [ihs=12]
> > > #4 MEVAL1 {form=(($bug_report)),loc1=nil,loc2=nil,aryp=nil,loc4=$bug_report,loc5=nil,loc6=...} [ihs=11]
> > > #5 MEVAL {form=(($bug_report)),loc1=#<synonym stream to *terminal-io*>} [ihs=10]
> > > #6 MEVAL* {loc0=(($bug_report)),loc1=6,loc2=(nil),loc3=(lisp-eval (setq *debugger-hook* ni...} [ihs=9]
> > > #7 MACSYMA-TOP-LEVEL {} [ihs=8]
> > > #8 RUN {} [ihs=4]
> > > #9 SET-UP-TOP-LEVEL {loc0=nil,loc1=nil,loc2=nil,loc3=(lambda-block run nil ...)} [ihs=3]
> > > #10 GCL-TOP-LEVEL {loc0=((system::tem nil)),loc1=nil,loc2=((system::gcl-top-level block #<@091B7FE...} [ihs=2]
> > > NIL
> > > dbl:MAXIMA>>
> > >
> >
> > OK, at this point:
> >
> > dbl:MAXIMA>>user:*maxima-build-time*
> >
> > Take care,
> >
> > >
> > >
> > >
> >
> > --
> > Camm Maguire camm@enhanced.com
> > ==========================================================================
> > "The earth is but one country, and mankind its citizens." -- Baha'u'llah
>
>
> Here it is:
> --
> alex
>
>
>
> evel block #<@091B7FE...} [ihs=2]
> NIL
> dbl:MAXIMA>>user:*maxima-build-time*
>
> Error in CONDITIONS:INVOKE-DEBUGGER [or a callee]: Cannot find the external symbol *MAXIMA-BUILD-TIME* in #<"COMMON-LISP-USER" package>.
>
> Broken at CONDITIONS:INVOKE-DEBUGGER.
> 1 (Abort) Return to debug level 1.
> 2 Return to top level.
> dbl:MAXIMA>>>
>
Well, there is your problem. This should have been defined in
maxima.system:
=============================================================================
; -*- Lisp -*-
#+(or cmu sbcl openmcl)
(or (find-package "USER")
(rename-package "COMMON-LISP-USER" "COMMON-LISP-USER"
(cons "USER" (package-nicknames "COMMON-LISP-USER"))))
(in-package :user)
(pushnew :cl *features*)
(pushnew :nocp *features*)
#+gcl
(let ((version-num (+ (* 10000 system::*gcl-major-version*)
(* 100 system::*gcl-minor-version*)
system::*gcl-extra-version*)))
(if (> version-num 20603)
(pushnew :gcl-working-proclaims *features*)))
#+cmu
(setf ext:*gc-verbose* nil)
(setf *load-verbose* nil)
(defvar *maxima-build-time* (multiple-value-list (get-decoded-time)))
(export '*maxima-build-time*)
=============================================================================
Do I recall your stating that you are using gcl-alt-link? If so,
please apply the following patch, as its broken in 5.9.1:
=============================================================================
--- maxima-5.9.1.orig/src/Makefile.am
+++ maxima-5.9.1/src/Makefile.am
@@ -170,17 +170,7 @@
test -d binary-gcl/numerical || mkdir binary-gcl/numerical
test -d binary-gcl/numerical/slatec || mkdir binary-gcl/numerical/slatec
$(EXECUTEGCL) '(progn $(LOADDEFSYSTEM) $(DEFSYSTEMCOMPILE))' && \
- j=$$($(EXECUTEGCL) '(progn $(LOADDEFSYSTEM) $(DEFSYSTEMTESTLOAD) (when (fboundp (quote si::sgc-on))(si::sgc-on t)))'\
- < /dev/null | \
- awk 'BEGIN {p="$(shell pwd)" "/"} /oading *source *file$$/ {a=$$0;next} {$$0=a $$0;sub(p,"");print;a=""}' |\
- grep Loading |\
- grep file | \
- awk 'BEGIN {a="$(shell pwd)"}\
- {gsub("\"","",$$NF);b=b " \"" a "/" $$NF "\""}\
- END {printf("(%s (list %s) %s %s \"\" t)",\
- "compiler::link",b,"\"" a "/$@\"",\
- "\"(provide \\\"maxima\\\")\"")}') && \
- $(EXECUTEGCL) "$$j" < /dev/null
+ $(EXECUTEGCL) '(let ((com (quote (progn (defvar compiler::*gazonk-prefix* "gazonk") (defun compiler::gazonk-name (&aux tem)(dotimes (i 1000) (unless (probe-file (setq tem (merge-pathnames (format nil "~d~d.lsp" compiler::*gazonk-prefix* i))))(return-from compiler::gazonk-name (pathname tem))))(error "1000 gazonk names used already!"))(let ((compiler::*gazonk-prefix* "maxima_gazonk")(compiler::*keep-gaz* t))$(LOADDEFSYSTEM)$(DEFSYSTEMLOAD))))))(let ((si::*collect-binary-modules* t))(eval com)(let ((compiler::*default-system-p* t))(dolist (l (directory "maxima_gazonk*.lsp")) (compile-file l) (delete-file l)))(compiler::link si::*binary-modules* "binary-gcl/maxima" (format nil "~S" com) "" nil)(dolist (l (directory "maxima_gazonk*.lsp")) (delete-file l))))'
else
test -d binary-gcl || mkdir binary-gcl
test -d binary-gcl/numerical || mkdir binary-gcl/numerical
=============================================================================
This is already in cvs.
If you are using the default linking option, please try to figure out
from your build output why maxima.system was not loaded. Perhaps you
can post the build log.
Take care, and please let me know.
>
>
--
Camm Maguire camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah