svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com
Set by avar on 16 November 2006.
00:02 Debolaz joined, Psyche^ is now known as Patterner
TimToady putter: translating cbstream from Ruby to Perl has nothing to do with getting Perl 6 out. It would just be fun do. Which is I suppose part of why I'm trying to foist the job off on someone else. :) 00:03
00:10 DebolazX joined
putter :) I was thinking of it as "exercise, and help motivate improvements in, io/threading implementation and spec". 00:11
TimToady well, that too.
I was also thinking of it as a reward for finishing the reorg of S03 maybe. :) 00:12
except I should really write the official Perl6 grammar in Perl 6 rules...
putter any interest in a p6r version of the redsix grammar? i just converted it to m-expressions (eg, seq(ques(lit('foo')),r5('\w*'),sr('ws'))), so it could be easily converted to p5r+rules, or to p6r, but... a gang of armored playful yaks was just now leaving be wondering whether its worth finishing. 00:18
redsix was basically a rip and simplification of the Parser.hs grammar.
an official p6 grammar would be neat. 00:20
TimToady I would find the redsix grammar interesting, I think, if only to think at it from a slightly different direction. 00:23
thinking about this is why today's patch to S05 talking about @(<...>) as a convenient way to write lots of quoted tokens without extra quotes. 00:24
putter perspective++. ok, dusting... 00:25
ingy thankfully seems to have found a md5.js that supports utf8 00:28
00:38 b00t joined 00:44 justatheory joined 00:45 gnuvince joined 00:47 gnuvince left 00:58 BooK joined 01:08 stevan__ is now known as stevan
lisppaste3 putter pasted "crufty draft of a m-expr p6 grammar" at paste.lisp.org/display/36004 01:23
putter let's see, converting to p6r's... 01:25
01:28 luqui joined
avar ingy: you mean one that knows to convert characters to their respective bytes? 02:05
TimToady: re before: have you looked at the perl6.pir rules grammar? might be relevant 02:07
hrm, and regarding that, parrot has a very nice facility where you can easily see how your rules do against a given input text, what's the equivalent stuff in p6/pugs?
02:08 aufrank joined
putter does p5 has a "completely backslash preserving" quote mechanism? ie. is there any way to avoid \\\\ "multiplying slashification in strings hell"? XS would be fine...;) 02:32
svnbot6 r15148 | putter++ | perl5/Regexp-Parser-ConvertToSix - pod corrections, and a bugfix. 02:35
ingy avar: yes 02:36
avar ingy: I can't belive anyone got that wrong 02:38
ingy well some implementations don't even think past ascii 02:40
and some make unicode be utf-16
and some, don't even work for ascii :)
02:45 dmq joined 02:56 __Ace__ joined
__Ace__ anyone here, or even better, Larry himself, can say if Larry Wall wrote this: 02:57
en.wikipedia.org/wiki/Black_Perl
svnbot6 r15149 | putter++ | perl5/Regexp-Parser-ConvertToSix - bugfix. 03:03
allbery_b thinks if he wanted to own up to it he'd've done so by now... 03:05
luqui putter, single-quoted heredocs in p5 completely preserve backslashes 03:10
I don't think anything else does
allbery_b q()?
as long as you can avoid using the delims...
luqui allbery_b, q doesn't do it 03:12
uh, do we have a p5 evalbot in here?
allbery_b hm, right, nemmind 03:13
putter both sial _and_ paste.lisp are down?? curious 03:27
luqui: ah, right. :) my thanks. 03:28
hmm. is there a _working_ pastebot? the haskell bot doesn't seem to do #perl6... 03:30
allbery_b huh. I know paste.lisp.org has tended to be unstable on weekends (that's one reason the haskellers consed up hpaste) 03:37
suppse you could bug glguy to add #perl6 support to hpaste :) 03:42
allbery_b just pinged jeremy about sial.org/pbot, sadly he seems to not be around (maybe busy fixing it...) 03:43
03:47 nperez joined
svnbot6 r15150 | putter++ | misc/pX/Common/yet_another_p6_grammar - created. redsix grammar converted to p6 rules, mainly to be read by humans. 03:48
putter thanks allbery_b. I went ahead and committed it.
luqui: re p5 evalbot, I've never seen one 03:52
03:57 pasteling joined
putter avar: re "parrot has a very nice facility where you can easily see how your rules do against a given input text, what's the equivalent stuff in p6/pugs". 03:57
allbery_b jeremy responded and is fixing sial.org/pbot 03:58
putter none. :/ for a long time, pugs was using parrot's rules engine. but it had problems, both itself, and in interfacing with pugs. it was also a maintenance pain. so pugs switched to using ...something, I'm not sure what, on a linked perl5. my very very fuzzy impression is that is our current state. 03:59
allbery_b++ :)
and of course jeremy++ 04:00
allbery_b aaaand it's back. yay 04:01
putter :)
avar: the lack of a fast complete rules engine has been a project obstacle since summer 2005. 04:03
though now that perl5 is linked to pugs by default, there is really no excuse. ;)
(its been a long time since I last looked at the state of rules on parrot) 04:05
If someone knows the current state of p6 rules support (what is being used,, etc), it would be nice to capture that in ./project_planning/STATUS (under =Rules:). 04:09
avar it seems parrot / pugs interation is very limited;/ 04:16
search.cpan.org/src/CHIPS/parrot-0....pge/STATUS 04:17
lambdabot tinyurl.com/ytklre
avar putter: pretty complete
do you know what the problems were with using parrot? 04:18
04:19 kanru joined
putter audreyt did some excellent work linking the two. for long time, pugs used parrot, either linked or external, to do rules. but the parrot apis kept changing, and needed internals were not yet implemented, so it was eventually punted. or at least, that's my fuzzy understanding. 04:19
avar I see 04:20
putter well, the person to ask is audreyt. for myself, the couple of times (again, a long time ago) I tried to do something non-trivial on it, I found it buggy and incomplete. the buggyness being the main difficulty. 04:21
avar putter: I've been looking briefly at the current status of the p6-on-parrot project and it's just a PIR emitter (big "just"). Parrot is getting somewhat more complete
e.g. TCL is getting into a working state, they still don't have sufficient support for objects judging by some comments by the people trying to implement ruby on it. But generally getting there 04:22
putter: What sort of bugs? And in what?
putter note that there are different things going on - p6 directly on parrot; pugs supporting parrot as a backend; and somewhat different than those two, pugs using parrot's rules engine. 04:23
avar I've been poking it recently, writing a compiler on it that is, and the biggest problem I'm having is that there are no real docs for anything which makes stuff hard
I started trying to write some, but I'm still trying to figure out how to do the stuff I'm trying to do:)
but that's a very different area from embedding parrot stuff
putter: yeah, I know. Very different stuff;) 04:24
putter re "TCL is getting into a working state"... yes, but that sentence has been true for several years now. when some test suite created independent of parrot is being passed on parrot, _then_ my ears will perk up. until then, it's hard to guage from the outside how much progress parrit is/isnt making. 04:27
04:28 Ziggy6 left
putter I wrote a hack which mutated the ruby and parrot c implementations to create a combined hybrid. so one could migrate code from the ruby impl onto parrot, while keeping all the ruby tests working. 04:28
it was possible to move across fixnums, modulo some minor math things that parrot hadn't thought about yet and the placeholder wasn't quite right. but for anything else... the parrot side just wasn't there yet. 04:29
04:31 Yappo joined
putter avar: re what sort of bugs - at the time, it wasn't possible to write a grammar for p6 rules which actually worked. 04:33
s/wasn't possible/was sufficiently painful as to be punted/ 04:34
04:34 mako132_ joined
putter that's the kind of thing it would be nice to have attached to a test, ideally automated. so something can keep an eye on it and pop up a half year later and say "you know that thing you put on hold a half year ago because x was working, well it's fixed so you can proceed now.". 04:35
instead what happens is people have wandered off, or have forgotten why something stop being pursued, or don't recall precisely what the obstacle was. 04:37
avar hrm a grammar for p6 rules? 04:40
putter Hmm, if there was one change I would me to an anarchistic development culture, it would be a community expectation that everyone keep voluminous notes.
avar and what do you mean by tests outside of parrot? somebody actually using it "for something serious"? 04:41
putter s/I would me/I would like to see/
04:42 jql joined
putter re "hrm a grammar for p6 rules?", yes? my impression is pge has one currently in the test suite, though I don't know if the engine actually uses it. 04:42
re "tests outside", eg, tcl passing the main tcl test suite, rather than a tcl-on-parrot specific test suite. 04:43
the problem being that tests written in a particular environment tend to cleave to that environment. you generally dont see a large body of tests which the environment doesnt have any hope of running. usually you only get that if the tests were written for a different, more capable environment. 04:45
the pugs test suite tends to lead the pugs implementation by a bit (and the spec too), but areas where pugs is weak don't have extensive tests, and since pugs tends to drive clarification of the p6 spec, don't even have detailed specs. 04:47
for non-pugs impls, you can helpfully say "we are passing n% of the pugs test suite", thus comparing oneself to pugs. but pugs saying "we pass n% of the pugs test suite" tells very little about how close pugs is or isn't to fully implementing perl6. 04:49
allbery_b ...the flip side of which is that writing tests to spec is problematic when the spec suddenly changes
04:49 [particle] joined
allbery_b (consider the smartmatch stuff from a couple weeks ago) 04:49
or the ongoing discussion about how Num and Int are related, if at all 04:50
putter sure. though doing the test changes doesn't actually take that much people time. at one point the spec was both in flux, and people were updating the test suite within a day or two (which seemed a bit *too* fast, as sometimes things hadn't quite settled down yet). but with fewer people working on tests, the turnaround is a bit slower. 04:51
allbery_b doesn't take much time, does take attention 04:52
someone being willing to go through and fix any tests which use the altered behvior (which might not necessarily be tests *for* that behavior...)
putter right 05:02
I'm still rather unclear on why pugs development is in this lull.
perhaps when there wasn't a lull, we didn't build a critical mass of lambdacamels to keep pugs going when audreyt had to cut back, and we fail to get her funding so she could cut back less over the two years. 05:05
but that's only part of it
05:05 graywhite joined
allbery_b maybe we're at the point where all the "fun" stuff is done and only the hard/painful stuff remains 05:06
putter things ended up feeling... mushy. things like alternate backends eventually exhausted their low hanging fruit, and blocked on pugs progress. but they masked that we had a serious bottleneck. 05:07
allbery_b open source development does suffere from a certain amoutn of that ime
putter re fun/hard, it a way, but I think it a transient condition
s/in a way/yes/ :) 05:08
allbery_b noted that a sizeable-looking chunk of the test suite is waiting on structure equivalence tests working
putter pugs becoming able to output ast's with oo info would unblock alternate backend/runtime development.
and we could really bang on it and address problems, rather than hitting bugs and thinking, well, all that code will go away "rsn". 05:09
an official p6 grammar could also wake things up, by making writing front ends fun again. past frontends have had to "make it up as they went along". which can leave one feeling, we're spending lots of time on a throwaway hack which can't even manage to do what pugs already does. 05:11
momentum could be important too. when there are lots of people around and working, things are easier, and more fun. and there are lots of opportunities scattered around for people to do something, and see it impact the collective progress. 05:15
now if someone asked what they can do to really help, to see themselves making a difference... 05:16
if they are a good at haskell as audreyt, gaal, etc, it's easy. maybe. help with the oo'ing of pugs. though that might be an inherently mostly-audreyt activity. 05:18
allbery_b is not too horrid at haskell. 05:19
otoh I know very little about pugs internals, and my occasional attempts at hacking on it usually come to a sad end
putter other than that, almost everything is "well, you can do this little thing, which sort of makes no difference now, but sets us up to move faster when things start moving at a later date". perhaps? so people wander off.
I was wondering the other day if one could have a Foo.txt file for every Foo.hs file. Say modeled on the wikipedia Discussion/Talk pages which support the articles. 05:21
So the "why"s could be included, without cluttering up the code. Even if they get out of date (they should of course be dated), they provide clues. 05:22
And when one puzzles over something for a long time, and finally figure something out, others can benefit rather than hitting the same puzzles. 05:23
I could drop a recipe in Prim.hs one how to move prims out to Prelude, and problems one may encounter and things one should know. right now, there is no place to capture any of that. 05:25
it's all less important when one has a 24/7 knows-everything and-can-figure-out-the-rest "is on #perl6 even when sleeping" audreyt oracle. then who needs docs? but that's a system that is exhausting for audreyt, and doesn't degrade gracefully. 05:28
allbery_b: one possibility might be to scrape down the #perl6 logs, and search around. audreyt has given the occasional "tour of pugs and answering of questions" for someone starting pugs hacking. might be able to find it. might be useful if found. 05:31
there's a ./util/get-irc-logs.pl 05:34
05:53 rhizo joined, rhizo left
putter looking at S03... where are the current S03 sources? don't seem to be on pugs. I'd like to do a "look at this alternate/additional organization" demo/prototype. 05:56
Perl6-Bible is way out of date 05:59
avar Appropriate given the name?:) 06:00
putter: re parrot: what does a grammar for p6 rules matter to embedding parrot? maybe I'm getting you wrong 06:02
putter: re tcl: they do 25% of the tcl official test suite, it was 18% a few weeks ago
allbery_b avar: other way around, wasn't it? they were embedding parrot to get p6 rules 06:03
avar I peeked at it and a lot of stuff is just as a result of not having implemented the tcl stdlib which is just grunt work
allbery_b: Yeah, but a grammar *for* p6 rules only matters for parsing the rules format, and if you embedded p6 it would do that, just not with a p6 grammar internally
just grunt work = stuff like stat, mtime and such 06:05
but yeah, point about tests taken:) 06:06
putter avar: re "grammar for p6 rules", i used it simply as an example of a grammar which was not tiny, but still fairly simple and not big. and which pge was variously choking on. 06:09
avar Ah, in that case it has several big grammars which are working atm 06:10
TimToady putter: perlcabal.org/syn/S03.html is one place
lambdabot TimToady: You have 2 new messages. '/msg lambdabot @messages' to read them.
Title: S03
avar I've been poking it for non-trivial stuff
putter might well work better today, but my guess is the pugs-pge linkage has decayed for lack of continuous maintenance.
avar hrm, indeed
svn.perl.org/parrot/trunk/languages...ression.pg <- example of a non-trival and working grammar 06:12
lambdabot tinyurl.com/25hrk9
putter TimToady: but no pod. i found cia.navi.cx/stats/project/perl6 , but have been puzzling over how to get at the actual pod.
lambdabot Title: perl6 - CIA
avar svn.perl.org/parrot/trunk/languages...r_rules.pg svn.perl.org/parrot/trunk/languages...r_optok.pg # more
lambdabot tinyurl.com/32jtha
avar so yeah, if it were to be embedded then its grammar engine could provide a very complete implementation for most stuff 06:13
TimToady pod is at svn.perl.org/perl6/doc/trunk/design/syn/S03.pod
avar I really do think that what would make p6/parrot dev go smoother at this point were to be if people started using it for serious stuff 06:14
I think the lowest hanging fruit in that respect is probably getting people using the grammar engine, perhas as replacement for the current p5 parser stuff on CPAN
06:15 BooK_ joined
putter avar: re expression.pg... hmm... very neat... only 2 rules though... backtracking was one of the places pge (long ago) had "bang head against wall" issues, 06:15
TimToady: my thanks! 06:16
avar I don't belive rule {} has any problems
putter token doesn't backtrack, no? 06:17
avar Yeah, but they don't have issues with : that I know of
Yeah, token { y hlo thar } just means regex { y : hlo : thar } 06:18
uh, the other way around:) 06:19
putter so... neat grammars... next question is do they actually run, and against what? one of the things redsix reminded me of is that you never really know if a parse is correct until you emit code for it and it passes the test. 06:21
s/neat/very neat/ 06:22
re p6 grammars. the tcl I gather runs against the tcl suite. :)
avar yeah, see comment by me:)
they run, on friday I build a simple tool to parse CREDITS files, like the one parrot and linux have 06:23
do you want to take a look?
putter sure! 06:24
avar hrm, wait a sec 06:25
aevar.net/Credits/ # directory aevar.net/Credits.tar.gz # tarball
lambdabot Title: Index of /Credits/
avar aevar.net/credits.txt # this is the PGE output 06:26
or a rendering of it, i.e. what you'd be dealing with were you to embed it
svn.perl.org/parrot/trunk/CREDITS # I.e. I ran it on this.. 06:27
putter looking...
avar aevar.net/Credits/src/CreditGrammar.pg # which using this...
turnet it into that .txt dump
which of course is just showing you the output of PGE/Dumper.pbc 06:28
what I haven't done yet and which is on tho TODO is to write an emitter for that
that's the src/parse2past.tg 06:29
putter hmm, random thought, does pod have a "semicut"? ie, here is some code, compile it, _and_ include it in the pod?
avar .tg is what the tree grammar engine uses, it's where you take PGE nodes like that and turn it into *not quite sure yet* something parrot understands
putter: no, nothing of the sort 06:30
pod6 could do it with its plugin thingys I think, or maybe not
putter for grammars and other cases where the code is nice compact and understandable, one might wish to have ones pod consist of the code, plus clarification/commentary/annotation, without having to dup the code. 06:33
random thought, you might not want to have <credit>+ and <creditline>+. with token it doesn't matter, but... 06:34
s/have/have both/
avar it was really just thrown together and I'm pretty new at rules, but why?:) 06:35
putter (a+)+ has unfortunate backtracking performance. and may leave folks confused about where the pile ends up (so, for instance, if that ever changes, the surrounding tools may break when the pile moves). 06:37
06:38 leed joined
putter (though a good optimizer (eg, perl's?) will avoid the performance hit) 06:39
parse2past.tg seems the scariest bit 06:41
avar yes, indeed 06:42
it's not finished
putter have you tried running the grammar on one of the p5-based rules engines
?
then you should get a nice Match tree back... :) 06:43
06:44 iblechbot joined
avar putter++ # making my grammar 11% faster by avoiding backtracking 06:45
nope I haven't
what are those engines?:) 06:46
that would be nice though, because the real PITA with parrot seems to be what you get after rules
writing a compiler for it basically involves building a match tree, you then grab nodes from there and emit PIR for those nodes 06:47
which is sort of low-level for most stuff
putter avar: they are both token's, so I the gain was perhaps from something other than backtracking? or am I confused about what token means... 06:50
do tokens not avoid backtracking in repetitions? 06:51
avar it apperas I've invented a very inaccurate way to measure performance:) 06:52
putter I'm sorry, but there *is* some prior art on that... why I myself... 06:53
re PITA, yes. most of my own regexp engine hacks have included an old (damian?) idea that the Match's in the match tree should remember what rule created them. completely non-spec I think. but it makes using the match tree so much easier... 06:54
re what are they (the p6 rules engines on p5), ... anyone? could we get this written down in STATUS? I've little idea. 06:56
avar running it agains the pge test suite would be neat 06:57
or having a unified rule test suite
putter <unified rule test suite>++ 07:00
perl5/Pugs-Compiler-Rule 07:02
search.cpan.org/~fglock/Pugs-Compil...er/Rule.pm
lambdabot Title: Pugs::Compiler::Rule - Compiler for Perl 6 Rules - search.cpan.org, tinyurl.com/2z52mv
avar avar@Arsia:/var/src/parrot/languages/Boob2$ perl p5.pl src/CreditGrammar.pg CREDITS 07:03
'::' not implemented at /usr/local/share/perl/5.8.8/Pugs/Emitter/Rule/Perl5/Ratchet.pm line 662.
ah, just chocking on grammar .. :)
putter :( 07:06
svnbot6 r15151 | putter++ | project_planning/STATUS - added pointer to Pugs::Compiler::Rule.
avar it actually handles it perfectly
probably an issue with the embedded POD
hrm, I was misusing slurp() in list context, but it has issues with pod too 07:09
putter hmm, does pod have an anchor concept? ie, create a non-section-heading target for a link? 07:11
avar no 07:12
putter :(
someone remind me why we are using a format which fights organization to organize our thoughts? 07:13
how about a nice wikipedia format?
allbery_b I think the theory is that if it's worth linking t it's worth including in a table of contents 07:14
avar putter: being responsible for part of the mediawiki syntax I can tell you it's anything but nice:) 07:15
putter: uh, it fails horribly on that grammar;)
the error message was just so large that I thought it was the output itself:) 07:16
07:23 nipra joined
putter re wikipedia, I looked like it did not have anchors... but finally found it. though creating an anchor requires writing the html. 07:25
re fails horribly, :(. and fglock is on vacation. there may well be other p6 rules implementations around, but... ? 07:27
I'd offer a p5-regexp-plus-rules, but it was never wrapped up for easy use. :/
not the time of day to ask. you might try 8ish hours from now. 07:28
putter 's S03 reorg for clarity dies on the rocks of pod linkage limitations (no anchors). :( 07:29
been wondering if it was time to start writing "Perl 6 - A Reference Manual" on a wiki somewhere...;) 07:30
end of day for me. good night all & 07:33
audreyt: fyi, autrijus.org isn't pinging. gets to 220-128-1-73.HINET-IP.hinet.net. 07:39
avar: re responsible, what part? 07:41
avar some include macro stuff, 07:43
the citation stuff too 07:44
putter audreyt: no anchors in kwid either? use case is you want to link to a "section", which happens to be organized as part of a list. such as an operator definition in S03. 07:45
neat
sleep &
08:09 Southen joined 08:12 VanilleBert joined 08:18 REPLeffect joined 08:20 cookys joined 08:27 Southen joined 08:33 Ziggy6 joined, Ziggy6 left 08:45 VanilleBert left, Belaf joined 08:48 dduncan left 08:50 DHGE joined 09:13 elmex joined 09:20 devogon joined 09:27 TreyHarr1s joined 09:39 Southen joined 09:57 nipra joined 10:03 chris2 joined 10:27 Southen_ joined 10:57 luqui is now known as |uqu| 10:58 iblechbot joined 10:59 |uqu| is now known as luqui 11:03 luqui joined 11:06 luqui left 11:12 Southen joined 11:45 nipra joined 12:33 elmex joined 12:39 luqui joined 12:48 nipra joined 12:57 baest joined 13:01 REPLeffect joined, bennett joined 13:23 nipra joined 13:25 buetow joined 13:35 bennett_ joined 13:39 larsen_ joined 14:02 ruoso joined 14:06 bernhard joined 14:14 weinig|away is now known as weinig 14:20 VanilleBert joined 14:35 rindolf joined 14:50 marmic joined 14:52 Limbic_Region joined 15:08 jferrero joined 15:20 REPLeffect joined
svnbot6 r15152 | putter++ | project_planning/STATUS - added links to parrot pge rules engine status. 15:48
15:50 weinig is now known as weinig|away 16:20 Southen joined 16:24 rashakil_ joined 16:25 chris2 joined 16:58 Schwern joined 17:03 ofer1 joined 17:56 xinming joined 18:17 cdfh_ joined 18:23 cdfh__ joined 18:32 seano joined 18:34 elmex joined 18:38 cdfh joined 18:44 cdfh_ joined 18:50 cdfh joined 18:55 cdfh__ joined 19:01 cdfh___ joined 19:02 ofer0 joined 19:06 cdfh_ joined 19:12 cdfh joined 19:18 cdfh__ joined 19:33 VanilleBert joined 19:51 VanilleBert left 20:34 dc3aes left 20:56 weinig|away is now known as weinig 21:37 kanru_ joined, devogon joined 21:39 Aankhen`` joined 21:42 mako132_ joined 21:55 justatheory joined, thepler joined 22:18 mbradley|afk is now known as mbradley 22:32 weinig is now known as weinig|away 23:12 Psyche^ joined 23:20 Psyche^ is now known as Patterner 23:33 bsb joined 23:46 weinig|away is now known as weinig 23:51 dduncan joined 23:54 weinig is now known as weinig|away