>>>>> "Volker" == van Nek <van.Nek at gmx.net> writes:
Volker> (C8) compile(foo);
Volker> Compiling gazonk0.lsp.
Volker> End of Pass 1.
Volker> End of Pass 2.
Volker> OPTIMIZE levels: Safety=2, Space=3, Speed=2
Volker> Finished compiling gazonk0.lsp.
Volker> (D8) [foo]
Volker> (C9) foo(test,2,1);
Volker> Maxima encountered a Lisp error:
Volker> not a valid array reference to #2A((0 0) (0 0) (0 1)) ???
I think this is a bug in maref1 in src/trans2.lisp. I think the
method it's using to figure the type of AR is confused wrt to Common
Lisp.
If I insert a new clause for cond like so:
(cond
((typep ar 'cl:array)
(apply #'aref ar inds)) ;; <- new stuff
((one-of-types .type. (make-array 3)) (apply #'aref ar inds))
the compiled version actually works.
Ray