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

Reply via email to