Perl 6 - the future is here, just unevenly distributed

IRC log for #marpa, 2014-08-31

| Channels | #marpa index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:32 jeffreykegler joined #marpa
05:08 jeffreykegler I'm working on comparisons of Marpa with recursive descent, which is its primary rival at this point.
05:09 jeffreykegler One topic of investigation is "Does Marpa really have the speed to be the basis of a production compiler, like recursive descent?"
05:10 jeffreykegler I'm focusing on JSON, because it is small, well-understand and has a two high quality recursive descent implementation in Perl -- JSON::XS and JSON::PP
05:11 jeffreykegler JSON is a very simple, stable language, one with very little syntax, so the challenge for Marpa is to stay competitive -- this is very much recusive descent's home turf.
05:12 jeffreykegler To do the comparison, I coded a JSON parser directly in C, using Libmarpa:
05:12 jeffreykegler And the numbers:
05:12 jeffreykegler JSON::PP 0m7.205s
05:13 jeffreykegler JSON::XS 0m2.532s
05:13 jeffreykegler Libmarpa 0m4.968s
05:16 jeffreykegler Other tests put Libmarpa at 0m3.755s vs. JSON::XS at 0m3.276s
05:20 jeffreykegler The 2nd set of numbers, showing a 25% penalty for Marpa over the very minimal recursive descent parser seems more typical.
05:20 jeffreykegler I'll work these up more carefully -- you'll be hearing more about this.
05:23 jeffreykegler But the bottom line is that for large languages, and in the context of IO and post-processing, Marpa's close enough to let other factors become deciding -- factors like Marpa is syntax-driven, whereas the recursive descent parsers must be hand-written.
10:01 rns joined #marpa
10:03 rns Great stuff, the new numbers and the code are very tempting to see.
10:04 rns On a (somewhat) related note, I modifed the bench mark mentioned in http://irclog.perlgeek.de/​marpa/2014-08-28#i_9258765
10:06 rns to run across exponentially growing set of input and then tested the linear fit of the time/input length dependency
10:07 rns and it fitted nearly perfectly, just like JSON::XS and JSON::PP and unlike JSON::Decode::Regexp, which I have to say,
10:08 rns cannot handle an input larger that 600k for me on a 4Gb machine under windows.
11:07 rns joined #marpa
11:08 rns Under cygwin, I must say, on windows it did much better.
16:32 jeffreykegler joined #marpa
22:05 ronsavage joined #marpa

| Channels | #marpa index | Today | | Search | Google Search | Plain-Text | summary