Re: recdescent 2.0 and Perl 6

[email protected] (Aamer Akhter) Thu, 13 May 2004 13:23:45 -0400
Newsgroups perl.recdescent
Message-ID <[email protected]>
sorry about the late response

Damian Conway wrote:
> Aamer Akhter wrote:
> 
>> ok, this may be a really dumb question, it's not meant to be a 
>> political one, just to help me plan.
>>
>> We're starting a project that includes a parser that would convert a 
>> huge swath of multi-device output (output of explicit commands) to an 
>> XML tokenized form. More than likely, perl would run in an embedded 
>> from from tcl (this is the reality we're dealing with-- but we're 
>> hoping parrot can save us ;-))
>>
>> Some of this output is potentially very large (although repeating). 
>> I've written parse::recdescent grammars for some of this output in the 
>> past but speed was the biggest issue. Has anybody done speed 
>> comparisons between Perl6::Rules and prd?
>>
>> I realize that perl6 is still evolving, but at least we can change our 
>> copy of Perl6::Rules on our schedule, if the benefits outweigh the 
>> shifting sands... 
> 
> 
> Do NOT use Perl6::Rules for production code. The module is only at 
> release 0.03, which is *far* too early to rely on it.
> 
> Apart from the fact that the rule syntax and matching semantics for Perl 
> 6 are still changing occasionally, the module still has a raft of known 
> bugs and limitations. Many of these are in fact bugs and limitations in 
> the underlying Perl 5 regex engine (which has apparently never been 
> pushed quite as far as I'm pushing it now). Some of the most serious 
> underlying bugs will probably not be fixed in the foreseeable future -- 
> perhaps not before perl 5.10 is released, maybe not even then.
> 
> All of which means Perl6::Rules is NOT production-ready, and unlikely to 
> be production-ready in any reasonable time-frame.


Damian, thank-you for writing and supporting prd. Your point about the 
evolving/alpha state of Perl6::Rules is taken. I am progressing with the eval of 
  prd for our uses.

Thanks for the <autotree> command option. :-)

> I am currently a little preoccupied with the upcoming conference season, 
> and with working on Exegesis 12. At the same time I *am* reassessing the 
> Parse::RecDescent and Perl6::Rules modules to determine how best to 
> proceed.
> Options include:
> 
>     * Working (with P5P) to resolve the major bugs in Perl6::Rules
> 
>     * Implementing an entirely new and separate regex matching engine
>       to sit under Perl6::Rules
> 
>     * Proceeding with my original plans to improve Parse::RecDescent
>           performance
> 
>     * Proceeding with my later plans to create a new, faster
>       Parse::FastDescent module
> 
>     * Giving up and moving to Tibet ;-)
> 
> However, I will not be making any decisions on this until at least 
> September,
> when I return from my forthcoming speaking tour.
> 
> In the meantime my best advice remains the same: if you can't live with 
> the performance of Parse::RecDescent, and can't tweak your grammar to 
> improve that performance sufficiently, consider using Parse::Yapp or 
> perl-byacc instead.

Those are excellent modules, and we may eventually have to use them or plain old 
  regex in some extreme cases. The hope is that we can create a frontend that is 
agnostic to which particualr parser is being used. The front end will use some 
kind of parser/grammar registry to match parsers to the atomic value the user is 
really looking for.

> Sorry not to be of more help,
> 
> Damian