------- 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 -------

Reply via email to