Looking for things to do?



On Thu, 2004-03-11 at 12:51, Raymond Toy wrote:

> o Use FFI
> 
>   Pro: Low effort, probably best speed
> 
>   Con: Is there a common FFI that can be used for all supported
>        Lisps/platforms?  Or just support only some Lisps?  What about
>        calling back to Lisp?  Is that needed?  Makes it somewhat
>        fragile too.  Buggy foreign code or buggy FFI definitions/usage
>        could take down your entire session.

We could debate this point forever. I'll just say this: I plan to use
UFFI in Maxima in the not-too-distant future. You will be able to use
Maxima without any FFI features, but if you want the FFI features, you
will have to use a lisp that supports UFFI. It is the only reasonable
solution.

Unfortunately, UFFI doesn't have callbacks to Lisp yet. Callback support
is really badly needed. We may have to cobble up our own extension to
UFFI to do it.

> Matlisp (matlisp.sourceforge.net) is an attempt for a Matlab-like
> system in Lisp.  It uses the FFI, which has been the source of some
> interesting and hard to find bugs.  One of the goals of matlisp was
> also to provide a Matlab and/or Octave parser so it could re-use
> existing Matlab/Octave code.  But I don't know anything about parsing,
> so is not likely to happen unless someone volunteers to do the work.

Calling Octave functions from Maxima using FFI shouldn't be too
difficult. I have recently implemented a similar interface between
Python and Octave for a project at work. It was very easy. I don't think
doing the same for Maxima should be much more difficult.

> Having a decent plotting facility is also pretty important.  I seldom
> want to see the elements of a 2000-element array, but I often plot
> arrays of length 10,000 or more to see things.

I hope a better gnuplot interface will at least serve as a band-aid on
this problem. I often have to plot 10^5 or more points in my job, also.

--Jim