I've finished cleaning up the Pure Perl version of Marpa, and am about to embark on Marpa::XS. Marpa's parsing is mainly data-twiddling, so I expect a major speed improvement when its parse engine is converted to C. I've made some tentative decisions on the implementation, which I want to submit to this group for comment.
1.) I plan to have Marpa::XS require Perl 5.12. At this point many people don't run 5.12 -- in fact I don't. But by the time Marpa::XS is ready to try out, my idea is that anyone unable or unwilling to at least perlbrew a 5.12 will not truly be interested in dealing with a new alpha module anyway. 2.) I plan to have Marpa::XS use Glib from GNU's GTK package, particularly for its library of data types. In writing the Pure Perl version of Marpa, I've sorely missed having fast binary trees. It's my understanding that Perl XS interface's array and hash routines, for the most part, requires the data to be Perl scalars, and I don't want that overhead. And finally, I want eventually to create a C library, libmarpa, which will be usable without Perl. 3.) For a Perl XS module, the interfacing code must be in C89, is my understanding. My tentative plan to have the core Marpa library (libmarpa) be C89 as well. I have toyed with the idea of having libmarpa use GCC extensions, however. I'd appreciate comments. Thanks, jeffrey kegler