[Openmcl-devel] COCOA IDE, Libraries and Frameworks
alex crain
alexcrain at mail2.widgetworks.com
Thu Nov 4 16:14:51 PST 2004
I've gotten hemlock and the IDE to a position of relative stability -
it doesn't crash very often and behaves predictably most of the time.
It still needs a better feature set to compete with Slime, but it
works.
I want to do a couple of things before I actually push it back to the
community. First I want to add two new packages to the system: "COCOA"
and "IDE". The former would get all the COCOA/CLOS Bridge code and
would be available for inclusion in applications while the latter would
be IDE specific and would be used by the development environment. From
there I want to add the ability to create COCOA apps, ala XCode.
The last bit means overcoming the problem where dumped images are OS
version specific. My idea is to create a way to generate bundles,
where the executable is a simple bootstrap application that sets up the
environment variables and then execs the lisp binary which loads that
standard image (a compiled version of the openmcl shell script). The
bootstrap loader would then instruct the lisp environment to load a
boot.lisp file that would look like this:
(require "COCOA")
(require "APPLICATION-SPECIFIC-OPTIONS")
(require "APPLICATION-PACKAGE")
(COCOA::NS-APPLICATION-MAIN)
This works reasonable well in my prototype, although boot time is a bit
slow.
My test application works because the lisp kernel, the image and the
library files are all part of the application bundle. That doesn't make
much sense, however, since the only application specific code is
boot.lisp and the application package. I'm thinking that whats needed
is a framework that would contain the lisp binary, image and libraries.
Applications would then "link" to the framework at runtime and would be
otherwise identical to normal obj-c apps.
I can assemble all this stuff, of course, but I wanted to brain dump
here and take some input from the rest of the group. Frameworks and
bundles are darwin specific and the linux folks should have their say,
although something similar would work with linux for making GTK based
apps.
We should probably consider some kind of version identifiers as well,
so that applications could load specific versions of the system
libraries if they should feel the need.
:alex
More information about the Openmcl-devel
mailing list