On Wed, 23 Jun 2004, Oleg A. Paraschenko wrote:

>   Here is an explanation why I need this functinality. Maybe a better way
> exists but I missed it. I want to write an embeddable implementation of
> a complex system. For development I use many Lisp features, these features
> are not required in runtime, so for runtime I want to use a minimal
> possible Lisp. The task is to get a code for the minimal Lisp from the
> development code.

I'm confused. What do you mean by embeddable? Embeddable in a C program,
running in an embedded system, or what?

In the first case CMUCL is probably not the optimal tool, and in the
second case (where space may be at premium) your program has to be pretty
hefty to have significant space requirements over the standard CMUCL
core...

Are you trying to get rid of functionality such as COMPILE-FILE, or just
avoiding bits of your own code that the final application doesn't use? Or
both?

In any case seems to me that what you _need_ is a tree shaker...
(A magical thing that removes unused functionality from the image -- as
far as I know one doesn't exist for CMUCL, unless you count manually
building a custom core without unused functionality).

How much space do you have / expect to save? Or is there another motive
besides space savings for doing this?

Anyways, if you need the FUNCTION-LAMBDA-EXPRESSION to return useful
things, when either a high debug setting or doing something like

 (declaim (ext:maybe-inline foo))
 (defun foo ...)

may help.

Cheers,

 -- Nikodemus                   "Not as clumsy or random as a C++ or Java.
                             An elegant weapon for a more civilized time."

Reply via email to