[Maxima] recent attempt
raymond.toy at ericsson.com
Wed Jan 3 10:01:32 CST 2007
>>>>> "Robert" == Robert Dodier <robert.dodier at gmail.com> writes:
Robert> On 1/2/07, Raymond Toy <raymond.toy at ericsson.com> wrote:
>> Ok. I was just wondering if the functions should return the Lisp
>> arrays themselves instead of copying them to a Maxima matrix object.
Robert> I think the Lisp arrays should be copied back into Maxima matrices.
>> The question now is if you still want lapack in src and not share.
>> If they were in share, we wouldn't have this problem, except that
>> users will now take a hit to compile the lapack routines the first
>> time. But no memory bloat, and no additional compile time for
Robert> It's OK by me to put them in share, let's say in share/lapack.
That's where I've put them already, in my experiments. :-)
Robert> But even better would be to put them in src/lapack and compile
Robert> them at the same time as everything else, but just omit them from
Robert> the final image. Then load(lapack) would just load the lapack binaries
Robert> instead of compiling them.
I don't know how to do that. Maxima's build system for src is a bit
messy. The defsystem file compiles and loads everything. Then it's
done again, using the same defsystem to load everything. Hence,
everything gets loaded. We'd have to rearrange the defsystem and
Robert> The reason I suggest this is that recompiling a large Lisp file takes
Robert> a long time, and it has its own perils (e.g. confusing messages from
Robert> the Lisp compiler such as "Should I bother you again?", not to
That message comes from defsystem.
Robert> mention the extremely voluminous progress messages of some
Robert> compilers, or a read-only file system).
We could set *compile-verbose* and friends not to display these
progress messages. However, on my ppc system it takes a long time
(15+ minutes?) to compile, so having some messages go by gives the
user a nice warm fuzzy that something is actually happening.
But there's a precedent for this. affine compiles it's code too, so
it wouldn't work on read-only file systems either.
More information about the Maxima