[Openmcl-devel] Loop macro missing in openmcl?

Gary Byers gb at clozure.com
Sat May 3 10:03:07 PDT 2003

On Sat, 3 May 2003, Frank Sonnemans wrote:

> As a beginning lisp user I am trying to get some software libs (cl-xml,
> portable a-serve, cloc, ...) to load in openmcl and most of them give errors
> due to a missing loop macro.
> The error message is:
> Error: The module "LOOP" was required while loading ...
>        No file could be found for that module.
> While executing: REQUIRE
> This message shows up when there is a loop construct like:
> (loop for x from 1 to 100 .....
> Is this macro missing from openmcl, or do I need to load it using require or
> a similar construct.
> If it is missing, can someone point me to some information (source code)
> which I might try to port to openmcl.
> Best Regards,
> Frank

For historical reasons (that no longer make much sense), LOOP is autoloaded:
it's distributed with binary releases (as "ccl:library;loop.dfsl") and
automatically REQUIREed the first time that its referenced.

In order for REQUIRE to work, the logical pathname translation for the "CCL"
logical host have to be set up properly. Every time that OpenMCL starts up,
it uses the value of the "CCL_DEFAULT_DIRECTORY" environment variable to
find the physical pathname to use when translating references to the
CCL logical host.

The "openmcl" shell script is supposed to provide a way to invoke OpenMCL
with the environment variable set appropriately.  The web page at:


- which is distributed as "doc/HTML/shell-script.html" - explains how to
customize the shell script and verify that it's setting the environment
variable correctly.

I think that this has been a source of confusion for many people for a
long time.  Using the environment variable was supposed to allow greater
flexibility; in hindsight, it may have been wiser to set the "CCL"
logical host's translations to "whatever directory the lisp kernel was
found in, unless that choice is overridden in some way."; this might
reduce that confusion somewhat.

The rationale for autoloading LOOP (reducing the image size by a few
hundred kb) isn't as strong as it was 15 years or so ago; there are
still reasons for wanting to set "CCL:" appropriately.

Openmcl-devel mailing list
Openmcl-devel at clozure.com

More information about the Openmcl-devel mailing list