Gmane
From: Eric Knauel <knauel <at> informatik.uni-tuebingen.de>
Subject: Re: Scheme48 and the FFI
Newsgroups: gmane.lisp.scheme.scheme48
Date: 2005-06-17 14:53:37 GMT (4 years, 2 weeks, 4 days, 6 hours and 54 minutes ago)
On Thu 16 Jun 2005 22:40, Andreas Rottmann <a.rottmann <at> gmx.at> writes:

> Eric Knauel <knauel <at> informatik.uni-tuebingen.de> writes:
>> On Thu 16 Jun 2005 18:27, Andreas Rottmann <a.rottmann <at> gmx.at> writes:
>>
>>> I've read on [0] that Philipp Schumacher is working on a FFI
>>> generator.
>>
>> Philipp just finished his term project on Scheffig, the Scheme 48
>> Foreign Function Generator.  He added support for structs, unions,
>> pointers, and typedef and straightened some things out. (I probably
>> forgot some features.) Scheffig still misses some important features
>> such as automatic treatment of constants defined with #define and
>> enumerations.  
>>
>> So far we've used Scheffig to generate bindings for the OpenGL
>> library.  Worked fine.
>>
> Sounds nice! Where can I get hold of the code ;)? I think that G-Wrap
> can certainly incorporate lots of ideas, and maybe even code from
> Scheffig (and maybe vice versa).

There is a darcs repository of the code:

darcs get
http://www-pu.informatik.uni-tuebingen.de/users/knauel/sw/scheffig 

You'll also need fcc, the C lexer and parser:

darcs get
http://www-pu.informatik.uni-tuebingen.de/users/knauel/sw/fcc

Building Scheffig is a bit tricky, here is an outline of the
procedure:

 * Get essence (An LR Parser Generator for Scheme) and install it:
   <http://www.informatik.uni-freiburg.de/proglang/software/essence/>

 * Build fcc using essence. You'll probably need to edit fcc's
   Makefile and set up some paths.  

At this point, you should have a image containing fcc.  Use this image
when starting Scheme 48 and load the Scheffig code. Good Luck.

>> However, feel free to mail your questions concerning Scheffig to
>> me. (I have advised Philipp on his term project.)
>>
> I'll sure come up with questions once I've been exposed to the
> code. My googling for Scheffig so far was pretty unsucessful; I've not
> been able to find a home page or something like that.

Scheffig and fcc come with a lot of documentation, however, the
documentation is not complete nor up-to-date in all parts.

-Eric
-- 
"Excuse me --- Di Du Du Duuuuh Di Dii --- Huh Weeeheeee" (Albert King)