[Openmcl-devel] [Newbie] Unable to compile or load "apple-objc.lisp"

Gary Byers gb at clozure.com
Tue May 20 08:40:21 PDT 2003

On Tue, 20 May 2003, Dave Newman wrote:

> I have been trying to compile the cocoa examples, part of which seems
> to be figuring out which .lisp file to compile first.

It's supposed to work to just do:

? (require "COCOA")

REQUIRE will look for a loadable file called "cocoa" in any directory
listed in *MODULE-SEARCH-PATH*.  These are logical pathnames, most
of them relative to the "CCL:" logical host.  If you do:

? (translate-logical-pathname "CCL:examples;")

that should return (depending on where the "ccl/" directory was untarred
and installed) something like:


If this doesn't work for you (returns some physical pathname that doesn't
correspond to where the lisp is installed), you might want to look at
".../ccl/doc/HTML/shell-script.html", which explains this in greater

> 1) Is there a make file that builds the various cocoa examples in the
> correct order? Is that even a relevant question? (I'm relatively new
> to lisp.)

I suppose that there could be, but the Cocoa examples are generally
fairly small and they satisfy their dependencies by using REQUIRE
to load what they need.

It takes a few seconds for the example to start up; most of the overhead
is in establishing a connection to the OSX window server.  (When you
launch an application from the Finder, you have a bouncing Dock icon
to distract you from wondering why it's taking so long ...)

> 2) I decided that "apple-objc.lisp" seems to be a crucial file and
> probably needs to be compiled first. When I try to compile it
> complains about *OBJC-READTABLE* being unbound, yet I see it being
> defvar'd early on in "apple-objc.lisp". I then tried loading, instead
> of compiling, "apple-objc.lisp" and received an error that
> "records.cdb" couldn't be found. OpenMCL indicated it was looking in
> "~/dev/darwin-headers/cocoa/" instead of
> "/Developer/OpenMCL/ccl/darwin-headers/cocoa/" where it should have
> been looking. How do I tell OpenMCL where to look for this file?

It needs to know where the entire "ccl/" tree is (the "CCL:" logical
host needs to translate logical pathnames  like


into the correct physical pathname.)  The "openmcl" shell script sets
an environment variable that OpenMCL uses to set up this translation.

Many people seem to have been confused by this, and in hindsight it
looks like a simpler scheme ("the CCL: host points to the directory
that the initial heap image was found in", or something) might have
been preferable.

> Regards,
> --Dave Newman
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/cgi-bin/mailman/listinfo/openmcl-devel

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

More information about the Openmcl-devel mailing list