Subject: [clisp-list] clisp maxima patch

From: Nikolas Kauer <[email-masked]>
Date: Tue, 29 Aug 2000 13:22:07 -0500 (CDT)

Hi,

this post refers to option 2 of RE: [clisp-list] punimax:
> 2. if you would rather use the real thing (maxima), you should
> 
>    A. visit http://www.ma.utexas.edu/users/wfs/maxima.html
>       and get the current CVS version of maxima
> 
>    B. apply the appended patch (BEWARE: work in progress!)
> 
>    C. get the latest version of CLISP (http://clisp.cons.org)
> 
>    D. follow the instructions in maxima/README

I installed clisp-2000-03-06 with the clisp-alpha-dec-osf4.0d.diff 
patch on our Alpha cluster running Tru64 Unix 4.0E, and the test 
suite ran fine.  I then followed the above instructions and tried 
to install maxima for one of our postdocs.  The patch worked fine on a 
recent CVS version (except for src/homog.lisp, where the indentation 
changed slighly).  The makefile worked fine, except that the file 
src/dump-clisp.lisp was missing.  When compiling maxima I got lots of 
warnings, but no errors.  I used:
  ------------------------------------
  (load "sysdef.lisp")
  (make:make :maxima :compile t)
  (lisp:saveinitmem "maxima.mem" :quiet t :init-function 'maxima::macsyma-top-level)
  ------------------------------------
as dump-clisp.lisp file and create the memory image, and 
wrote a short shell script to start maxima with 'maxima' 
on the CL.
  ----------------------
  #!/bin/sh
  exec /local/clisp/bin/clisp -norc -M /local/maxima/maxima.mem
  ---------------------
After that maxima seems to work, i.e. the header and prompt come 
as expected:
  -------------
  tcsh 1> maxima
  Maxima 5.4 Mon Jun 26 12:37:38 CDT 2000 (with enhancements by W. Schelter).
  Licensed under the GNU Public License (see file COPYING)
  (C1)
  ------------
and simple things like adding numbers and displaying expressions 
work.  However, most function calls don't work.  Our maxima user writes:
> It doesn't recognize anything (you can try with a simple "factor(expr);" 
> or "integrate(f(x),x,x0,x1));".
> It doesn't load files for the same reason: "load" appears to it as an
> undefined function.
> Even the final "quit();" is not understood.
I tried to exit with CTRL-D and get:
  --------------
  Maxima 5.4 Mon Jun 26 12:37:38 CDT 2000 (with enhancements by W. Schelter).
  Licensed under the GNU Public License (see file COPYING)
  (C1) 
  *** - FUNCALL: the function BYE is undefined
  1. Break [1]> 
  USER[2]> 
  ---------------
Has anybody tried this and can answer some of these questions:
1. Did I do something wrong during the installation (e.g. 
is there something missing or screwed up in the dump-clisp.lisp 
file I came up with)?
2. Are the many warnings I get when compiling maxima normal?
3. Sam warned that the patch is work in progress.  How much of 
maxima is known to work (5% or 95%)?
4. Does it look like there's something wrong with the underlying 
clisp installation?

Background: gcl does not install on our platform, which precludes 
installing the standard maxima dist "out of the box".  
So, I found out about clisp, which seems to be smaller 
and faster than gcl (and is known to work on our platform).

Any hints and suggestions greatly appreciated.
Nikolas

---

From: Sam Steingold <[email-masked]>
Date: 06 Sep 2000 15:24:08 -0400

Thanks for your patience.
I got back to my box and now I can do some more work.

> * In message <[email-masked]>
> * On the subject of "[clisp-list] clisp maxima patch"
> * Sent on Tue, 29 Aug 2000 13:22:07 -0500 (CDT)
> * Honorable Nikolas Kauer <[email-masked]> writes:
>
> src/dump-clisp.lisp was missing.

I am sorry - here is the correct file:

--------------------------------------------------------------------------
;;; load this to dump maxima under CLISP
 
(load "sysdef.lisp")
(in-package :maxima)
(make:make :maxima)
(defun bye () (lisp:quit))
(lisp:gc)
(lisp:saveinitmem "maxima.mem" :init-function #'maxima::macsyma-top-level)
(lisp:quit)
--------------------------------------------------------------------------

> and simple things like adding numbers and displaying expressions

I get this:

$ maxima
Maxima 5.4 Mon Jun 26 12:37:38 CDT 2000 (with enhancements by W. Schelter).
Licensed under the GNU Public License (see file COPYING)
(C1) F(X):=X^2+Y;
                                         2
(D1)                            F(X) := X  + Y
(C2) F(2);
(D2)                                 Y + 4
(C3) EV(F(2),Y:7);
(D3)                                  11
(C4) F(X):=SIN(X)^2+1;
                                         2
(D4)                          F(X) := SIN (X) + 1
(C5) F(X+1);
                                   2
(D5)                            SIN (X + 1) + 1
(C6) G(Y,Z):=F(Z)+3*Y;
(D6)                         G(Y, Z) := F(Z) + 3 Y
(C7) EV(G(2*Y+Z,-0.5),Y:7);
(D7)                     3 (Z + 14) + 1.22984884706593
...

> I tried to exit with CTRL-D and get:
please use my dump-clisp.lisp.

> is there something missing or screwed up in the dump-clisp.lisp 

yep - use the version in this message.

> 2. Are the many warnings I get when compiling maxima normal?

yes, for now.
I hope to eliminate them eventually.

> maxima is known to work (5% or 95%)?

I have no idea yet, but if you send me a test case (your input, what you
should get as the output, the output you actually get), we could get
farther. 

> 4. Does it look like there's something wrong with the underlying 

no.

Thanks for trying my patch.
Please do not give up.

-- 
Sam Steingold (http://www.podval.org/~sds)
Micros**t is not the answer.  Micros**t is a question, and the answer is Linux,
(http://www.linux.org) the choice of the GNU (http://www.gnu.org) generation.
Oh Lord, give me the source code of the Universe and a good debugger!