[Openmcl-devel] OpenMCL, McCLIM, Beagle, and Bosco...

Gary Byers gb at clozure.com
Mon Oct 23 03:53:00 PDT 2006

On Sun, 22 Oct 2006, Brent Fulgham wrote:

> Hash: SHA1
> I've been playing a bit with OpenMCL and McCLIM (using the CLX
> backend).  Since what I really want is native OS X look and feel, I
> attempted to build the 'Beagle' backend to McCLIM with little luck.
> I noticed that Hemlock and the Lisp listener that come with OpenMCL
> are similar to those included with McCLIM, but it appears they were
> revised to directly use the Cocoa back-end.

Not exactly (see below.)

I was told several months ago that Tim Moore had done some work on
extending the McCLIM Cocoa backend (I don't know if he took Beagle
as a starting point or started over).  Tim said at the time that
he had performance concerns; it wasn't clear where the problems
lay (and there are certainly several candidates.

If I understood correctly, Tim's work was in McCLIM CVS (possibly
on an experimental branch.)

> This reminded me a bit of Mikel Evin's "Bosco" framework, which
> helped provide a framework for creating Lisp OS X applications.  As I
> mentioned a while ago, the sources don't seem to be available
> anywhere (I still have a tarball of his 0.6 version, but can't find
> his tutorial anywhere).

I had thought that Bosco and Clotho were still on common-lisp.net.
(A quick glance suggests that there's a 2-year-old copy of Clotho
there; I didn't see Bosco.)

> So, a few questions:
> 1.  Is there much desire to permit cross-platform Lisp development
> via something like McCLIM, or is it just too limiting to do much of a
> job with it?

I'm not sure that it'd be fair to call McCLIM "limiting", since there's
clearly a lot of functionality there.

I do think that anything that one does with McCLIM would have a
somewhat limited target audience (other McCLIM users, currently); that
gets to be as much a political issue as a technical one.

There are some other approaches to being cross-platform: GNUStep
runs on many interesting platforms and offers a high degree of
Cooca compatibility.  (Bits and pieces of the ObjC bridge are
conditionalized for the GNU ObjC runtime vs Apple's, though that's
never worked completely and likely suffers from bitrot)  Some Linux
distributions package GNUStep, others don't, so there's something
of the same limited target audience issue there.

Yet another approach would be solve the issue by ignoring it: the
number of target platforms/target OSes of likely interest sadly
isn't that large.  If you do a good job of supporting a small
number of window systems/toolkits (Cocoa, GTK+, whatever's on
Windows if/when that becomes relevant, ...),  you've addressed
part of the problem.  There are a couple of remaining parts (how
much of a common portability layer should there be, and what
exactly goes in that layer and what stays out of it) that require
both careful design and some trial-and-error.

> 2.  Are the Hemlock and other examples in the OpenMCL Cocoa sources
> based on McCLIM programs?  If so, are there a "Rosetta Stone" for
> translating from McCLIM to native Cocoa calls?

Hemlock was an editor that was originally distributed with Spice
Lisp (a predecessor of CMUCL) in the mid 1980s.  It's old enough
that one can question whether it's more correct to call it "Emacs-like"
or to call GNU Emacs "Hemlock-like".

It was distributed as part of CMUCL for a long time; a few years
ago, Gilbert Baumann excised/isolated some of its CMUCLisms and
called the result "Portable Hemlock"; you can run that under CLX
with most/all current CL implementations (and the result will look
and act surprisingly like an X Windows program from the mid 1980s.)

The stuff that's used in the demo IDE example is mostly Gilbert's
work hacked up to use the Cocoa text system (and to support 
multiple windows/frames and other stuff); it doesn't have much to
do with any code that's in McCLIM.

> 3.  Finally, could we host the Bosco sources on OpenMCL's website
> (and perhaps the Clotho sources, too)?

> Thanks,
> - -Brent
> Version: GnuPG v1.4.5 (Darwin)
> iD8DBQFFPA+ZzGDdrzfvUpURAnkCAJ4qXwAwxNugj75lmB/D7q6RYoN26ACfXVJH
> 9YYrtMQP9w+YME27W5sojtI=
> =86x2
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list