Perl 6 - the future is here, just unevenly distributed

IRC log for #marpa, 2014-01-23

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

All times shown according to UTC.

Time Nick Message
02:03 ronsavage joined #marpa
05:19 jdurand joined #marpa
05:19 jdurand ronsavage: thx
05:22 ronsavage joined #marpa
05:41 jeffreykegler joined #marpa
05:42 jeffreykegler Phase 2 of the Marpa parse engine rewrite is a success and being wrapped up.
05:43 jeffreykegler The LR(0) states are gone, along with all their C structures, associated memory management, etc.
05:43 jeffreykegler Some of the complications they introduced into the code are still there, but that I will leave for later phases.
05:43 jdurand jeffreykegler: impressive -; many thx
05:44 jeffreykegler What remains is to put the packaging together for an developer's release.  During phase 2, I was testing by diff'ing test output against an output which had the "expected" errors.
05:45 jeffreykegler Now I have to get back to clean output from the test suite.
05:46 jeffreykegler The test suite tested the LR(0) states a lot, as a kind of "canary in the mine", to make sure the algorithm was intact, and of course all those tests are now useless and must be replaced.
05:46 jeffreykegler All in all, a couple more days of work before the release, and then the inter-phase ...
05:46 jeffreykegler during which I catch up with issues and pull requests.
05:47 jeffreykegler There's some very interesting stuff that's been done in parallel with my engine rewrite, and I look forward to merging the two lines of development.
05:57 jeffreykegler jdurand: ronsavage: I know in the past you have sent test reports on my developer's releases.
05:57 jeffreykegler This last one that I announced on IRC I haven't heard back about, which I hope means good news :-)
05:58 jeffreykegler Are IRC announcements of developer's releases not convenient for you?  If so, I can go back to announcing on the mailing list.
05:58 jeffreykegler I'm always interested in test results.
06:07 jdurand jeffreykegler: all test passed, but c.f. compiler warning within latest github issue
06:08 jeffreykegler judrand: Thanks, and thanks for filing the Github issue.
06:08 jeffreykegler Github is good at keeping me from forgetting :-)
06:09 jeffreykegler Another advantage is that it offers tracking for the filer of the issue, so you can remind me if I forget anyway. :-)
06:10 jdurand ok - I've juste test MarpaX::Languages::ECMAScript::AST test suite right now and this is also ok
06:10 jeffreykegler In my main development branch, for this rewrite phase, I exclude most commits that aren't relevant to the parse engine rewrite.
06:11 jdurand this test suite is special because of the automatic semi-colon insertion that is a truely peculiar case
06:11 jdurand have a nice day - having to take care of children - its morning here
06:11 jeffreykegler jdurand: Thanks
06:11 jeffreykegler !
06:12 jeffreykegler Anyway, resuming the previous thought ....
06:13 jeffreykegler I exclude non-relevant commits during parse engine rewrite phases because, until now, it's been possible that I'd have to back out the whole thing.
06:14 jeffreykegler The whole thing relies on the math, and I have confidence that I got the math down first, but there's always that possibility that when I go from theorems to C code, I'll discover something and have to back the whole thing out and re-think matters.
06:15 jeffreykegler In which case, all the other commits that got mixed in would be at high risk of being lost.
06:17 jeffreykegler Anyway, I know my delaying response on various pull requests and issues has requires your patience, so I thought I'd make some explanation.
06:17 jeffreykegler Thanks, everyone and good night!
06:18 jeffreykegler left #marpa
06:36 rns_ joined #marpa
06:36 rns_ Thanks for explaining.
06:37 rns_ It's all good — all that interesting stuff (1) can wait and (2) needs careful review.
06:42 rns_ Now testing if the log in another browser tab updates itself.
06:43 rns_ It did!
06:45 rns_ Just getting comfortable on the IRC. :)
08:25 LLamaRider joined #marpa
14:45 rns_ Hi LLamaRider, I've just made a comment on your gist with BasicAmbiguity.pl. Hope it helps. :)
15:31 LLamaRider thanks Ruslan, I'll look into it when I get untangled with $work :)
16:01 rns_ Sure, some goods news are waiting for you there. :)
17:10 rns_ LLamaRider: sl_panda1.t now uses closures from the grammar in traverser code. It can serve as It is more detaled example.
17:10 rns_ The whole thing is now at the branch per https://github.com/jeffreykegler/Marpa--R2/pull/93
17:16 rns_ The previous branch you've cloned and installed will most probably work, but if it isn't, you'd need to fetch the branch per the said PR.
18:39 jeffreykegler joined #marpa
19:39 jdurand joined #marpa
20:04 jeffreykegler jdurand: you there?
20:12 jeffreykegler jdurand: I'll just put this in the the backlog ...
20:14 jeffreykegler wanted to point out that MarpaX::Languages::C::AST is perhaps more remarkable this is realized.
20:14 jeffreykegler The history of C compilers goes like this:
20:14 jeffreykegler 1971 -- Ritchie writes one, using recursive descent
20:15 jeffreykegler mid-1970's -- Steve Johnson writes the Portable C compiler, based on yacc/LALR.  This starts a long period where right parsing dominates.
20:17 jeffreykegler 2006 -- LALR turned out to be very hard to use in practice.  In this year the flagship C compiler, GNU C, goes back to recursive descent
20:18 jdurand I am here
20:18 jeffreykegler 2013 -- the first new full C parser in ~40 years is written
20:19 * jdurand has a big smile
20:19 jeffreykegler jdurand: I was just giving a little history of C compiler-quality parsing
20:20 jdurand this is interesting
20:20 jeffreykegler In the meantime, a few utilities that parse some C appear like indenters, or Knuth's Cweb parser.  These are *not* full C parsers, and a compiler could *not* be based on them.
20:21 jeffreykegler Note that these utilites do *not* leverage the existing compilers.
20:22 jdurand Wes, I agree - Cweb was writen when, in the 80's?
20:22 jeffreykegler If you've ever glanced at GCC, you'll see why utilities do not base themselves on it's parser -- recursive descent for a large grammar is huge interwoven mess, and it's easier to kludge something from scratch
20:23 jeffreykegler First copyright date is 1987 for Cweb
20:23 jdurand about GCC I was a formal grammar of it - but never looked at the implementation of the parser
20:23 jdurand Cweb end of 80's - ok-  thx
20:24 jdurand I *saw* a formal grammar
20:24 jeffreykegler There were hopes that LALR/yacc could be leveraged for other tools, but it turned out to be even harder to work with than recursive descent.
20:25 jeffreykegler C::AST on the other hand, *can* be leveraged for new utilites, unlike any of the other compiler-quality parsers.  This is something very new.
20:25 jeffreykegler ... and I think something of real significance
20:26 jdurand that's why I wrote cscan - a new approach to analyse declaration et definitions
20:27 jdurand next is cpretty, which might be more appealing for the audience - automatic indenting is more attractive than dissecting I suppose
20:27 jeffreykegler Uptake for C::AST may be slow, because everybody's been taught for decades that this is impossible.
20:27 jeffreykegler ... and they are used to overreaching claims.
20:29 jdurand Today I worked on optimising it again - and got a significan speedup, to make a new release oday
20:29 jdurand today
20:29 jdurand the profiling is very different on Win32 v.s. Linux
20:29 jdurand but still at the top I see Marpa::R2::Thin::SLR::read
20:30 jeffreykegler There are things that can be done for speed -- among them going to pure C ...
20:30 jdurand No pb, I was just analysing the numbers
20:30 jeffreykegler but for utilities, current speed suffices I think.
20:31 jdurand I agree, and the important thing is functionnality up to now
20:31 jdurand current speed is acceptable
20:31 jeffreykegler Although speeding up the Perl wouldn't be a bad thing, either ... :-)
20:32 jdurand I have done most as I can, even the don't-to-it plyaing $_[] instead of shifting @_ -;
20:32 jdurand I conclude the remaining issues are algorithmic on my side, then Marpa
20:33 jdurand but again, this is a sort of paronoia conclusion
20:33 jdurand since current speed is ok, and I do not want to break something that is working
20:33 jeffreykegler Probably more important to create new utilities.
20:33 jdurand I have tested it on very large files written with truely complicated C
20:33 jeffreykegler Yes, like marpa.c :-)
20:34 jdurand with both gcc and cl: coherent results, all achived with acceptable speed
20:34 jeffreykegler And we did the Perl course earlier, didn't we?
20:34 jdurand and marpa.c just 1/2h ago
20:34 jeffreykegler Btw, thanks for the github issue re reserved name "member"
20:34 jdurand No pb - ok, let me do the release - I will continue cpretty this week-end, will have more time
20:35 jeffreykegler I do run c2ast.pl from time to time as a test, and had noticed it, but then forgot. :-)
20:35 jeffreykegler So, anyway, obviously I am very enthusiastic about C::AST and its potential.
20:35 jdurand one very exciting thing also is the notion of transpiling
20:35 jdurand that came out with the ECMAScript module
20:36 jeffreykegler Which now becomes possible for C for the first time.
20:36 jdurand Since Marpa exposes 100% of the grammar
20:36 jdurand exactly
20:36 jdurand I was thinking to quite amazing things like... c2pl, c2whatever
20:37 jdurand anyway... the door is opened and there are plenty of things outside - quite exciting
20:37 jeffreykegler yes, exactly, very exciting.
20:37 jdurand I am very happy to have genelrized this concept within ECMAScript module: I have written a script that is asking for G0 and G1 rules
20:38 jdurand and writes automatically a transpiling interface
20:38 jeffreykegler jdurand: interesting.  A transpiler framework?
20:38 jdurand Voila, you got it
20:39 jdurand I am sure this can be generalized, and my script is already agnostic
20:39 jeffreykegler Btw, c2ast.pl tests fine with my bleeding-edge Marpa branch.
20:39 jdurand it is in ECMAScript reposiroty just because I needed it
20:39 jeffreykegler And the major hacking for Phase 2 is done -- now it's just cleanup.
20:40 jdurand ah... very good, you are doing excellent work - I do not say because Marpa is my favoured module, but beccause manifestly
20:40 jdurand you have broken no other module
20:40 jdurand btw: https://github.com/jddurand/MarpaX-Languages-ECMA​Script-AST/blob/master/script/generateTemplate.pl
20:41 jeffreykegler Thanks for the link.  By the do you know about backlogging?
20:41 jeffreykegler You can go back and look at the public log for this channel.
20:42 jdurand 100 lines of perl code, example of a generated transpiling framework by this script: https://github.com/jddurand/MarpaX-Languages-ECM​AScript-AST/blob/master/lib/MarpaX/Languages/ECM​AScript/AST/Grammar/ECMAScript_262_5/Template.pm
20:43 jdurand Yes, I've read it - I see that rns_ and LLamaRider are doing very nice things
20:43 jeffreykegler Backlogging came to mind because I can go back and find these links -- the logs are good as reference.
20:44 jdurand Yes - you were right saying morritz did a remarquable thing: these logs are updated live -;
20:45 jeffreykegler jdurand: And I sometimes will talk to the channel when nobody is listening, assuming that folks will see it when they backlog.
20:45 jdurand please continue to do so
20:45 jeffreykegler Yes moritz has been very helpful to the Marpa community, and for some time.
20:46 jdurand as said rns_ today (got it from the logs indeed), this makes IRC comfortable
20:46 jdurand no logs was the *only* reason why I avoided IRC as much as possible... there is no reason now -;
20:46 jeffreykegler Yes, freenode has created a very nice environment.
20:47 jeffreykegler I don't use other IRC -- I've heard it's kind of the "Wild West"
20:47 jeffreykegler Anyway, I'm off to lunch soon  ...
20:48 jdurand Ah, ok - have a nice lunch!
20:48 jdurand I am doing "dzil release"
20:48 jeffreykegler AFK
20:49 jeffreykegler Thanks and goodbye
20:49 jeffreykegler left #marpa
22:49 ronsavage jeffreykegler: I did not see an announcement for V 2.079011. Test results:
22:50 ronsavage Counts: Tests: 542. Modules: 8. Passes: 8. Fails: 0
22:50 ronsavage Duration: 1 minute and 30 seconds
22:51 ronsavage Another success!
22:51 ronsavage And how can I stop my textural smiley being replaced by an icon?

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