[Openmcl-devel] programmatic file chooser? thanks!

Gary Byers gb at clozure.com
Sat Aug 30 02:38:41 UTC 2008



On Thu, 28 Aug 2008, Brent Fulgham wrote:

> The only 'complaint' or suggestion I would have regarding the FFI would be
> to
> make it easier to generate the CDB files.  This is generally easy, but in
> some
> cases (especially with the release of Leopard with the new ObjC 2.0 syntax)
> it requires some clever declarations to ignore various things that Lisp
> doesn't
> care about.
>
> Perhaps you ship the FFI generator with Clozure; previously this had to be
> obtained from Gary or others (perhaps a valid first step in embarking on the
> journey of accessing foreign data -- you will probably be chatting with Gary
> at some
> point!)

For a long time (during the Leopard beta period) we couldn't
distribute the .cdb files for Leopard (out of paranoid concern that
this would violate Apple's NDA somehow)  and couldn't distribute
an ffigen (a hacked-up version of GCC) that fully understood the
new ObjC 2.0 features because Apple hadn't released the sources
to those changes.  They were actually fairly good about releasing
sources shortly after Leopard was released this time, and we got
an ffigen based on that Apple-modified GCC out shortly thereafter.
('ffigen' is basically just some changes to the GCC frontend, so
that it spits out type/structure/function declarations in an
S-expression syntax that's easier for lisp code to parse.  It
doesn't have to be based on the latest version of GCC, but it
does have to understand the syntax of the language it's compiling
and has to understand the alignment rules of the platform it's
compiling for.)

On many platforms, just using GCC 4.0.0 has the base works
fine.  Darwin (with the ObjC 2.0 changes especially) requires
a slightly different set of patches to a slightly different
version of GCC; win64 support for GCC is still being added
(and tends to only be present in recent 4.3/4.4 versions ...)
This is getting (more) confusing, so the right thing is probably
to set up a Trac page for it, keep that up to date, and link
to it from the main page (so that you can understand what you
need and find it without having to ask me ...)





More information about the Openmcl-devel mailing list