I'm developing a Lisp application that links to C code. The
general
organization is that the Lisp code builds a function that
encodes a
system of ordinary differential equations. This function is
passed off
to C code that solves the system and returns values of the
variables
over time. I have this code up and running in Allegro,
Clisp, and
CMUCL, but for some reason CMUCL exhibits some memory
problems.
Specifically, calls to solve the system of equations lead to
several
invocations of the garbage collector (presumably due to
memory
management issues) to the extent that the code cannot
complete within a
reasonable time.
Any ideas what could be causing this? Is there something
flaky about
callbacks from C into Lisp?
Will
|