which lisp to use?



On 11/19/06, sen1 at math.msu.edu <sen1 at math.msu.edu> wrote:

>   I am interested in developing some applications (mostly numerical,
>   some symbolic) packages (for use in Dynamical Systems).  Some similar
>   packages are available already in some  form or other in C, fortran, etc.

Maxima has some functions to work with dynamical systems --
"? dynamics" at the input prompt should yield some information.
I would be interested to hear your comments on the existing package.

>   1. Is it worthwhile to convert the packages to lisp directly (or to
>      use foreign interface calls from lisp)?

I'm guessing that you just need to get one implementation working
(instead of trying to get it to work on different Lisp implementations).
Given that it might be easiest to use a foreign function interface.
I believe CFFI is the most active FFI project. CFFI doesn't work with
GCL, but you can choose some other Lisp.

Translating Fortran code via f2cl probably would work OK for F77;
dunno if it supports F90. But you could avoid translating by using FFI.

>   2. Which lisps do most of you use for  evelopment in relation to
>      maxima?

I use Clisp, GCL, and SBCL.

>   3. What about the pluses and minuses of gcl, cmucl, or others?

GCL: plus: programs compiled w/ GCL are faster than
same compiled w/ SBCL, much faster than w/ Clisp
works on Unix-like and Windows systems
minus: ANSI CL implementation still has a few gaps
GCL has more bugs (mostly stuff around the edges) than SBCL or Clisp
project not yet mature

SBCL: plus: programs compiled w/ SBCL are almost as fast as
same compiled w/ GCL, much faster than w/ Clisp
no ANSI CL gaps that I know of
works on Unix-like systems
minus: Windows port is not complete (it's not yet usable)
project not yet mature

Clisp: plus: no ANSI CL gaps that I know of
relatively old, therefore stable and mostly bug-free implementation
works on Unix-like & Windows systems
minus: programs compiled w/ Clisp are slow

If you use FFI, I'll suggest Clisp.
Otherwise, I'll suggest SBCL.

I don't use CMUCL because I wasn't able to rebuild it (the build
system is very arcane). I guess if you can find a pre-built
package then it's an option; CMUCL and SBCL are similar.

As always my opinions are worth what you paid for them.

HTH
Robert Dodier