[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

akcl + maxima + decstation 3100 == It works.

Luke Tierney recently announced his port of akcl to the decstation. 
Luke did the work on some machine I own, and I "watched".
My stress test for akcl was to try to build maxima. (Before anyone asks
-- yes I do have a license from the NESC to use maxima).  There were
some problems compiling maxima.  In particular with the default
optimizations (speed 3) (safety 0), akcl produced C code which the C
compiler could not handle.  I suspect this a problem with the C
compiler, as gcc was able to compile the code, but then the assembler
would choke.   The "solution" was to add optimization proclaimations to
a number of the maxima lisp files.  With these changes, maxima compiled
and seems to be running quite well.  I have NOT done extensive testing,
but most of my simple tests seem to work exactly as I would expect.

Overall I am very happy with akcl on the pmax.  I've managed to compile
several lisp packages with akcl that had given me problems with other
pmax based lisp systems (I won't name names here).

The following is a list of the maxima lisp files that I had to change. 
These are probably not the only (or even best) changes, but they do
work.  I did not try lost of different optimization proclaimations.

--Mike Meyer,
Statistics, Carnegie Mellon Univ.

algsys.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
combin.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
cpoly.lisp:(proclaim '(optimize (safety 3) (speed 1)))  ;;; MMMeyer
defint.lisp:(proclaim '(optimize (safety 3) (speed 1)))  ;;; MMMeyer
displa.lisp:(proclaim '(optimize (safety 3) (speed 1)))  ;;; MMMeyer
dskfn.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
factor.lisp:(proclaim '(optimize (safety 3) (speed 0)))  ;;; MMMeyer
float.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
hayat.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
laplac.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
limit.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
matcom.lisp:(proclaim '(optimize (safety 3) (speed 1)))  ;;; MMMeyer
matrix.lisp:(proclaim '(optimize (safety 3) (speed 1)))  ;;; MMMeyer
matrun.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
merror.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
mlisp.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
mtrace.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
nusum.lisp:(proclaim '(optimize (safety 3) (speed 1)))  ;;; MMMeyer
rat3a.lisp:(proclaim '(optimize (safety 3) (speed 1)))  ;;; MMMeyer
rat3b.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
rat3c.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
rat3e.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
ratout.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
series.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
solve.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
spgcd.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer
suprv1.lisp:(proclaim '(optimize (safety 2) (speed 1)))  ;;; MMMeyer