[Openmcl-devel] "Smalltalk Model" related questions
dankna at accela.net
Tue Jun 1 21:59:39 UTC 2004
None of your questions, actually, are specific to OpenMCL. The
information holds for most Lisps.
A Lisp image captures the entire state of a running Lisp process
ordinarily, for open files and tcp connections). In technical terms,
it is a
copy of the contents of the heap. Loading a saved Lisp image
creates all the packages, functions, variables, and whatnot which
the time it was saved.
Because the image comprises the *entire* heap, you cannot load an
into an already-running Lisp; if you could, you would lose all the
functions, and variables which were in the already-running Lisp,
would be replaced with the saved ones. Instead, you load it at the
invoke the Lisp process.
Many Lisp implementations (all of them?) use a saved image, containing
the entire standard library, to boot themselves with. Saved images can
be created as a means of preloading some large library or a user
It is sometimes possible to retrieve the source code for a function by
using the standard, portable function function-lambda-expression, ie,
(function-lambda-expression #'foo). However, implementations are
permitted to discard the source code if it is inconvenient for them to
keep it around, and most (all?) implementations discard it at the time
a function is compiled.
This is in no way as powerful as Smalltalk's development environment,
which is integrated with its runtime system.
There is no way, without writing code which inspects the internals of
the system, to look up functions or methods by the classes of their
There's not particularly a Lisp equivalent of the Smalltalk way of
things; I'm not aware of any language not a dialect of Smalltalk which
a system like that. However, there are two different Emacs packages,
iLisp and Slime, which provide some level of integration. Slime is the
which aspires to do the sort of thing you're talking about. You could
-- Dan Knapp
More information about the Openmcl-devel