Greetings, and thanks!

Raymond Toy <[EMAIL PROTECTED]> writes:

> >>>>> "Camm" == Camm Maguire <[EMAIL PROTECTED]> writes:
> 
>     Camm> Greetings!  In getting maxima working on gcl 2.7.0, I came across 
> the
>     Camm> following strangeness:
> 
> 
>     MAXIMA> (eq 'array 'lisp::array)
>     Camm> NIL
> 
>     Camm> (defmacro arraycall (ign array &rest dims) ign
>     Camm>       `(aref ,array . ,dims))
> 
>     Camm> This slows down array referencing enormously, at least when compiled
>     Camm> with GCL, and I suspect others too.  What would be the matter with
>     Camm> importing 'array into 'maxima, and then
> 
> I fail to see how importing cl:array into maxima changes anything.
> 

Well, certain compiler optimizations are keyed to the 'array symbol.
For example, all typing.  subtypep cannot deal with `(maxima::array
fixnum *), it appears as an unknown type.

> 
>     Camm> (defmacro arraycall (ign array &rest dims) ign
>     Camm>       `(aref (the ,ign ,array) . ,dims))
> 
> A peek at some of the uses of arraycall shows that it's something like
> (arraycall flonum aarray index).  Won't your macro expansion produce
> (aref (the flonum aarray) index) which is totally wrong?
> 

My apologies, I meant:

(defmacro arraycall (ign array &rest dims) ign
          `(aref (the (lisp::array ,ign) ,array) . ,dims))

This seems to work here, but I've got other bugs which may obscure
things in my current testing.

Take care,

> Ray
> 
> 
> 
> 
> 
> 

-- 
Camm Maguire                                            [EMAIL PROTECTED]
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gcl-devel

Reply via email to