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.
pmichaud pugs: my @a = <1 2 3>; say @a.perl; 00:03
exp_evalbot OUTPUT[["1", "2", "3"]␤]
pmichaud pugs: say <1 2 3>.perl; 00:04
exp_evalbot OUTPUT[("1", "2", "3")␤]
spinclad seems a subtle distinction: container v. none? 00:07
= array v. list
mncharity sigh. all ruby's StringScanner positions are byte offsets, not character offsets. how... inconvenient. 01:08
Patterner Nobody needs Unicode. 01:11
Juerd I need Unicode. 01:12
I'm not nobody.
You lied.
Patterner Nope. I didn't say "Only Nobody needs Unicode." 01:13
Tene Juerd++ # needs unicode
Patterner You should have said "I don't need Unicode. I'm a Nobody." to make my statement a lie. 01:14
mncharity saw a note go by that a Japanese cell phone company has been inventing new glyphs for text messaging... something you can do in Japanese... but which rather doesn't fit with the Unicode picture of the universe. ;) 01:15
Tene Juerd: you still have interest in work on a good web framework for Perl 6?
Juerd Tene: Yes but no tuits.
Well, insufficient tuits. 01:16
Tene Would you have enough to harass me about doing it wrong if I started following up on that proposal you generated a while back?
Juerd Yes 01:17
Tene Okay. I'll let you know if I do. I'm hoping to use that as a project to drive my rakudo hacking.
Juerd Tene: Great 01:34
Tene: I'd suggest beginning simple, with just a CGI interface.
Do fastcgi, mod_rakudo (?), etcetera later. 01:35
Tene nods.
Juerd In any case, auto detection would be SO nice. 01:36
CGI.pm does it too. It rocks.
Tene auto detection of what?
Juerd The backend 01:37
Tene Ahh.
Juerd CGI.pm can be used in mod_perl scripts but also in CGI scripts
Now, this is hardcoded and that should be more flexibel in Perl 6 of course, but the basic idea is wonderful.
flexible
TimToady pmichaud: yes, prefix:<\>, though note that \<ws> wins as unspace under ltm 01:57
TimToady and no, I'm not on the plane to Tokyo right now, since our plane broke. 01:58
so we'll try breaking a different plane tomorrow
meppl good night 02:07
mncharity good night meppl 02:09
meppl ;) 02:10
mncharity TimToady/pmichaud: new prefix:<\> has what precedence? 02:10
Tene I think that commit finished my first real feature in rakudo, and it's something pugs never got quite right. 02:35
That was a lot of fun.
mncharity what feature? 02:38
re fun, :) 02:39
Tene Placeholder vars. I got the start in yesterday, I think, and as of today they throw an error if used in a block with a signature, and are sorted properly in the signature. 02:40
rakudo: sub f { say $^b, $^a }; f(1,2)
exp_evalbot OUTPUT[12␤]
Tene Hm. Looks like evalbot hasn't caught up.
mncharity ah, nifty 02:42
Tene Oh, huh, looks like named positional aren't working quite right. 02:49
Juerd What does " 02:53
You passed an initialization parameter that does not have a matching attribute."? mean? 02:54
(In Rakudo)
Tene Juerd: It means that you tried to create a new object and passed a parameter to 'new' that doesn't match an attribute of the class you're trying to make an instance of. 02:58
Juerd Ah. I guess its parser must be really broken then :)
Or I'm not getting it.
Tene Juerd: example? 02:59
Juerd Tene: Are you on feather?
Tene Yes.
Juerd Tene: ~juerd/creole
Creole is a wiki syntax. 03:00
Would be so cool to have a Perl 6 wiki :)
Tene Do you know where the error is coming from? 03:01
Juerd The if block somehow. 03:02
Tene Huh.
Juerd I first commented away the $<foo> = things in the grammar so it would parse the grammar
Then when it no longer threw an error, I added the if block to test.
Then it gave "You passed an initialization parameter that does not have a matching attribute."
Tene Happened somewhere in rule heading 03:11
It's something about the captures. 03:16
Commenting the captures makes it not fail on trying to match.
Juerd Oh 03:23
In any case I have to try again in a few weeks :)
pmichaud Tene++ # placeholder vars 03:27
mncharity: according to S03, prefix:\ has the same precedence as the other tight unaries 03:28
(if I'm reading it correctly, that is.)
mncharity pmichaud: doh. I forgot the big operator table in S03. hmm, I wonder what else in it is missing from STD.pm... 03:33
pmichaud S03 is what convinced me that "prefix:<\>" was probably right in the first place.
without that, I was wondering where the leading \'s were being parsed :-) 03:35
Tene Anyone know how often exp_evalbot updates its rakudo?
pmichaud not me.
mncharity no idea, sorry 03:36
Tene Eh, it'll update eventually.
mncharity possibly missing: .::
TimToady actually, it'd be spelled prefix:<\\>, I suppose 03:37
pmichaud right
mncharity ?& div mod (Multiplicative) 03:38
lambdabot Maybe you meant: . ? @ v
pmichaud TimToady: how about $a => $b .... is that infix:<< => >> or just not in STD.pm yet? 03:39
(or am I missing it in STD.pm?)
ah... I see it in the "item assignment" precedence level 03:40
mncharity sin et.al. (Named_unary)
pmichaud (in S03)
TimToady but yes, it seems to be missing
pmichaud Juerd: depending on how it's written, I would think that rakudo would be able to handle $<foo> = ... in regexes 03:42
mncharity S03 mentiones an absent Nonchaining leg . err, what's a leg? 03:43
pmichaud leg is the string version of <=> 03:44
i.e., what p5 would call 'cmp'
mncharity ah, ok. 03:45
eqv missing from Chaining
min max from Tight_or 03:46
S03 has ff and fff as Conditional, but STD has them Nonchaining. ?? 03:47
the S03 table doesn't mention level List_assignment 03:49
TimToady they're supposed to be conditional 03:50
mncharity thanks. :) hey, that's a STD.pm edit I can do (if someone else doesn't do it first this evening:) 03:51
X~X X*X XeqvX missing from List_infix 03:52
mncharity <<==, ==>> missing from Terminator 03:54
TimToady the table at the front is not meant to be complete
merely suggestive 03:55
pmichaud I think mncharity is saying that items in the table are missing from STD.pm
TimToady the XxX's are metaops
so don't get their own rule 03:56
mncharity ah, ok
got it infix_circumfix_meta_operator:sym<X X>
S03 mentions a List prefix : . which is that? 03:59
TimToady at one point we were analyzing the invocant marking : that way, not sure now 04:01
TimToady but it's probably actually the : on the end of $obj.meth: or meth obj: 04:02
mncharity strawman "things to add to STD": Symbolic_unary prefix:<\\>. .:: in dotty:sym<.*>. Multiplicative  ?& div mod . Item_assignment => . Named_unary sin (and many others... hmm :/ ). Nonchaining leg . Chaining eqv . Tight_or min max . ff fff changed to Conditional. Terminator <<== ==>> . 04:03
re : , ah, ok. hmm. add that too, or wait? 04:04
Much nicer to work in this direction than parsefail->debug->etc. 04:05
:)
TimToady at least one form of it is already under methodop 04:06
mncharity right. ok, punt for now.
mncharity goes back to debugging "add unicode character, get high order nonlinear non-local slowdown" problem... 04:08
pmichaud: thanks for mentioning the table. :) 04:09
pmichaud do named unaries appear in STD.pm, or should they be a function of the fact that things like sub foo ($) { ... } automatically appear at named unary precedence?
(from S06) 04:10
TimToady not any more
must use prefix:<foo>
pmichaud ah, S06 is out of date then?
and then my question becomes... do named unaries such as sin, etc. appear in STD.pm, or do we treat them in the same way that we would "sub prefix:<sin> ($) { ... }" ? 04:11
TimToady they come from Prelude 04:13
maybe even by import 04:14
pmichaud okay, works for me.
pmichaud TimToady: hope your talk went well :-) 04:15
TimToady for being very hand-to-mouth, and changing the last half on the day-of, it went quite well. 04:16
pmichaud heh
"creating the last half on the day-of" seems to be my m.o. lately.
although I think that won't happen much this year, as I've already given drafts of my talks for the summer :-) 04:17
I might even find time to add some graphics and pictures. :-) 04:18
pmichaud well, time for sleep 04:24
afk, be back tomorrow
mncharity shudder. gross slowdown resolved. a s/a small re/ /g... where it looks like the two spaces ended up in a different encoding from the string (ruby being "let things have lots of different encodings"). from the glacialness looks like it was repeatedly reencoding the string, adding two spaces, reencoding it back, etc.
good night 04:25
congrats on drafts
mncharity goes looking for the default precedence of infix ops... 05:39
mncharity pugs: while $x-- { return 24; } return 42; 05:54
exp_evalbot OUTPUT[*** ␤ Unexpected "--"␤ expecting "::"␤ Variable "$x" requires predeclaration or explicit package name␤ at /tmp/hQoV3VbQBT line 1, column 9␤]
Tene rakudo: sub f { say $^b, $:c, $^a }; f(1,2,:c(3))
exp_evalbot OUTPUT[231␤]
mncharity pugs: while false { 3 } return 4; 05:55
exp_evalbot OUTPUT[*** No such subroutine: "&false"␤ at /tmp/YPfZxS7AM9 line 1, column 7-13␤]
mncharity pugs: while 0 { 3 } return 4;
exp_evalbot OUTPUT[*** Cannot use this control structure outside a 'routine' structure␤ at /tmp/QIYqh0igIm line 1, column 15-23␤]
mncharity pugs: while 0 { 3 } say(4);
exp_evalbot OUTPUT[4␤]
mncharity Anyone have an opinion on whether that while is properly terminated, or instead requires a ; after the } ? 05:56
Eevee what else could go after it? 06:01
also, mncharity: latest moose has a way different arrangement of tests than pugs/t/from_moose. worth syncing? 06:02
mncharity jo Eevee 06:15
re what else, 'while 0 { 3 }; say(4);' vs 'while 0 { 3 } say(4);'. ie, is the semicolon required.
s/jo/hi/ 06:16
off by one error
Eevee I know, I mean: is there an ambiguity? could anything except a new statement go after the closing brace
mncharity re worth syncing, don't know. either sync, or svn rm all the .t.orig files which were never touched (my fuzzy recollection is one was worked on?). 06:17
re ambiguity, while 0 {} if 1; 06:18
maybe 06:19
Eevee ehh. that's kinda awkward, not sure if it's worth requiring a semicolon (or making it parse differently based on whether or not a newline follows) 06:23
now that I think about it, a for {} else {} would be handy 06:26
but that's a different block, shouldn't need a semicolon there either 06:27
mncharity the issue is more that there are a set of conditions in which a semicolon is faked after a block. and my initial impression is that example doesn't match any of the current conditions. 06:28
pmichaud S04: Though certain control statements could conceivably be parsed in a self-contained way, for visual consistency all statement-terminating blocks that end in the middle of a line must be terminated by semicolon unless they are naturally terminated by some other statement terminator: 06:30
mncharity stdstopper in svn.pugscode.org/pugs/src/perl6/STD.pm , though it's a bit broken there at the moment.
pmichaud S04: while yin() { yang() } say "done"; # ILLEGAL
mncharity yay. thanks. 06:31
fixing test...
pmichaud fwiw, I like the approach rakudo uses for handling statement terminators. There's probably some case it can't handle properly, but thus far it's worked out very well in NQP and rakudo. 06:33
Eevee oh, okay then 06:35
mncharity svnbot looks to still be broken. anyone? 06:41
anyway, pmichaud++ Eevee++
Auzon where is svnbot stored?
mncharity feather? dunno :/ 06:42
do we have an infrastructure doc? looking...
examples/network/README 06:43
pmichaud afk again, sleep for real this time :-)
Auzon I found an svnbot.pm in /pugs/docs/feather. Is that the right file? 06:44
mncharity SLAVES
sleep++ end of day for me two. :)
Auzon see you 06:45
Eevee sleep sounds good, eventually
mncharity the SLAVES entry for svnbot is diakopter
diakopter: svnbot is silent...
examples/network/svnbot.pl docs/feather/svnbot.pm 06:46
re 'Is that the right file?', no idea. 06:47
Auzon I think it is. I suspect it just needs to be restarted on feather 06:48
mncharity sounds plausible. could be nice to expand the feather/README file with details. 06:49
ah well. can't check in today's STD_red changes without breaking elf. have to thing about that. tomorrow. non-choking on pugs t/ up from ~60% to just under 70% of files. (usual caveat - non-choke does not imply a correct or useful parse). almost there. just need a few more files clear before fleshing out elf. 06:52
TimToady: re strawman STD.pm changes previously mentioned, so... should I make the changes, or no? 06:53
good night all & 06:54
re feather, can we tweak svnbot or otherwise set things up, so it gets restarted automagically? 06:55
Tene It's unclear whether @_ and %_ should throw a parse error not when used in a block that already has a signature. 07:13
s/not/or not/
Tene rakudo: sub f { say $^foo, $:quxx, $^bar, @_[0], %_<frob> }; f(1, 2, 3, :quxx(4), :frob(5)); 20:58
exp_evalbot OUTPUT[24135␤]
mncharity diakopter: svnbot still dead :( 21:17
meppl good night 21:44
mncharity 'night
meppl ;) 21:45
mncharity Tene: while it's all fresh, could you review/add test coverage? 21:53