On Apr 23, 2009, at 11:50 AM, Abdulaziz Ghuloum wrote:

2. Expansion and Evaluation
Ikarus libraries are automatically expanded/compiled when
you import them (thus, there's a mapping from library names
to some storage that contains libraries' code).  Chez
modules are not associated with any storage: if you import
a module and it doesn't already exist in the environment,
you get an error.  This means that in Chez, it is your
duty to ensure that modules are "loaded" before they are
used.  Now "loaded" is a loaded term as it implies all of
"compiled", "visited", and "invoked" (or "revisited" in
the Chez lingua).  Moreover, the load, compile, visit, and
revisit are operations that operate on files, not modules,
(such files may contain any code, not just modules) and
work by modifying the environment in which such files are
loaded, compiled, visited, or revisted.  Operations on
libraries in Ikarus do not modify the environment since no
environment is required for performing these operations.
In short, you need to manage the phase dependencies (when
files are loaded/compiled/visited/revisited) yourself so
that compile-time and run-time information are available
when needed.

I forgot to say that Petite Chez does not have a compile
file procedure, so, you cannot experiment with compiling
files and visiting and revisiting them later.  The eval-
when feature of Chez is also less powerful in Petite due
to the same reason.

Aziz,,,

Reply via email to