Thanks for the feedback. I decided to go with the Perl 5 standard for C -- C89, with some concessions to pre-ANSI compilers. A deciding consideration was that both Perl 5.12 and Parrot are C89 compliant, and this choice represents the decisions of a lot of very well- informed and smart people as to which C is right for leading edge development.
A second deciding consideration for sticking with C89: Those C extensions that I really wanted, I wanted not because they would enable me to do anything more, but because they would make my code look nicer. But I remembered Larry Wall saying somewhere that he did not try to create a beautiful language when he created Perl -- he tried to create an language that would enable its users to do beautiful things. On the other hand, I will use Glib, despite the porting problems that will create. Why the inconsistency? The decision not to use C89 would be very hard to undo. Library use is localized, and I will use a very limited part of the Glib interface. The decision to use Glib, even if I decide I need to undo it, can be justified as rapid prototyping. Thanks to all, jeffrey On Aug 18, 1:09 pm, jeffreykeg...@mac.com (jeffreykegler) wrote: > 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