Author: dbrock
Date: Mon Nov 7 19:34:33 2005
New Revision: 10356
Modified:
trunk/www/melange.phtml
Log:
Job: website
Add information about CPR and Collage and generally update and expand the
existing information about Melange, Pidgin, etc.
Modified: trunk/www/melange.phtml
==============================================================================
--- trunk/www/melange.phtml (original)
+++ trunk/www/melange.phtml Mon Nov 7 19:34:33 2005
@@ -3,31 +3,42 @@
standard_header("Interfacing with C");
?>
-<P>For Gwydion to be useful, it must interface seamlessly with C. Most
-interesting libraries are written in C, including all of the significant
-APIs for Unix systems. Ideally, it should be as easy to call a C function
-from a Dylan program as it is to call one from a C program.</P>
-
-<P>The original Gwydion developers at CMU wrote a nifty tool called
-Melange. It parses C header files and automatically generates interfaces in
-Dylan. We've been slowly enhancing this to handle more complicated header
-files, and stomping all the bugs which we find along the way.</P>
-
-<p>On the way we decided to rewrite parts of melange, and a new
-project, called pidgin, was started. It has a working C header
-parser, but it's missing the code generation part. Adding that is not
-that difficult: if you're looking for a way to help our project,
-that's your chance. Contact us on the <a href="community.phtml">gd-hackers
-mailing list</a> for details.</p>
-
-<p>We already have working callbacks from C to Dylan code, on x86 and
-PPC even with callbacks to closures.</p>
-
-<?php
-begin_progress_table();
-progress("Improve parser", 9);
-progress("Write interface generation code", 0);
-end_progress_table();
-?>
+<p>For Dylan to be useful, it must interface seamlessly with C.
+Most interesting libraries are written in C, including all of the
+significant APIs for Unix systems. Ideally, it should be as easy to
+call a C function from a Dylan program as it is to call one from a C
+program.</p>
+
+<p>We already have working callbacks from C to Dylan code, on both x86
+and PPC—even with callbacks to closures.</p>
+
+<p>The original Gwydion developers at CMU wrote a nifty tool called Melange.
+It parses C header files and automatically generates Dylan interface files.
+We've been slowly enhancing Melange to handle more complicated header files,
+and stomping out all the bugs which we find along the way.</p>
+
+<p>Somewhere along we decided to rewrite parts of Melange, and a new project
+called Pidgin was started. Pidgin has a working C header parser, but is
+missing the code generation part. This project was later shelved.</p>
+
+<p>Peter Housel is now working on a brand new C code representation
+library called CPR (for C Program Representation), inspired by
+SML/NJ’s <a href="http://www.smlnj.org/doc/ckit/">ckit</a> and
+George Necula's <a href="http://manju.cs.berkeley.edu/cil/">CIL</a>.
+This library will be able to parse C code and make its structure
+available to Dylan programs as an abstract syntax tree.</p>
+
+<p>The current plan is that a new CPR-based FFI mechanism called
+Collage will be replacing Melange in the hopefully near future.
+Unlike Melange, Collage won't usually generate interface files;
+instead, it will be built into <code>d2c</code> and DFMC.</p>
+
+<p>For now, however, Melange is your best bet if you want to use a C
+library from a Gwydion Dylan program. If you are using Open Dylan, there
+is currently no really good alternative to Melange. The existing bindings
+are all generated by direct pattern-based translation of C header files
+into Dylan interface files. This is accomplished by a script written in
+an arguably arcane translation language called Gema. As stated above,
+the plan is for Collage to do this job better in the future.</p>
<?php standard_footer(); ?>
--
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
https://gauss.gwydiondylan.org/mailman/listinfo/gd-chatter
|