pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
diakopter PerlJam: I still don't see your point :) ... do you mean that a }\n in a semi-list should or shouldn't terminate a statement in a semi-list? 00:00
PerlJam diakopter: I would say it should. 00:01
diakopter PerlJam: oh.. ;) my first guess was that it shouldn't
00:02 toddr joined
PerlJam cognominal_: I think <before: ...> is still zero-width (but capturing). 00:02
diakopter: well, don't take my word for it, wait for TimToady to wake up and tell you definitively :)
diakopter PerlJam: or I guess I could take 30 min to find it in STD.pm 00:03
if it's there 00:04
PerlJam yeah, STD.pm is still unfleshed in a few places
cognominal_ PerlJam: that would make sense, but the examples in S05 don't support that thesis 00:07
PerlJam cognominal_: well, <? and <! guarantee zero-width, there's nothing that says a rule that starts with an alpha can't be. 00:09
00:09 wknight8111 joined
cognominal_ zero width but capturing. An interesting beast indeed. But that would desserve some explicite syntax. 00:09
diakopter cognominal_: perlcabal.org/syn/S05.html#line_1537 00:10
lambdabot Title: S05
cognominal_ bed time. 00:16
00:21 japhb joined 00:41 wknight8111 left
scrottie Tene, re: why get pugs running, at the risk of having an opinion (smelly), all of my experience with virtual machines tells me that Parrot is a foul beast. The idea with pugs was to rewrite perl 6 in pugs and make it self hosting; Larry actually started that. In the interest of not having parrot be a central building block (it's okay if it's a part... eggs in oen basket and all that), I wanted to see if I could help with that. 00:41
alright, with irssi, long lines just don't go through at all? 00:42
or am I lagged? blargh. not used to this beast. used to irc-II, but mine has been coredumping lately. i'm guessing that means it's out of date.
diakopter scrottie: we got the long msg 00:44
PerlJam scrottie: pugs fell down a bit in that in order to write a language in perl 6, you need a parser that parses perl 6; pugs punted on the parser.
diakopter PerlJam: I wasn't aware of that... i'm curious; explain more?
00:45 pbuetow joined
scrottie ooops. typing doesn't knock irssi out of backscroll mode, apparently, and backscroll mode looks like regular mode. hehe, I'm so stupid. 00:46
diakopter so very :P
00:47 zaphar_ps joined
allbery_b that's tjhe second person I've seen today who did that 00:47
diakopter scrottie: there are actually other attempts... smop/sm0p promises to reignite in early July when ruoso finishes his $project... also there's the measly parser/interpreter I built and am actively working on
scrottie herding frickin' cats. not only does every developer insist on a different version control system, no two people will commit on the same project. 00:48
diakopter well, there's also elf, which is a very fast implementation on Perl 5 00:49
00:49 bacek left
scrottie really! 00:49
diakopter mncharity runs elf 00:50
scrottie what state is that in, and whose project is that? (I'm guessing their name is more unique and more easily googled than the project name.)
allbery_b @larry wants multiple implementations
lambdabot Maybe you meant: arr yarr
diakopter elf is fairly complete, actually... I just can't read the code for the life of me or else I'd help out :) 00:51
scrottie allbery_b: one person projects are okay; multiple people doing the same work in one person projects is okay; people being unrealistic about the scope of work and trying to do everything rather than a reusable piece is problematic. not to judge ya'll. just sayin'.
PerlJam diakopter: The idea for pugs (as I understood it), was to turn Parsec into Perl 6 parser, but no one ever quite got around to it. But in the mean time, pugs ended up being a decent adhoc parser for parsing most of the "easy" perl 6 syntax
diakopter PerlJam: thx; I'll read up on Parsec
00:52 wknight8111 joined
diakopter scrottie: pmurias and moritz_ help out with elf 00:52
allbery_b scrottie: everyone has to redo the easy stuff in order to get to the hard stuff which everyone keeps running around on
scrottie hits for mncharity+elf are primarily on irc logs. does anyone know that homepage, offhand?
diakopter dare I ask on which things rakudo will run around 00:53
scrottie: the homepage is the irc logs :)
scrottie allbery_b: makes sense.
diakopter: and the source code is in a shar archive that people email around?
diakopter scrottie: it doesn't have a homepage, I don't think... the source is in the pugscode svn, like every implementation but rakudo 00:54
scrottie neato! so I already have it!
diakopter scrottie: there is also MP6/KP6, which is a (bootstrapped!) implementation in Perl 5... but apparently (I can't substantiate) it turned out to be quite slow... (probably not nearly as slow as yap6 will be).... fglock built that. 00:55
yap6 is my little toy bitbox 00:56
all it does is syntax check and tokenize at the moment.
00:57 simcop2387 left 00:58 simcop2387 joined
diakopter so anyway, in order of activity, it goes rakudo, STD5 (Larry's parser), elf, yap6, smop, kp6, pugs.... but smop will shortly be 2nd/3rd again, I'm sure. in order of completeness, it goes pugs, elf/rakudo (not sure on that order), kp6, smop, yap6 (probably shouldn't be on this list yet)... I'm sure I've left out something somewhere... 01:01
scrottie diakopter++ 01:02
diakopter: mind if I quote you extensively to use.perl.org?
diakopter scrottie: hrm
PerlJam diakopter: how exactly are you defining "completeness"? 01:03
diakopter PerlJam: in the usual hand-wavey way
PerlJam As Larry says, each implementation has different areas of focus.
diakopter PerlJam: probably approximately to amount of work put in to-date...?
scrottie diakopter: "I'd prefer not" is valid and acceptable. But, imo, this is very good info. 01:04
diakopter scrottie: I don't mind, no... just let me know the url so I can post comments/clarifications if necessary :P 01:05
or retractions
:D
pasteling "scrottie" at 130.13.73.133 pasted "quoting" (24 lines, 1.7K) at sial.org/pbot/31366 01:06
scrottie that's my draft
not going to do too much with it... just log it as a personal blog.
feel free to edit and nopaste again.
pmichaud I thought that larry's tokenizer is in P5...?
diakopter Larry's program is more than a tokenizer.. it produces nested Match objects.. it's a full-fledged parser.. and yeah it runs on P5, and it's not in v6/ ; it's in src/perl6 01:07
scrottie: here's some more history on STD5
at one point TimToady had a program that would convert STD.pm to a dialect pugs could understand... but nowadays his script takes it all the way to Perl 5 01:08
scrottie diakopter: this is the program he presented at YAPC::NA this year? looked pretty p6 to me, with :stuff and whatnot.
diakopter STD.pm is in Perl 6 01:09
pmichaud what it parses is P6, yes.
but the program itself is P5.
PerlJam uses Moose even
pmichaud by that reckoning, what rakudo and the parrot compiler tools parse is P6. :-)
diakopter scrottie: what you saw on the screen was STD.pm, I'm pretty sure. 01:10
the Perl 6 standard grammar (slash parser generation instructions)
scrottie first line of Perl-6.0.0-STD.pm is: grammar Perl:ver<6.0.0.alpha>:auth<perl.org>; 01:11
I think he said something about this being marked .alpha, but in the p6 it parses, that's not legal.
pmichaud afaik, nothing actually runs STD.pm yet.
PerlJam not an unmodified STD.pm 01:12
diakopter scrottie: there shouldn't be a Perl-6.0.0-STD.pm
01:12 Auzon joined
scrottie I'm looking at pugs/src/perl6/Perl-6.0.0-STD.pm ... worng thing? 01:12
it looks awfully familiar...
pmichaud I don't see a Perl-6.0.0-STD.pm in the repo. Just STD.pm .
however, STD.pm does start with grammar Perl:ver<6.0.0.alpha>:auth<perl.org>; 01:13
scrottie alright, I might have gotten something old by mistake. where do I need to pull from?
diakopter www.perlcabal.org/svn/pugs/browse/src/perl6
lambdabot Title: browse: /pugs/src/perl6 (Rev: HEAD, via SVN::Web)
diakopter svn export/checkout svn.pugscode.org/pugs
lambdabot Title: Revision 20922: /
PerlJam svn.pugscode.org/pugs works as well 01:14
lambdabot Title: Revision 20922: /
pmichaud (I tend to browse through the url PerlJam just gave, fwiw.)
diakopter that's the one I gave too :P
pmichaud I'm not familiar with the "/browse/" component, though.
diakopter I sent two urls 01:15
the first is SVN::Web; second was the svn repo itself
pmichaud right.
bbl. 01:16
scrottie co's 01:17
diakopter, use.perl.org/~scrottie/journal/36739 ... I can make corrections directly too. 01:18
lambdabot Title: Journal of scrottie (4167)
rindolf Hi scrottie
scrottie: hi.
scrottie hi rindolf
rindolf scrottie: have you seen the fuss on use.perl.org about my "Closed books" essay?
scrottie rindolf, how do you fit into this neat little puzzle these people have created?
rindolf chromatic++
scrottie rindofl: no, sounds boring.
rindolf scrottie: which one? 01:19
scrottie: which puzzle?
diakopter scrottie: the first two sentences are incorrect
scrottie alright, I'm still confused on that point. why did he track down a working pugs to run it? 01:20
diakopter scrottie: also, another correction, STD.pm is *the* Perl 6 grammar; Larry's effort is separate from that - his effort is comprised of gimme5/Cursor5, which together produce STD5.pm from STD.pm 01:21
scrottie and I think I'm getting conflicting opinions on that here
diakopter scrottie: he didn't track down a working pugs to run it; he tracked down a working pugs to demo a Perl 6 feature
scrottie: re: conflicting opinions; no, no one's disagreed on these points
scrottie svn: REPORT request failed on '/pugs/!svn/vcc/default' ... svn: REPORT of '/pugs/!svn/vcc/default': Chunk delimiter was invalid (svn.pugscode.org) 01:23
lambdabot Title: Revision 20922: /
scrottie dammit. this stuff is so confusing, svn can't even check it out =P 01:24
diakopter "Larry Wall, at YAPC, demo'd his Perl 6 tokenizer written in the perl 6 dialect spoken by pugs. That's v6/ in the pugs source code." --> "Larry Wall, at YAPC, demo'd his Perl 6 parser (generated into Perl 5 from STD.pm (Perl 6) by gimme5/Cursor5). That's src/perl6/*5.* in the pugs source code."
src/perl6/metholate was the converter from Perl 6 to pugs-P6, but not updated in 4 months b/c that's not what Larry uses anymore 01:25
all I can suggest about the svn checkout problem is to try again, or to export instead of checkout 01:26
scrottie edited (thanks for corrections).
PerlJam scrottie: what version of svn are you using?
Auzon Note that elf, like many P6 implementations, is partially written in Perl 6.
scrottie 1.3.2 (r19776) 01:27
PerlJam you might want to try a newer svn
(I was all set to give fitz and sussman grief about svn 1.5 at yapc but apparently it's actually out now :) 01:28
01:30 toddr left
rindolf PerlJam: were they present there? 01:30
scrottie rindolf, re: puzzle, the puzzle formed by all of these projects. how do you fit in to that? in other words, what are you working on?
diakopter scrottie: to clarify further, Larry's programs require perl 5.10
rindolf scrottie: lots of stuff. 01:31
scrottie: CPAN modules.
scrottie: and some stuff in the perl5-core.
scrottie: and a bit on Parrot. (Very little).
scrottie rindof, neat, didn't know that about you. I thought you just wrote essays that annoyed people ;)
rindolf scrottie: I'm here because of the discussion.
scrottie: nah.
scrottie: www.shlomifish.org/open-source/ - knock yourself out. 01:32
lambdabot Title: Open Source Software I wrote
01:32 rindolf left
scrottie okay, but you're not working on the perl 6 "puzzle" (my words)? you're just here for the discussion? everyone has CPAN modules. only every other person has a perl 6 parser. 01:32
bleah 01:33
afk a bit, heading to the laundramat 01:34
laundromat
diakopter heh 01:37
scrottie but when I get there I'll get back online >=) 01:38
02:14 mjk left
diakopter TimToady: typo at S03:175 02:24
TimToady: S03:220 has a trailing semicolon whereas the other examples don't 02:27
TimToady: inconsistent spacing at S05:1502 02:28
TimToady: spello at S05:2069
pugs_svnbot r20923 | pmichaud++ | S02-literals/autoref.t: Fix rakudo skip message. 02:39
02:53 alester joined 02:54 alester left
diakopter TimToady: I assume postfix !meth has the same precedence as the other postfix method calls...? 02:54
pmichaud: or you.. ^^ 02:55
rakudo_svn r28588 | pmichaud++ | [rakudo]: 02:57
r28588 | pmichaud++ | * Update tools/test_summary.pl to summarize skipped tests.
pugs_svnbot r20924 | pmichaud++ | S04-statements/try.t: Fix skip messages.
speckbot r14553 | pmichaud++ | typo fixes by diakopter++ 02:59
r14554 | pmichaud++ | typo fixes by diakopter++ 03:00
03:02 wknight8111 left 03:04 elmex_ joined
diakopter pmichaud: I don't know if you saw; I created this parametric regex/token/rule (template) function; I think it could actually be a neat language feature that could benefit Perl 6, too. 03:07
it's a pretty simple concept, but its implementation in Perl 5 was kindof heinous. 03:08
scrottie rindolf, you never send me a link to the page you're talking about, but instead a page that links to the page, and that page always serves to convince me that I don't want to go to that page after all.
pmichaud diakopter: hadn't seen it yet, no. May take a look tomorrow. :-) 03:09
pugs_svnbot r20925 | pmichaud++ | Fix typo in <radint>: <?before :> should be <?before ':'> .
spinclad (ftr, larry didn't start pugs; autrijus ==> audreyt did.) 03:13
scrottie: ^ 03:14
diakopter pmichaud: I'm just about done with the top-down portion of the Perl6in5::Grammar engine... now I'm working on the operator precedence engine/generators... I'm going to try to approach the capability of pge (but not the syntax, obviously) in those regards... 03:19
03:19 elmex_ is now known as elmex
Auzon elf: say '' 03:25
p6eval OUTPUT[ā¤]
03:26 bacek joined
bacek rakudo: my ($a, $b); $a=42; say $a 03:27
p6eval rakudo r28589 OUTPUT[Scope not found for PAST::Var '$a'ā¤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)ā¤
diakopter adds 'use B::Generate;' to yap6; lol 03:38
03:41 pbuetow_ joined
s1n so is rakudo supposed to now be the main perl6 implementation? 03:46
diakopter s1n: it's the most active currently, by far... 03:48
s1n: here are some recent comments... use.perl.org/~scrottie/journal/36739 03:49
lambdabot Title: Journal of scrottie (4167)
s1n i was reading about the recent grant for the smop implementation 03:51
i'd like to start playing with/on perl6, but i don't want to waste time on an implementation that gets neglected (pugs) 03:52
diakopter I'd look into rakudo if I were you, then
03:53 pbuetow left
scrottie spinclad, yeah, I was just under the impression that his current work was based on top of it, and that people were still hacking on it (it = pugs) 03:53
diakopter it certainly has the most funding/cheerleaders/potential
s1n i was thinking of helping with getting some of the spectests working again in rakudo, but i'd be pissed if that went the way of pugs 03:54
diakopter s1n: the only way that would happen is if major design/implementation flaws/limitations were discovered in parrot that weren't reasonably insurmountable... 03:55
scrottie pugs at least had numerous backends, parrot being just one of them. with pugs translated to perl6 to be made self-hosting (as was the.. er, a.. plan), it would be independant of VM.
diakopter s1n: but I sincerely doubt that's the case...
s1n what exactly was wrong with pugs that caused people to stop working on it? 03:56
diakopter nothing; its primary author/maintainer became otherwise occupied 03:57
but there is a multitude of people familiar with parrot/pge/pct/rakudo internals... plenty to survive such buses 03:58
s1n does rakudo have a similar structure (primary-developer-gets-hit-by-bus-and-project-dies-too syndrome)?
heh ok
diakopter s1n: no; there are lots... see #parrot on irc.perl.org
s1n what about the mention of elf? 03:59
03:59 alester joined
s1n it sounds complete, if it's complete, why has it not gotten any attention? 03:59
Auzon It's not complete.
elf: say 1 ~~ Int
p6eval OUTPUT[Can't call method "Str" on an undefined value at ./elf_f line 649.ā¤ at ./elf_f line 3854ā¤]
diakopter it's not complete..
Auzon elf: say [*] 1 .. 5 04:00
p6eval OUTPUT[Parse error in: /tmp/Da3FHqReLHā¤panic at line 1 column 0 (pos 0): Can't understand next input--giving upā¤WHERE: say [*] 1 .. 5ā¤WHERE:/\<-- HEREā¤ STD_red/prelude.rb:98:in `panic'ā¤ STD_red/std.rb:76:in `scan_unitstopper'ā¤ STD_red/std.rb:224:in `comp_unit'ā¤ STD_red/std.rb:210:in...
diakopter s1n: but it hasn't gotten much attention because no one has written/talked about it anywhere but on this irc channel
s1n does that make it inferior?
diakopter in terms of publicity, yeah... but not otherwise, of course. 04:01
a Perl 6 implementation is measured/defined by its handling of the official test suite
s1n the pugs suite? 04:02
Tene The pugs suite is gradually being organized better. It's going to grow into the official test suite.
diakopter and, I suppose, also its cross-platform-ness. and also, I suppose, the availability/free-ness of its dependencies. and also, I suppose, which open-source license it's available under
s1n okay, we're making progress here. i now have a definition of a metric of an implementation and what will ultimately be the test suite. 04:03
Auzon s1n: From what I hear, the test suite is roughly 18000 tests.
s1n is rakudo more complete than elf? should i even spend time on any other implementation? 04:04
diakopter I can't make that explicit recommendation; after all, I have my own infantile implementation (that's primarily for my own amusement/education)... but if I weren't me, I'd recommend diving into rakudo/parrot 04:05
s1n okay, does the current test suite in pugs still need any work or is it pretty complete? 04:06
diakopter Auzon?
Auzon It'll always need work :)
I'm hoping to add 1000 tests by the end of the summer 04:07
A few tests are outdated.
More recent things are lacking, such as sameaccent.
But the test suite is further along than all the implementations combined, which is the goal 04:08
s1n okay great, that was what i needed to know
diakopter Larry estimates the test suite is 20-50% complete, I think...?
Auzon I heard the estimate of 40000 tests for 6.0.0 of the first implementation 04:09
s1n i'll probably start by hacking on learning the language, playing with the test suite, and then move into fixing stuff in rakudo
lots of new perl6 features :)
Auzon s1n: If you're looking for untested areas on the suite, I've listed them in t/TASKS
diakopter s1n: rakudo is implemented in PIR and NQP (nearly Perl 6 syntax)
s1n Auzon: thanks 04:10
Auzon Some of them, at least.
diakopter s1n: do you want a commitbit? (svn commit access)
s1n i tried doing the spectest and it just blew up on me (ended up running all night)
to parrot?
Auzon Yeah, you can't run it.
diakopter no, to pugscode, where the test suite is
s1n diakopter: wouldn't hurt :) 04:11
diakopter /msg me your email address and desired username...
Auzon the pugs repo holds a lot of implementations as well, such as elf, yap6, smop, pugs...
And the test suite
diakopter and the standard grammar (STD.pm) and Larry's parser based on the standard grammar... :)
s1n hmm okay 04:12
Auzon It's pretty lacking for committing rules.
The Parrot repo is a lot stricter
diakopter kicks jifty
s1n there seems to be a lack of documentation on getting a good dev. environment up and running, i read about feather, should i get an account there or just hack on it on my machine? 04:13
Auzon It depends on your goal
s1n what would be my goal if i used feather?
Auzon I'm a Google summer of code student, and my project is the test suite. Locally, I only have Rakudo running 04:14
s1n i have parrot svn compiled locally, i was going to just use that
diakopter there we go; jifty responded well to SIGHUP 04:15
Auzon Yeah, that's what I do. The rakudo_svn bot here announced commits to the Rakudo section of the Parrot repo
s1n okay, but the test suite is through pugscode, so i guess i should check that out too 04:16
diakopter s1n: invitation sent
s1n diakopter: thanks for that 04:17
diakopter s1n: generally to get commit access to parrot/rakudo, you become known as a reliable submitter of good (working) patches... then you get invited; then you sign a form regarding IP...
s1n i'll probably start slowly, maybe a handful of minutes a night :)
diakopter but apparently at some point rakudo will get its own repository/home somewhere 04:18
Auzon s1n: My setup has a few repos checked out. I have the Pugs repo (for the test suite), the Parrot repo (for Rakudo), and the synopsis repo checked out (for searching the synopses).
diakopter since parrot eventually won't be released with all the HLLs (high level languages)
Auzon s1n: If you just want to run the test suite with Rakudo, there's a target for make in languages/perl6 that does it. 04:19
s1n diakopter: okay, so you just gave me commitbit to pugscode, which i'll use for the test suite, right?
diakopter s1n: yep
s1n Auzon: yeah i was playing with that
Auzon If you want to hack on the test suite, then you'll want a setup kinda like mine
diakopter or starting your own implementation ;)
scrottie: ^
s1n diakopter: heh don't have time for that, like Auzon, i'm a student 04:20
diakopter ha; students have more time than anybody...
s1n i work full time and part-time gradschool
diakopter ok, then :D
students *who don't work fulltime* ... :)
Auzon s1n: There's also syntax highlighting for vim and presumably emacs in the pugs repo 04:21
diakopter s1n: what OS do you use
s1n mainly, i want perl6 because i want to be able to try and convince my boss to switch our dated perl5 junk to perl6 :)
gentoo ~amd64
Auzon mmm, that's a ways off yet
s1n yeah, but the more i help, the closer it gets
cj s1n: hey, perl5's not so bad
diakopter s1n: that's a great attitude; you'll go far. 04:22
s1n cj: no, i love it, but perl6 makes my mouth water
Auzon Oh, don't forget the redsix implementation :P
diakopter oh! I knew I'd left something out...
Auzon Don't bother with it though 04:23
I don't know of anything it does better than elf or rakudo
s1n i was reading about mixins in perl6 and on the rakudo blog and my heart started beating fast, then i read about generics and it was too much to handle
Auzon s1n: Have you seen the evalbot in here?
s1n Auzon: i've seen people use it
impl: code
Auzon Yeah. I do a lot of testing with that, actually. 04:24
s1n rakudo: say "Hello World"
p6eval rakudo r28591 OUTPUT[Hello Worldā¤]
Auzon You can also privmsg it if you don't want to flood the channel or something
diakopter rakudo: 'Hello Cosmos'
p6eval rakudo r28591 RESULT["Hello Cosmos"]
Auzon p6eval is a very easy way to play with Pugs and KP6, too.
04:25 japhb left
s1n okay, i'll have to set up my environment tomorrow, thanks for everything guys 04:25
04:25 japhb joined
Auzon OK. I'm available to lend a hand if you want. 04:25
s1n i gotta get up a the butt-crack of dawn tomorrow to go run then work some ot 04:26
Auzon I suggest getting elf and rakudo running, as they're pretty easy
s1n Auzon: thanks
Auzon: i have rakudo working now
cj what is rakudo?
Auzon elf is just Perl 5.10, Ruby 1.9 and some Perl modules
cj: Rakudo is Perl 6 on Parrot
cj ah. it's got a name now, eh?
Auzon elf: say $?PERLVER
cj when did that happen?
p6eval OUTPUT[elf / perl 5.8.8 / EmitSimpleP5ā¤]
diakopter cj: www.rakudo.org
Auzon elf also runs on Perl 5.8.8 too, but it's slower. 04:27
not much though
cj elf must be perl6 on perl5
diakopter one of the 3-4
s1n im out, thanks for the deets and help
Auzon cj: Yes. It uses STD_red (Ruby translation of STD.pm) for the AST, I think
see you, s1n
scrottie oh, then there's elf_on_rakudo. 04:29
Auzon and elf on smop, and kp6 on smop, and... :P
scrottie you guys are f'n nuts.
Auzon I swear, I learn about a new P6 implementation every few days
diakopter or at least target permutation 04:30
Auzon scrottie: Well, if you have an implementation of P6 written in P6, a good test for both would be to run it on another P6 implementation.
and it might help with bootstrapping.
diakopter lol
"if you have a bootstrapped Perl 6, it might help with bootstrapping to run it on a non-bootstrapped Perl 6"...? 04:31
scrottie ... and elf uses STD_red... the _Ruby_ translation of STD.pm? Is there logic in there somewhere?
diakopter scrottie: yes b/c redsix did a good job parsing STD(_old).pm I think 04:32
Auzon scrottie: Apparently it works. Elf is pretty fast and complete for how little time it's around.
Is STD_red hand or machine translated?
scrottie ... it hasn't been around long, and it already has several implementations (elf_a, elf_b, elf_c, ... elf_f)...? 04:34
Auzon 2008-03-20 is the first commit
diakopter Auzon: well, maybe yap6 can replace its parser... 04:35
scrottie attempting (and failing) to think, outloud. they *immediately* bootstrapped themselves by rewritting the parser into the language they parsed...? props there. neato. 04:36
Auzon scrottie: elf_a was pure P5. Then elf_b was written in P6 that elf_a could understand. Then elf_b was hacked on, and then made into elf_c when a milestone happened.
diakopter I mean, who am I kidding that I can write my own runtime/object model
Auzon and so on with each milestone for elf_c .. elf_f
scrottie Auzon: neat!
diakopter scrottie: want a commit bit? 04:37
scrottie um... I might have one. how would I know?
Auzon It's probably a bit more complicated, but it's awesome for only 3 months and fast for P5
scrottie: commitbit.pugscode.org/ and login
lambdabot Title: Welcome to CommitBit for PugsCode
diakopter scrottie: email address?
Auzon or ask diakopter.
scrottie [email@hidden.address]
diakopter nope
invitation sent 04:38
scrottie ahhh. audreyt was slinging them when I was around, long ago, but apparently missed me.
bacek pugs: my ($a,$b); $a=42; say $a; 04:40
diakopter Auzon: I think we have new 365-day record for irclog length for the past 24 hours...
p6eval OUTPUT[42ā¤]
Auzon diakopter: I've noticed that IRC has been a lot more active this spring/summer than last winter
Hopefully it's a sign of more P6 momentum. 04:41
diakopter scrottie: why doesn't your article appear on use.perl.org recent post list
Auzon diakopter: Are you aiming for a general purpose P6 parser now with yap6? 04:44
diakopter Auzon: yeah... well actually, as flexible as pge, hopefully 04:45
just not its syntax
Auzon: do you have any thoughts on that? 04:51
Auzon I don't know PGE well enough to comment about comparison of PGE and yap6. 04:52
diakopter PGE basically has nearly-Perl 6 rule/token/regex declaration syntax 04:53
just not all the features
but lots
Auzon I'm interested a way to check if P6 is valid for personal selfish reasons, since it would catch typos and other things easily 04:54
Depending on the output of such a parser, I could find a few uses for it in code unrelated to P6 development 04:56
diakopter interesting
Auzon But this all supposes that a parser is orders of magnitude easier to write than the corresponding implementation
Replacing STD_red in elf and perhaps other implementations could be beneficial too 04:57
If it does what I think it does, I could adjust the smartlinks tool to provide accurate syntax highlighting for the synopses. 04:58
diakopter ooo
ha 04:59
even for STD.pm's gradual grammar... ;)
05:07 alester left
scrottie diakopter: I thought I saw the article there... sudden mass posting immediately afterwards? dunno 05:08
05:13 smtms left 05:16 Psyche^ joined 05:29 Patterner left, Psyche^ is now known as Patterner 05:46 kanru left 05:50 a-jing joined, a-jing left 05:52 njm joined
bacek pugs: my $a; my $a; $a=42; say $a 05:56
p6eval OUTPUT[42ā¤]
bacek pugs: my $a; $a=42; my $a; say $a
p6eval OUTPUT[42ā¤]
06:04 xinming joined
scrottie here yak, yak, yak... I won't hurt you... nevermind this knife... it's just a razor blade... 06:07
06:35 sri_work_ left 06:41 japhb left, pbuetow_ left, bacek left, simcop2387 left, pjcj left, cognominal_ left, Grrrr left, s1n left, diakopter left, TimToady left, cls_bsd left, Patterner left, njm left, zaphar_ps left 06:42 xinming left, p6eval left, elmex left, Southen_ left, pengrate left, Auzon left, araujo left, hcchien left 06:43 ingy joined, Alias_ joined, xinming joined, njm joined, Patterner joined, japhb joined, pbuetow_ joined, bacek joined, elmex joined, Auzon joined, simcop2387 joined, zaphar_ps joined, Southen_ joined, pjcj joined, cognominal_ joined, araujo joined, p6eval joined, Grrrr joined, pengrate joined, lambdabot joined, drbean_ joined, BinGOs joined, stevan_ joined, cookys joined, revdiablo joined, wolverian joined, jan__ joined, Ara4n joined, Maghnus joined, SamB joined, felipe joined, eternaleye_ joined, gbacon joined, lumi joined, Lunchy joined, kcwu joined, dmq joined, Kattana joined, yahooooo joined, mj41 joined, SubStack joined, perlbot joined, pugs_svnbot joined, beppu joined, TreyHarris joined, yves joined, ilbot2 joined, rafl joined, kolibrie joined, mtve joined, irc.freenode.net sets mode: +o ingy, obra joined, buubot joined, speckbot joined, Tene joined, nipotaway joined, IRSeekBot joined, Maddingue joined, arguile joined, jrockway joined, jjore joined, Juerd joined, clkao joined, buu joined, audreyt joined, allbery_b joined, nnunley joined, moritz_ joined, avar joined, lisppaste3 joined, yath joined, rakudo_svn joined, broquaint joined, kane_ joined, charsbar joined, awwaiid joined, osfameron joined, Gothmog_ joined, Khisanth joined, zostay joined, nothingmuch joined, pmichaud joined, PerlJam joined, Ingmar joined, qmole_ joined, jiing joined, fullermd joined, apeiron joined, Caelum joined, cj joined, rhr_ joined, Coleoid joined, dalek joined, mofino joined, spinclad joined, pasteling joined, gugod joined, silug joined, cls_bsd joined, diakopter joined, s1n joined, TimToady joined, irc.freenode.net sets mode: +o TimToady, hcchien joined 06:44 Jedai joined
Patterner occam's? 06:56
07:25 iblechbot joined 07:26 Alias__ joined 07:27 Alias_ left 07:40 cornelius_ joined, cornelius_ is now known as c9s 07:57 bacek left 07:59 xinming left, xinming joined 08:02 njm left 08:03 barney joined 08:16 c9s left, jan__ left, ilbot2 left, yves left, rafl left, Lunchy left, Jedai left, s1n left, Grrrr left, pbuetow_ left, japhb left, pjcj left, eternaleye_ left, cognominal_ left, simcop2387 left, xinming left, diakopter left, wolverian left, TimToady left, stevan_ left, cls_bsd left, lambdabot left, Patterner left, lumi left, SamB left, iblechbot left, fullermd left, qmole_ left, kolibrie left, zaphar_ps left, ingy left, pmichaud left, charsbar left, mj41 left, pugs_svnbot left, dmq left, mofino left, jiing left, yahooooo left, dalek left, Caelum left, BinGOs left, hcchien left, Coleoid left, p6eval left, buu left, gbacon left, zostay left, Khisanth left, audreyt left, perlbot left, barney left, apeiron left, Gothmog_ left, yath left, Ara4n left, jjore left, nnunley left, Juerd left, Ingmar left, lisppaste3 left, revdiablo left, felipe left, rakudo_svn left, arguile left, Maghnus left, silug left, SubStack left, awwaiid left, PerlJam left, drbean_ left, osfameron left, allbery_b left, Maddingue left, pasteling left, elmex left, Alias__ left, rhr_ left, kane_ left, broquaint left, kcwu left, Southen_ left, pengrate left, Tene left, cj left, avar left, mtve left, buubot left, gugod left, speckbot left, beppu left, nothingmuch left, Kattana left, spinclad left, moritz_ left, Auzon left, jrockway left, TreyHarris left, araujo left, IRSeekBot left, obra left, clkao left, cookys left, nipotaway left 08:18 ingy joined, xinming joined, c9s joined, Alias__ joined, iblechbot joined, Jedai joined, hcchien joined, Patterner joined, japhb joined, pbuetow_ joined, elmex joined, Auzon joined, simcop2387 joined, zaphar_ps joined, Southen_ joined, pjcj joined, cognominal_ joined, araujo joined, p6eval joined, Grrrr joined, pengrate joined, lambdabot joined, drbean_ joined, BinGOs joined, stevan_ joined, cookys joined, revdiablo joined, wolverian joined, jan__ joined, Ara4n joined, Maghnus joined, SamB joined, felipe joined, eternaleye_ joined, gbacon joined, lumi joined, Lunchy joined, kcwu joined, dmq joined, Kattana joined, yahooooo joined, mj41 joined, SubStack joined, perlbot joined, pugs_svnbot joined, beppu joined, TreyHarris joined, yves joined, ilbot2 joined, irc.freenode.net sets mode: +o ingy, rafl joined, kolibrie joined, mtve joined, obra joined, buubot joined, speckbot joined, Tene joined, nipotaway joined, IRSeekBot joined, Maddingue joined, arguile joined, jrockway joined, jjore joined, Juerd joined, clkao joined, buu joined, audreyt joined, allbery_b joined, nnunley joined, moritz_ joined, avar joined, lisppaste3 joined, yath joined, rakudo_svn joined, broquaint joined, kane_ joined, charsbar joined, awwaiid joined, osfameron joined, Gothmog_ joined, Khisanth joined, zostay joined, nothingmuch joined, pmichaud joined, PerlJam joined, Ingmar joined, qmole_ joined, jiing joined, fullermd joined, apeiron joined, Caelum joined, cj joined, rhr_ joined, Coleoid joined, dalek joined, mofino joined, spinclad joined, pasteling joined, gugod joined, silug joined, cls_bsd joined, diakopter joined, s1n joined, TimToady joined, irc.freenode.net sets mode: +o TimToady 08:38 masak joined 09:02 agentzh joined 09:15 Jedai left 09:34 ruoso joined 09:44 redicaps joined 10:03 Alias__ left
pugs_svnbot r20926 | masak++ | corrected a few grammatical errors 10:18
masak can I do `next` in a sub called from within a for loop? 10:19
10:19 iblechbot left 10:24 wknight8111 joined 10:28 meppl joined 10:35 BinGOs left, Jedai joined 10:51 a-jing joined, a-jing left 10:53 BinGOs joined 10:57 wknight8111 left 11:03 iblechbot joined 11:35 alanhaggai joined 11:42 Harleaquin joined, Harleaquin left 11:58 Coleoid left 12:01 alanhaggai left 12:25 alanhaggai joined 12:55 alanhaggai left, alanhaggai joined 13:10 iblechbot left 13:28 pbuetow_ left, pbuetow joined 13:36 ruoso left 13:54 xinming_ joined 13:58 ruoso joined 14:04 alanhaggai left 14:07 xinming left
rakudo_svn r28594 | pmichaud++ | [rakudo]: 14:15
r28594 | pmichaud++ | * Update spectest-progress
r28594 | pmichaud++ | * 65 files, 794 passing tests
r28595 | pmichaud++ | [rakudo]: 14:19
r28595 | pmichaud++ | * Update README.
14:37 alanhaggai joined 14:47 iblechbot joined
pugs_svnbot r20927 | pmichaud++ | Add some tests for statement termination and empty statements 14:52
r20927 | pmichaud++ | (contributed by Ronald Schmidt)
14:55 Limbic_Region joined
rakudo_svn r28596 | pmichaud++ | [rakudo]: 14:57
r28596 | pmichaud++ | * Set svn:ignore properties on src/ops .
r28597 | pmichaud++ | [rakudo]: 14:58
r28597 | pmichaud++ | * Handle empty statements (RT#55594)
r28597 | pmichaud++ | * Patch courtesy Ronald Schmidt <ronaldxs@software-path.com>
r28598 | pmichaud++ | [rakudo]: 15:08
r28598 | pmichaud++ | * Allow 'make spectest_regression' to work even when "svn up" fails on t/spec.
r28598 | pmichaud++ | * RT#56050 patch courtesy Deven T. Corzine [email@hidden.address]
15:17 Alias_ joined
rakudo_svn r28599 | pmichaud++ | [rakudo]: 15:20
r28599 | pmichaud++ | * Add chop.t and remove comb.t from spectest_regression (RT#56068, moritz++)
r28599 | pmichaud++ | * Patch courtesy Moritz Lenz [email@hidden.address]
15:27 Alias_ left
pugs_svnbot r20928 | pmichaud++ | Test suite TASKS: Conflict between S29 and rand.t 15:27
15:31 cognominal_ left
masak I have GHC 6.8.3. what's my best chance of compiling a pugs binary? 15:35
audreyt masak: install Cabal 1.4.0.1 and cabal-install 0.5.1 from hackage 15:37
(which will in turn need zlib and HTTP)
and then see if "cabal update ; cabal install pugs-compat" works
if it works, "cabal install Pugs" will work.
masak audreyt: thank you 15:38
audreyt where "will" means, like, 20 hours from now.
masak I found the hackage page
let's see if I can figure out how to install things...
audreyt let cabal-install handle it for you
masak audreyt: ok, looking for Cabal 15:39
audreyt I'm not yet done with partitioning pugs (7 parts so far, about 5 to go)
but the parts already on hackage should build cleanly.
masak audreyt: you're working on pugs? that's good news
audreyt++
audreyt I'm not... I'm just partitioning it :)
diakopter audreyt: wow. talk about JIT - Sat Jun 21 08:15:21 PDT 2008 AudreyTang pugs-compat 0.0.1 15:40
audreyt :)
don't have any expectations though. this is just me cannibalizing parts of pugs for $job projects :) 15:41
diakopter expectations-- while expectations
audreyt the few pugs-related code I'm coding won't make any sense until 5.^Wghc 6.10.
masak what happens then? 15:42
diakopter masak: expectations-- while expectations :P 15:43
masak diakopter: righty-ho.
diakopter cool... hackage.haskell.org/packages/archiv...l#cat:Pugs 15:45
lambdabot tinyurl.com/yqov7f 15:46
masak where do I get HTTP and zlib? 15:47
nvm, found www.haskell.org/http/
lambdabot Title: Haskell HTTP package
diakopter masak: cabal install http 15:48
I think
masak diakopter: well, I'm building cabal-install, so...
diakopter oh; heh
sorry
masak but thanks
diakopter tries the same exercise 15:49
Limbic_Region rubs his eyes and sees audreyt speaking and thinks he must be dreaming 15:54
diakopter Limbic_Region: you're dreaming; go back to sleep ;)
Limbic_Region: btw, I'm sorry I didn't introduce myself at yapc :/ 15:55
Limbic_Region no worries
I did meet lots of people
I am hoping to meet a lot more next year - since it will be relatively close 15:56
diakopter Pitt's Borough
Limbic_Region yeah, it is a 4 hour drive from here 15:57
and Jean should be driving by then
so I should be able to be there for pre and post activities
Limbic_Region is going to upload YAPC photos tonight as well as one more blog post on all the people he met 15:58
masak audreyt: pugs-compat landed just fine. crossing fingers for 20 hours 16:00
audreyt masak: cool thanks! 16:01
16:02 masak left
yath hum 16:17
i'm just trying to build pugs on debian and get paste.debian.net/7081/
am i missing something? 16:18
TimToady audreyt++ for learning hard lessons on Sustainability :)
16:22 Jedai left 16:29 sri_work joined 16:37 fridim joined
fridim hi 16:39
There is a dead link on pugscode.org : wiki -> rakudo.org/perl6/
diakopter fridim: if you'd like, you can fix it... :) you just need a commitbit for pugscode svn 16:40
otherwise I'll fix it... it should point to perlfoundation.org/perl6 16:41
lambdabot Title: Perl 6 / Perl 6
Auzon I'll get it :) 16:42
pmichaud fridim++ # reporting broken links 16:43
pugs_svnbot r20929 | Auzon++ | [pugscode.org] fixed bad URL
Auzon Yes, fridim++ 16:44
pmichaud Auzon++ # fixing broken links
16:46 kanru joined, stevan_ left 16:59 zaphar_ps left, stevan_ joined
diakopter runs cabal install pugs-compat 17:23
audreyt: if I muck around in pugs' parser... how conflicted will I be when I merge in your (eventual) commit(s)..? 17:24
17:27 hanekomu joined 17:50 alanhaggai_ joined, Jedai joined 18:04 lichtkind joined, alanhaggai left 18:11 sri_work_ joined 18:13 polettix joined 18:15 sri_work left 18:18 Khisanth left 18:21 Khisanth joined 18:25 explorer joined
pugs_svnbot r20930 | pmichaud++ | S04-statements/try.t: Link #?rakudo skip to RT#56184. 18:29
r20931 | pmichaud++ | S29-num/roots.t: update error message, avoid needless eval. 18:32
18:33 polettix left
pugs_svnbot r20932 | pmichaud++ | S29-num/exp.t: correct skip message for rakudo 18:33
lichtkind expression in if statement is evaled into bool scalar context? 18:35
spinclad lichtkind, sounds right 18:36
18:36 alanhaggai__ joined 18:42 lichtkind_ joined
lichtkind_ spinclad: thought too but a phrase in syn 4 irritates me 18:43
18:52 alanhaggai_ left
Auzon perl6: say list().WHAT 18:54
p6eval kp6 r20932: OUTPUT[no method 'APPLY' in Class 'Undef'ā¤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345ā¤
..pugs: OUTPUT[Arrayā¤]
..rakudo r28599: OUTPUT[Listā¤]
..elf r20932: OUTPUT[Undefined subroutine &GLOBAL::list called at (eval 117) line 3.ā¤ at ./elf_f line 3854ā¤]
Auzon perl6: say list().WHAT ~~ List
p6eval kp6 r20932: OUTPUT[no method 'APPLY' in Class 'Undef'ā¤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345ā¤
..pugs: OUTPUT[1ā¤]
..rakudo r28599: OUTPUT[1ā¤]
..elf r20932: OUTPUT[Undefined subroutine &GLOBAL::list called at (eval 121) line 3.ā¤ at ./elf_f line 3854ā¤]
19:00 lichtkind left
Auzon perl6: my $a = 5; say list($a).perl; say list($a) == $a; 19:14
p6eval kp6 r20932: OUTPUT[no method 'APPLY' in Class 'Undef'ā¤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345ā¤
..pugs: OUTPUT[\5ā¤5ā¤]
..rakudo r28599: OUTPUT[[5]ā¤0ā¤]
..elf r20932: OUTPUT[Undefined subroutine &GLOBAL::list called at (eval 121) line 4.ā¤ at ./elf_f line 3854ā¤]
Auzon perl6: my $a = 5; say list($a) ~~ $a 19:16
p6eval kp6 r20932: OUTPUT[no method 'APPLY' in Class 'Undef'ā¤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345ā¤
..pugs: OUTPUT[5ā¤]
..rakudo r28599: OUTPUT[0ā¤]
..elf r20932: OUTPUT[Undefined subroutine &GLOBAL::list called at (eval 121) line 4.ā¤ at ./elf_f line 3854ā¤]
Auzon perl6: say ''.defined 19:18
p6eval kp6 r20932: OUTPUT[1ā¤]
..pugs: OUTPUT[1ā¤]
..rakudo r28600: OUTPUT[Method 'defined' not found for invocant of class 'Perl6Str'ā¤current instr.: '_block11' pc 31 (EVAL_13:17)ā¤
..elf r20932: OUTPUT[Can't call method "defined" without a package or object reference at (eval 115) line 3.ā¤ at ./elf_f line 3854ā¤]
Auzon perl6: say undef.defined
p6eval kp6 r20932: OUTPUT[DISPATCH: calling defined on invalid object:$VAR1 = undef;ā¤ā¤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 128ā¤ main::DISPATCH('undef', 'defined') called at - line 11ā¤]
..pugs: OUTPUT[ā¤]
..rakudo r28600: OUTPUT[Method 'defined' not found for invocant of class 'Failure'ā¤current instr.: '_block11' pc 37 (EVAL_13:17)ā¤
..elf r20932: OUTPUT[Can't call method "defined" on an undefined value at (eval 117) line 3.ā¤ at ./elf_f line 3854ā¤]
19:27 c9s left 19:32 smtms joined 19:33 smokemachine joined
Auzon perl6: say list(5) == (5,) 19:33
p6eval kp6 r20932: OUTPUT[no method 'APPLY' in Class 'Undef'ā¤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345ā¤
..pugs: OUTPUT[ā¤]
..rakudo r28601: OUTPUT[1ā¤]
..elf r20932: OUTPUT[Undefined subroutine &GLOBAL::list called at (eval 117) line 3.ā¤ at ./elf_f line 3854ā¤]
19:41 xinming_ left, xinming joined 19:52 cognominal_ joined
Auzon rakudo: ; 19:53
p6eval rakudo r28602 RESULT[Null PMC access in find_method()ā¤current instr.: '_block11' pc 38 (EVAL_13:18)ā¤
Auzon rakudo:;
pmichaud that's odd. 19:54
Auzon Which one? 19:55
pmichaud $ ./parrot perl6.pbc -e ';'
$
Auzon The second one might not match evalbot's pattern
pmichaud right, but simply sending rakudo a semicolon shouldn't result in the find_method error. 19:56
Auzon odd
pmichaud i.e., it should work. It works in my version of rakudo.
Auzon If it was a recent Parrot change, it may not be rebuilt yet
pmichaud shouldn't require a Parrot change, though.
Auzon odd
oh 19:57
Evalbot was probably wrapping it weirdly
It wraps it with this is there is no output to STDOUT: '( ( do { ' . $program . "\n} ).perl ).print" 19:58
pmichaud ah, and we can't find the .perl method on a non-existent object. 19:59
since { ; } doesn't actually return anything.
Auzon right. (do {;}).perl is enough 20:00
20:07 Alias_ joined 20:08 ruoso left
Auzon rakudo: say @(1,2) 20:10
p6eval rakudo r28602 OUTPUT[12ā¤] 20:11
Auzon rakudo: say 1,2 Z 3,4
p6eval rakudo r28602 OUTPUT[132 4ā¤]
Auzon rakudo: say @(1,2 Z 3,4)
p6eval rakudo r28602 OUTPUT[132 4ā¤]
Auzon rakudo: say @((1,2) Z (3,4))
p6eval rakudo r28602 OUTPUT[132 4ā¤]
Auzon rakudo: say @((1,2) Z (3,4)).perl
p6eval rakudo r28602 OUTPUT[[1, 3, [2, 4]]ā¤]
Auzon that's weird
rakudo: ((1,2) Z (3,4)).perl.say 20:12
p6eval rakudo r28602 OUTPUT[[1, 3, [2, 4]]ā¤]
20:13 lichtkind_ is now known as lichtkind
Auzon rkaudo: item(1,2).perl.say 20:13
rakudo: item(1,2).perl.say
p6eval rakudo r28606 OUTPUT[Could not find non-existent sub itemā¤current instr.: '_block11' pc 35 (EVAL_12:19)ā¤
20:13 ruoso joined
Auzon rakudo: item(1).perl.say 20:13
p6eval rakudo r28606 OUTPUT[Could not find non-existent sub itemā¤current instr.: '_block11' pc 28 (EVAL_12:17)ā¤
Auzon rakudo: $(1).say 20:16
p6eval rakudo r28606 OUTPUT[1ā¤]
Auzon rakudo: $(1,2).say
p6eval rakudo r28606 OUTPUT[1 2ā¤]
Auzon There might be some low hanging fruit with getting item() working here. 20:17
20:19 lichtkind left
Auzon rakudo: say @@ 1 20:25
p6eval rakudo r28607 OUTPUT[Statement not terminated properly at line 1, near "@@ 1"ā¤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)ā¤
Auzon rakudo: say @@(1)
p6eval rakudo r28607 OUTPUT[Statement not terminated properly at line 1, near "@@(1)"ā¤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)ā¤
pmichaud there's a problem with ZIP. 20:26
getting item() to work should be no problem.
Auzon rakudo: list(1,2 X 3,4).perl 20:27
p6eval rakudo r28607 RESULT["[1, 3, 1, 4, 2, 3, [2, 4]]"]
pmichaud same with X
I don't know who implemented those, but they're seriously broken.
Auzon I'll fudge them, then. Presumably, Rakudo will be able to run the new file I'm making 20:28
rakudo: say (% 1,2).perl 20:31
p6eval rakudo r28608 OUTPUT[Statement not terminated properly at line 1, near "(% 1,2).pe"ā¤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)ā¤
Auzon rakudo: say (%(1,2)).perl
p6eval rakudo r28608 OUTPUT[{"1" => 2}ā¤]
Auzon rakudo: say (hash(1,2)).perl
p6eval rakudo r28608 OUTPUT[{"1" => 2}ā¤]
pmichaud I'm a little surprised that %(1,2) worked. :-) 20:32
Auzon Me too.
20:32 smokemachine left
pmichaud rakudo: say %(1,2).WHAT; 20:32
p6eval rakudo r28608 OUTPUT[Hashā¤]
Auzon I am finding quite a few things that are untested that work in Rakudo, which is always nice
pmichaud what should item() return? 20:33
Auzon item() and $() should be exactly the same.
pmichaud so item() would return $/.item() ? 20:34
that seems, weird.
by that argument list() and @() should be the same, so list() should return $/.list ?
Auzon "To force a non-flattening item context, use the "item" operator."
pmichaud oh, so item is really prefix:item, then? 20:35
Auzon Yeah, sorry, I just had to keep parens for proper precedence in my tests
I think it's prefix anyway.
20:36 jhorwitz joined
pmichaud item $a, $b would be the same as item($a), $b and not item($a,$b) then? 20:36
Auzon scroll down until you see 'the item contextualizer' : perlcabal.org/syn/S03.html#List_pre...precedence
lambdabot Title: S03
Auzon the 'Sigils as contextualizer listops' section is also good 20:37
pmichaud yes, but we also have in S05: $() is a shorthand for $($/). 20:38
and
Use @() as a shorthand for @($/) to flatten the positional captures under list context.
so I'm pretty sure that list() is not _exactly_ equivalent to @()
(although list(...) would be equivalent to @(...) ) 20:39
Auzon S03 says that the item contextualizer is 'equivalent to $()'
pmichaud I know that.
I'm saying that S03 is likely imprecise there.
because S03 also says that list() is equivalent to @() 20:40
Auzon Oh, ok.
pmichaud and S05 says that @() is a shorthand for @($/)
which would mean that list() is a shorthand for @($/)
and I'm pretty sure that's not what is intended.
(and leaves unanswered the question of "what should item() return?") 20:42
I'm going to guess that item() returns an empty Array for now. 20:44
Auzon Sounds just as good as anything else. 20:45
20:46 rindolf joined
rindolf Hello good people! Fine Sabbath to you. 20:46
Auzon Hi rindolf.
rindolf Hi Auzon 20:47
pmichaud $ ./parrot perl6.pbc
> say item(3).WHAT;
Int
> say item(3,4).WHAT;
Array
lambdabot Parse error at ";" (column 17)
Parse error at ";" (column 19)
pmichaud > say item().WHAT;
lambdabot Parse error at ";" (column 16)
pmichaud Array
>
Auzon: shall I send a message to p6l for clarification of list(), item(), etc.? 20:49
Auzon That'd be nice 20:52
rakudo: hash(1).perl.say 20:54
p6eval rakudo r28610 OUTPUT[Odd number of elements found where hash expectedā¤current instr.: 'parrot;List;hash' pc 2120 (src/gen_builtins.pir:1553)ā¤
pmichaud can't create a hash from a list of one element.
pugs: hash(1).perl.say
p6eval OUTPUT[*** Odd number of elements found where hash expected: VList [VInt 1]ā¤ at /tmp/FT0j0JEEK5 line 1, column 1 - line 2, column 1ā¤]
Auzon Right, that's what I'm testing 20:55
pmichaud okay. :-)
20:57 alanhaggai__ left
Auzon rakudo: (@ 1).WHAT.say 20:58
p6eval rakudo r28610 OUTPUT[Syntax error at line 1, near "(@ 1).WHAT"ā¤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)ā¤
pmichaud rakudo doesn't know prefix:@ yet.
Auzon rakudo: (@ 1,2).WHAT.say
p6eval rakudo r28610 OUTPUT[Syntax error at line 1, near "(@ 1,2).WH"ā¤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)ā¤
Auzon rakudo: (@(1,2)).WHAT.say 20:59
p6eval rakudo r28610 OUTPUT[Listā¤]
Auzon It should work either way, from what I can tell
pmichaud prefix:<@> is parsed differently from circumfix:<@( )> 21:00
oops 21:02
it's term:sigil
21:02 rindolf left
pmichaud still, they're parsed differently. :-) 21:02
(which is why rakudo supports one and not the other thus far :-) 21:03
Auzon How hard is it to support the other version? Is it just a matter of adding a rule somewhere, or is it more complicated than that? 21:04
rakudo_svn r28611 | pmichaud++ | [rakudo]:
r28611 | pmichaud++ | * Fix trailing space problem in src/parser/actions.pm .
pmichaud at the moment it's a little more complicated, because it's a little difficult to get term:<something> parsing correctly.
that's one of my "planned to do this weekend" items.
Auzon Why is @(values) parsed as a circumfix instead of a term:sigil in front of some parenthesized values? 21:05
rakudo_svn r28612 | pmichaud++ | [rakudo]:
r28612 | pmichaud++ | * Add item() function.
diakopter pmurias++ # making the yap6 parser combinators even more lazily created
pmichaud I don't know the reason off-hand, but I'm sure there probably is one. 21:06
afk # lunch 21:08
Auzon Thanks for item by the way.
21:21 Alias__ joined 21:22 Alias_ left
diakopter rakudo: sub say { undef.say }; say(); 21:36
p6eval rakudo r28612 OUTPUT[[oops; continuation 0xb76b03e0 of type 21 is trying to jump from runloop 1429 to runloop 98]ā¤[oops; continuation 0xb76b09c8 of type 21 is trying to jump from runloop 1429 to runloop 98]ā¤[oops; continuation 0xb76b0fb0 of type 21 is trying to jump from runloop 1429 to runloop
..98]ā¤[...
diakopter guffaws, but only briefly
21:37 Alias__ left 21:38 Jedai left
diakopter omg 21:40
rakudo: my $a = sub { 3.say }; $a(); 21:48
p6eval rakudo r28615 OUTPUT[3ā¤]
22:07 simcop2387 left, simcop2387 joined 22:09 simcop2387 left, simcop2387 joined
pmichaud pugs: sub foo {}; say foo().WHAT; 22:16
p6eval OUTPUT[Scalarā¤]
pugs_svnbot r20933 | diakopter++ | [yap6] generalized the lambda-rule parser combinator generator, so lrule is now just rule. speedups ensue.
r20933 | diakopter++ | Any rule can now serve as a meta-rule constructor, which paves the way for token() & regex() rule generators...
diakopter note this hilarity... ;) no warnings qw{ reserved closure recursion }; 22:17
wait, sorry, it's no warnings qw{ reserved closure recursion prototype };
to explain line 2 of that commit message... 22:19
your components of a :ratchet (match a.m.a.p.) pattern or a regex pattern would be passed into the regex() constructor, which takes the component rules as parameters and applies the appropriate whitespace or chaining rules. 22:23
TimToady: any thoughts on this idea of a rule template? 22:24
22:25 iblechbot left
diakopter another application of this abstraction would be the creation of sublanguages, such as quoted spans. the items that behave differently in quote context would be the only items needing to be substituted in the patterns in which they appear... the rest of the rules can remain as-is. Another application would be the detection of a balanced *something* within a single pattern, which would serve as a good replacement/equivalent for backreferences. 22:27
22:28 meppl left
diakopter ..and for parametrized n-ary pattern constructors, you just add 'shift;' at the front of the rule if you don't want it to be head-call... 22:32
(and use map({something},@_)
)
22:35 meppl joined
rakudo_svn r28616 | pmichaud++ | [rakudo]: 22:39
r28616 | pmichaud++ | * Update rakudo's grammar with various changes to STD.pm .
22:53 simcop2387 left 22:54 simcop2387 joined
diakopter
.oO( ...another application of the parametric/templated patterns would be the opp/expression engine. Each precedence layer would be represented as a parametric pattern (for each shape/symbol), with the argument placeholders representing the next layer down... and then if someone wants to insert another layer, the declarative op table is merely regenerated from the new list, without any funny business necessary. If that style of operator precedence ...
23:02
... turns out to be too inefficient, then it wouldn't be as helpful.... ) 23:03
23:07 hanekomu_ joined
pugs_svnbot r20934 | cjfields++ | Add more tests, latest RT patch passes all but tr/// 23:14
23:18 hanekomu left, cjfields joined
pmichaud diakopter: fwiw, when writing PGE I was personally very surprised at how much more efficient an operator precedence parser is compared to rec-descent, even for a small number (6) of precedence levels. 23:31
the parser for p6 regexes was originally rec-descent, but I switched it over to opp after seeing how slow rec-descent was.
diakopter pmichaud: did you use a precedence climbing algorithm or shunt-yard
pmichaud for the opp? 23:32
diakopter ye
s
pmichaud I don't know the terms "precedence climbing" versus "shunt-yard"
it's a pretty standard shift/reduce bottom-up parser.
diakopter en.wikipedia.org/wiki/Operator-precedence_parser mentions the shunting-yard algorithm and your PGE, as well as has a footnote to the prec-climbing one 23:33
www.engr.mun.ca/~theo/Misc/exp_parsing.htm is the "climbing" one... 23:35
lambdabot Title:
diakopter I've been concerned that I can't elegantly shoehorn the shift-reduce one into this functional/combinator approach, so I was looking at alternatives 23:36
pmichaud pge's opp is a shunting yard algorithm according to the exp_parsing.htm description. 23:37
diakopter however, that wikipedia article needs work/clarification.... oh, okay.. that helps.
thanks :)
I assume circumfix precedence isn't really treated as its own precedence level, right? 23:38
23:38 Eevee joined
pmichaud well, circumfix: is a syntactic category, not a precedence level 23:39
but it tends to occur on or about the same level as "term"
diakopter ok; that's what I thought.. oh, nm, I was misreading S03. /slapself 23:40
pmichaud: would the C source or the PIR?? source be easier for me to read if I can read C marginally better than PIR (zero)..? 23:47
for PGE I mean
23:48 hanekomu_ left
diakopter or is it written in PASM...? 23:49
pmichaud PGE is written in PIR. 23:52
(which, in retrospect, writing PGE in PIR was far easier than trying to do it in C.) 23:53
diakopter I guess I could take a look at the source of Parse::Yapp 23:54
Limbic_Region rather likes Parse::Yapp but he has only used it for one toy project 23:55
what I liked about it was that it handled both precedence and associativity out of the box with no need to eliminate left recursion
which all 3 were problems that I needed for my toy project
and P::RD sucked in those regards 23:56
diakopter Limbic_Region: my toy project solves all but the inefficient precedence part
yet..
(you can express left associate operators in the natural way)
Limbic_Region diakopter - is your intention to make the parser part of the project for general use?
diakopter associative
Limbic_Region: well, I've run into a theoretical snag 23:57
you can't have both memoization and look-behind.
and memoization is key to "Packrat" parsing
so hrm 23:58
now that I verbalized the problem, I see the solution
Limbic_Region diakopter - have you looked at the Earley Parsing algorithm? 23:59
diakopter just have the memotable lookup be aware of when it's "in" a look-behind, probably by a global variable... and have it always redo the scan at that position for that pattern
Limbic_Region: I read about it yesterday a bit