------- start of forwarded message ------- From: Ken MacLeod <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Subject: Orchard/C 0.2.3 preview release available Date: 15 Nov 2000 09:38:56 -0600 Half of the Perl interface into Orchard/C is complete, you can now call C functions and return C objects to Perl. (The other half is Orchard/C calling Perl.) <ftp://orchard.sourceforge.net/pub/orchard> Included examples are an Expat node-based SAX wrapper and two sets of XML objects (one optimized for in-memory usage, one not). Orchard/C is comparible to SWIG, as it's intended to make interfacing C to Perl (and Python and Tcl) very easy and portable. SWIG is intended for wrapping existing C/C++ libraries and must contend with C data types. Orchard/C, on the other hand, is intended for writing new C code as performance enhancements for Perl/Py/Tcl. Because Orchard/C code is written with scripting languages in mind, several things have been done to make this easier, including a fast OO-like runtime (pure C, albeit preprocessed), object attribute accessors, garbage collection (Boehm GC), and transparent interfacing (no code or interface files) of Orchard/C classes to Perl/Py/Tcl classes. Orchard/C requires Expat 1.95.x and Boehm GC (see the README), both of which are very easy to compile (on Unix, anyway). The Perl interface is in 'perlif/' and is compiled as a second step after compiling Orchard/C, and it compiles like a standard Perl module. The Perl interface includes wrapper modules for the main C classes: Orchard::SAXDriver::Expat, Orchard::TreeBuilder, Orchard::XML::FastSmall, etc. Adding the ability for Orchard/C to call Perl code is up next. Future enhancements include dynamic loading of Orchard/C modules (currently all Orchard/C code must be preprocessed at the same time), implementation of Python and Tcl interfaces, and design patterns for writing Perl/Py/Tcl cross-compatible Orchard/C modules. -- Ken ------- end of forwarded message -------