»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot: perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 27 June 2009.
00:12 kane_ joined 00:15 hercynium joined, hoelzro left 00:17 kane_ left 00:18 frew_ joined 00:22 Chillance joined 00:27 hoelzro joined 00:28 jrtayloriv left 00:29 hoelzro left 00:30 ascent_ left 00:32 jrtayloriv joined
mikehh rakudo (0cdcc88) on parrot r40175 (spec at r27624) make test/make spectest PASS - Ubuntu 9.04 amd64 00:47
00:49 jrtayloriv left 00:53 Chillance left 01:02 Jedai joined
pugs_svn r27635 | lwall++ | [S03] rename 'nonchaining infix' to 'structural infix' 01:03
tann_ rakudo: my %h; %h<a><b>; 01:08
p6eval rakudo 0cdcc8: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'␤»
01:09 Jedai left 01:12 explorer left
skids rakudo: my %h; %h<a>.WHAT.say 01:13
p6eval rakudo 0cdcc8: OUTPUT«Failure()␤»
skids ...is why. Maybe worth making that failure contain text. 01:14
tann_ skids: should be some clever error msg 01:15
TimToady well, and the fact that Failure.{} doesn't work correctly :)
tann_ rakudo: my %h; %h<a>;
p6eval rakudo 0cdcc8: ( no output )
TimToady the intent is that %h<a><b><c> just return undefined even if <a> doesn't exist
(in rvalue context) 01:16
(in lvalue context autoviv happens)
skids ah.
TimToady perhaps it should just return Nil, and Nil<> produces more Nil 01:17
tann_ timtoady: behavior still like p5 then?
Nil would be neat
TimToady well, even p5 can have trouble with cascaded failures
but I wanted p6 to do it right, fsdor 01:18
tann_ or else, it would've been just p5++ :P
TimToady :B <- forked tongue 01:19
sjohnson or bucktoothed smile 01:20
TimToady :BB or both
sjohnson ( `ー´)
TimToady :B< 01:21
sjohnson 14( 13*14≖‿≖13*14)
tann_ timtoady: i still wanna see $s.trim([:head|:tail|:both]) 01:23
my xmas wish :)
only a geek can love s/^\s+//g; or s/\s+$//g; :D 01:24
01:30 tann_ left
sjohnson my magical birthday candle wish is to have trim in Perl 5 01:30
speaking of which, TimToady, do you have any recommendations as to how to get the attention of some high-echelon Perl 5 core maintainers? 01:31
i think moritz_ gave me a good hint... backlogging
01:32 meppl left
sjohnson hmm maybe not 01:34
01:37 ascent_ joined
pmichaud good evening, #perl6 01:41
01:41 KyleHa joined
TimToady .HOWdy 01:41
what's up at the con tonight?
pmichaud I have no idea -- I left. The board only showed a few BOF sessions, all of which ended around 6:30p I think 01:43
So I grabbed me some dinner (yummy) and now some reading+hacking 01:44
Maybe I'll fix some of the bugs that Damian exposed during his tutorial today. :-) :-)
pugs_svn r27636 | lwall++ | [Cursor] translate \x[] to \x{} in symbol names 01:45
r27636 | lwall++ | [STD] rename Nonchaining to Structural
r27636 | lwall++ | [STD] awesomize the disallowed-metaop messages a bit
r27636 | lwall++ | [STD] assignment ops now set dba to "assignment"
r27636 | lwall++ | [STD] assignment ops no longer considered fiddly
TimToady I working on my talk, as you can see :)
pmichaud One of the post-tutorial remarks: "...you mean the spec isn't frozen yet?!?" 01:46
:-P
If only we didn't have talks (or applications) then we might be done by now :-) :-)
TimToady or specs to chill down...
well, I'm being called to dinner, so in the interests of domestic harmony... 01:48
oink &
pmichaud (domestic harmony)++
pugs_svn r27637 | kyle++ | [t/spec] Rename "nonchaining" to "structural" (in comments) to agree with spec. 01:50
KyleHa std: my $t = 5; $t\i; 01:54
p6eval std 27635: OUTPUT«ok 00:02 37m␤»
KyleHa std: my $t = 5; $t.i
p6eval std 27635: OUTPUT«ok 00:02 37m␤»
01:58 synth left, synth joined
pugs_svn r27638 | kyle++ | [t/spec] Test for RT #63066 02:11
02:14 ascent_ left
colomon Just wanted to report that I've written another Perl 6 script for work. 85 lines, and while I don't know that I gained much by writing it in Perl 6 instead of Perl 5, I don't think it slowed me down my coding by more than about 5%. No NYI issues or bugs at all. Yay! 02:27
pmichaud colomon++ 02:28
blog it somewhere, perhaps?
colomon I could blog those results, but not the code -- it's at least mildly proprietary and completely useless to the outside world, as it's for converting from one funky internal format to another. 02:30
Blogging that general point is a good idea. I will do.
02:32 sri_kraih_ left 02:34 jhorwitz left 02:44 tomyan joined 02:46 colomon left 02:51 synthEEEE joined 02:55 synth left
dalek kudo: d69cfe6 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get proper exception from unfound regex.
02:55
kudo: b756ac9 | pmichaud++ | src/parser/quote_expression.pir:
Allow comments in << ... >> (qq:ww) lists.
02:56 synth joined 02:57 alester joined
pugs_svn r27639 | kyle++ | [t/spec] Test for RT #63430 03:03
KyleHa That was a tough one. Anyone around who can sanity check me? 03:04
pugs_svn r27640 | lwall++ | [identifier.t] add missing sub body 03:05
r27640 | lwall++ | also, eval'd sub defs can't be called with via lexical name
r27640 | lwall++ | and package calls require & form to bypass MMD rules.
pmichaud sanity checking
pugs_svn r27641 | lwall++ | [STD] check that names that look like keywords aren't extended by ' or - 03:06
03:06 tomyan left
TimToady KyleHa: see r27640 note 03:07
KyleHa eval'd sub defs can't be called via lexical name??
TimToady foo() is a multi-dispatch call
and multi-dispatch calls never look in the package
and when you eval a sub def, you only get a package name'd su b
since the eval is its own lexical scope, and loses the alias 03:08
so &foo() is how you have to call a package sub
KyleHa Is "foo()" a multi-dispatch call because it lacks '&' on the front?
TimToady yes
whereas &foo is just a name lookup 03:09
which finds the package sub
KyleHa I think I may have to ponder this. I'm still thinking Perl 5 where every sub is in a package unless it's a closure.
TimToady like it was a normal variable
which is why I pointed out the difficulty :) 03:10
KyleHa So '&foo' without the parens refers to the sub but does not call it.
TimToady rakudo is also suffering from some of that residual mindset
KyleHa '&foo()' with the sigil and parens calls a package sub.
TimToady correct
03:11 alester left
TimToady yes, the () there is the same as in my $foo = &foo; $foo() 03:11
KyleHa Multi-dispatch subs aren't in packages?
TimToady nope
I think rakudo still cheats there though
KyleHa Is there a good place in the docs that explains this so I don't have to soak your valuable time?
TimToady multi-dispatch is only supposed to go through lexical scopes 03:12
so that we always know the candidate list at compile time
KyleHa Hmmm. That's why a sub you define in eval can't be multi-dispatch, can't be in a lexical scope. 03:13
03:13 molaf joined
KyleHa It's lexical scope went away at the end of the string. 03:13
In fact, I think you said that a minute ago and I didn't understand it.
03:13 synthEEEE left 03:16 lucs_ left
TimToady actually, it's looking like OUR::foo() will probably work, and &foo might not, since we've defined &foo to refer to the mmd candidates as well, sigh 03:23
pugs_svn r27642 | lwall++ | [identifier] package subs have to be called with OUR::, not & 03:25
TimToady you see, even I'm confused :) 03:26
KyleHa If only that made me less confused. 8-) 03:27
araujo thinks TimToady shouldn't admit that in this channel
TimToady because it would be redundant? 03:28
[particle] where should he admit it, then? perl 6 is a 12 step program.
araujo TimToady, haha
03:28 alester joined
pugs_svn r27643 | kyle++ | [identifier] also test my goofed formulation 03:31
KyleHa Time for that ice cream I've been putting off.
alester TimToady: You're here in SJC I assume? 03:34
TimToady I am in Greater SJC. 03:36
alester oh that's right, you LIVE HERE
TimToady we all have our faults
pmichaud ...especially here. :-) 03:38
03:39 alester left 03:42 molaf left
KyleHa rakudo: sub x { try { return 'bughunt' } }; say x(); 03:47
p6eval rakudo 0cdcc8: OUTPUT«./perl6: error while loading shared libraries: libparrot.so.1.3.0: cannot open shared object file: No such file or directory␤»
KyleHa rakudo: say 1 03:53
p6eval rakudo 0cdcc8: OUTPUT«sh: ./perl6: No such file or directory␤»
pmichaud rakudo: say << one #(two) three four >>.perl;
p6eval rakudo 0cdcc8: OUTPUT«sh: ./perl6: No such file or directory␤»
pmichaud hmmpf
03:58 alester joined
pmichaud hmmpf 03:59
rakudo: say << one #(two) three four >>.perl;
p6eval rakudo b756ac: OUTPUT«["one", "three", "four"]␤» 04:00
pmichaud \o/
KyleHa rakudo: sub x { try { return 'bughunt' } }; say x();
pmichaud rakudo: say << one#(two)three four >>.perl;
p6eval rakudo b756ac: OUTPUT«Null PMC access in isa()␤in Main (/tmp/AzGQ9JR2JX:2)␤»
rakudo b756ac: ( no output )
pmichaud (I suspected that last one would fail.) 04:01
rakudo: say << one #(two)three four >>.perl;
p6eval rakudo b756ac: OUTPUT«["one", "three", "four"]␤»
KyleHa rakudo: sub x { try { return 'Null PMC access in isa()' } }; x().say; 04:03
p6eval rakudo b756ac: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/3QTNhXy7yE:2)␤»
KyleHa Nyuck nyuck nyuck.
pmichaud yes, I know about that one.
we're still waiting for parrot to updates its calling conventions a bit 04:04
KyleHa I figured.
It's a lot like the test you reviewed earlier.
pmichaud I haven't figured out what 04:05
+is eval("'møp'".encode('UTF-8')), 'møp', 'eval(Buf)';
is supposed to do exactly.
KyleHa I'm pretty sure I didn't write that.
pmichaud You're right, moritz++ did. 04:06
KyleHa But I might be indirectly responsible.
Since I kept messing up similar tests. 8-)
pmichaud I guess it expects a utf8 string to automatically decode to Str and eval the result...?
KyleHa I think the .encode() is supposed to return a Buf instead of a string, and eval is supposed to "get it." 04:07
pmichaud right, where "get it" means (I think) decode the Buf that it receives and eval that. 04:08
KyleHa I don't recall what eval should do with a Buf.
TimToady to the first approximation, eval should treat a Buf the same way evalfile would treat a file :) 04:10
pmichaud oh yes, I remember you saying that now. Makes perfect sense. 04:11
TimToady: Need anything done in Rakudo for your talk? 04:14
er, talk(s) ?
TimToady I just need to know how to make git give me the most recent version...
pmichaud git pull
and then "git checkout ."
that's what I normally do to make sure I'm on the most recent version. Might want "git checkout master" instead 04:15
KyleHa Normally I'm sitting on master, and 'git pull' is all I need.
pmichaud Yes, same here. 04:16
TimToady well, it gave me a bunch of stuff, so I'll see what happens when I reconfigure
pmichaud Rakudo #19 -should- be released by the time of your keynote. 04:17
TimToady well, I'll mostly be talking about error messages, though with more of a slant towards "wouldn't it be nice if the community gave better error messages" :) 04:18
KyleHa We have so many errors, we can't name them all. 04:19
pmichaud "Fortunately, I keep my errors numbered for these occasions" </FoghornLeghorn>
TimToady Integration manager is burning out in foo-porters near message 4352
Invalid use of rhetorical device 04:20
Tortoise/hare mismatch at line 45 04:21
any other social errors you wish there were better errors/warnings for? 04:22
pmichaud Improper chauvinism in third row
TimToady Turf protection mode enabled 04:23
pmichaud Failure to communicate in sub foo
KyleHa Deprecated man to rabbit inheritance. 04:24
pmichaud Facts not allowed in no-spin zone on channel 42
Obsolete use of cliche on line 42, in 2009 please use "foo bar" instead. 04:25
Oh, and the classic... 04:26
KyleHa Effort overflow in sub 'fanatic'.
pmichaud "Sorry, Dave, I cannot do that."
04:26 alester left, hoelzro joined
pmichaud unfortunately that's not an exception you want to catch. 04:26
TimToady Suggestion is too radical
pmichaud "Question lacks basis in reality" 04:27
or even
KyleHa Job terminated with the following error: command completed successfully.
pmichaud "Question is too hypothetical, please use additional bindings" 04:28
TimToady Overflow on multiplication of entities
KyleHa Perhaps until The Community contributes error messages, every error message will be "ouch".
pmichaud Bus error, passengers dumped.
KyleHa tri-state bus driver failure
Key term definition mismatch; dictionary resync required. 04:29
pmichaud Lack of faith disturbance in sector 3, initiating dark side corrections.
(this latter one particularly appropriate for the "Perl 6 is vaporware" crowd :-)
KyleHa: in t/spec/S02-names/identifier.t, what's the intent of the various eval-forms of the tests...? 04:32
TimToady Reply depth passed 100--possible bikeshed problem 04:33
04:33 hoelzro_ joined
pmichaud KyleHa: oh, wait, moritz++ did those too. I'll have to ask him. 04:34
KyleHa pmichaud: I think I was thinking that it died during definition.
...and also when it was called.
pmichaud KyleHa: sure, but that's what "skip" is for.
We don't need eval for that.
we only need eval if we're testing that something should in fact die 04:35
(or that it should live where an exception might be expected)
but for standard syntax-error types of things, I'd prefer to skip with fudge than eval() everything in sight.
KyleHa OK.
I'd think that it's harder to notice a skipped test succeeding than a todo test. 04:36
My inclination is to make tests as runnable as I can.
pmichaud I agree... but not to the extent of surrounding everything in eval. 04:37
Valid perl 6 syntax should be kept plain in the test files.
KyleHa Okeydoke.
pmichaud we already have tools to find where skipped tests are in fact passing.
04:38 alester joined
KyleHa I'm about an hour past my bed time now, but I'll return to clean it up tomorrow. 04:38
pmichaud okay, no problem.
in the specific case of identifier.t, I have a fix for the original RT ticket but the tests won't pass because we don't implement OUR:: yet 04:39
04:39 kane_ joined
pmichaud which means that using eval in the tests is actually getting in the way of testing the feature instead of helping it. 04:39
KyleHa Interesting.
04:39 skids left
KyleHa I didn't have the OUR:: there originally. I found out later that it's needed because of all the evals! 04:39
pmichaud Right.
Thus my point that the evals are actually interfering with the test more than helping. 04:40
TimToady and STD can't find problems inside evals
and, in fact, the sub if'a actually found a problem in STD
pmichaud In other words, we shouldn't use eval just to avoid Rakudobugs in the test -- that's what fudge is for :-)
KyleHa I'll curb my eval enthusiasm. 04:41
pmichaud I'll go ahead and clean up identifier.t now so I can test it and close the ticket, though.
TimToady @everyone»++ 04:42
lambdabot Unknown command, try @list
TimToady everyone except lambdabot
KyleHa g'night everybody! 04:43
04:44 KyleHa left, hoelzro__ joined 04:46 ihrd joined 04:49 alester left 04:51 tomyan joined 04:53 hoelzro left, hoelzro_ left 05:01 alester joined 05:03 hoelzro__ left 05:08 hoelzro joined 05:09 ihrd left
dalek kudo: ae29fbf | pmichaud++ | src/parser/grammar.pg:
Better handle hyphens and apostrophes after certain keywords (RT #64656).
05:24
pugs_svn r27644 | pmichaud++ | [t/spec]: Refactor identifier.t, unfudge for rakudo.
05:35 redicaps joined 05:40 xinming_ joined 05:45 hoelzro left 05:46 redicaps left 05:56 xinming left 06:06 sparc_ joined, tann_ joined 06:14 alester left 06:15 mj41 joined 06:18 kane_ left 06:19 tomyan left 06:22 agentzh left, agentzh joined
moritz_ pmichaud: did you figure out the test with eval and .encode, or would you like an explanation? 07:02
tann_ moritz_: rakudo.org has become a spam haven .. look at the comments 07:07
07:11 Su-Shee joined
Su-Shee good morning. 07:11
moritz_ tann_: I know, but I don't have enough privs to delete spam :(
07:12 Jedai joined
tann_ mortiz_: thought you put up the site 07:12
moritz_: i like to submit some trivial patches... the subject line should contain [patch] [perl #tktno] ? 07:13
moritz_ tann_: no
tann_: right 07:14
07:15 Eevee left
tann_ moritz: can't seem to figure out where to put the tests in..the t/spec/* looks like a maze to me :) ... might have to ask kyleha when he's on :( 07:15
moritz_ tann_: or ask me ;-) 07:17
what do you want to test?
07:23 Eevee joined 07:25 xomas_ left
tann_ moritz_: i got a trivial patch for this and 2 others rt.perl.org/rt3/Public/Bug/Display.html?id=66366 07:25
moritz_: but unsure where to put in the tests in the t/
moritz_: lemme look at spec/integration/real-strings.t again :) 07:26
07:26 dakkar joined
moritz_ rakudo: say 1.Str ~~ / ^ 1 $ / 07:29
p6eval rakudo ae29fb: OUTPUT«␤»
moritz_ that's the test
rakudo: say 1.Str eq '1' 07:30
p6eval rakudo ae29fb: OUTPUT«0␤»
moritz_ same here
bbi10
tann_ moritz_: you like me to put those tests in a patch as well? or that's what you see already in the file (as i don't see 'em) :) 07:37
moritz_: or it's gotten fixed in rakudo head branch and my rakudo is old (if that's the case, shouldn't those bugs be closed then?) ...hmm...lemme pull the latest 07:39
moritz_ it's not yet fixed; no need to include the tests in the patch 07:40
07:40 wayland76 joined
wayland76 ping bots 07:42
moritz_ I can't find bots in the DNS
wayland76 Oh, it's one of the new top-level domains. I had $100,000 spare, and I bought one, but they haven't come online yet :) 07:51
[and yes, I am kidding :) ]
tann_ rakudo: sub FtoC($d) { ($d - 32) * 5 / 9 }; say "where I live it gets up to 114F or {FtoC(114)}C degrees ... a giant natural sauna!" 07:55
p6eval rakudo ae29fb: OUTPUT«where I live it gets up to 114F or 45.5555555555556C degrees ... a giant natural sauna!␤»
Su-Shee tann_: I like real world perl 6. :)
tann_ Su-Shee: not when it speaks the truth of california weather ;) 07:56
Su-Shee tann_: hey, you still _have_ weather left, with all the debts problems and all. :) 07:57
tann_ Su-Shee: we're betting on p6 as our savior :) 07:58
Su-Shee tann_: "terminator release"? ;)
tann_ Su-Shee: "terminated vaporware" :) 07:59
Su-Shee that's mean! :)
moritz_ vapour, sauna - that fits!
Su-Shee "schwarzenegger's finest"
tann_ :))
rakudo: say (1,).perl 08:02
p6eval rakudo ae29fb: OUTPUT«[1]␤»
tann_ moritz_: ^^^ pmichaud commented on the rt tkt that it should be (1,) ... not sure the trailing comma makes sense? 08:03
moritz_ tann_: it forces the object to be a List, (1) would just be an Int 08:04
tann_ moritz_: or anything returned by an eval that is equal to the original is good enough?
moritz_ which ticket are you talking about?
tann_ lemme look
just the printing thing 08:05
.perl
moritz_: currently rakudo prints [ ] for .perl
moritz_ ah
tann_ moritz_: it should probably print out () or \() instead
moritz_ aye, one of those 08:06
presumably \()
because otherwise nested lists get flattened
and we don't want that
tann_ moritz_: my question is the trailing , is necessary at all?
moritz_ rakudo: say ( \(1) ).perl
p6eval rakudo ae29fb: OUTPUT«1␤»
moritz_ rakudo: say ( \(1) ).WHAT
p6eval rakudo ae29fb: OUTPUT«Int()␤»
moritz_ yes, it is
rakudo: say ( \(1, ) ).WHAT 08:07
p6eval rakudo ae29fb: OUTPUT«List()␤»
tann_ moritz_: i thought the output of .perl should be eval'ed back in?
so it's more like "(1)".eval
rakudo: "(1)".eval.perl
p6eval rakudo ae29fb: OUTPUT«Method 'eval' not found for invocant of class 'Str'␤»
moritz_ tann_: yes. So a 1-item list should be a one-item list again, not a number 08:08
rakudo: my $x = 1.list; say eval($x.perl).WHAT
p6eval rakudo ae29fb: OUTPUT«Array()␤»
moritz_ rakudo: my $x = 1.list; say eval($x.perl) ~~ List
p6eval rakudo ae29fb: OUTPUT«1␤»
moritz_ whatever you do to List.perl, this should always be true 08:09
rakudo: say eval('(1)') ~~ List
p6eval rakudo ae29fb: OUTPUT«0␤»
moritz_ rakudo: say eval('\(1)') ~~ List
p6eval rakudo ae29fb: OUTPUT«0␤»
tann_ interesting 08:10
moritz_ so both are no good without trailing comma
tann_ moritz_: so if there's one item in the list, stick a comma to the end so it can be coerced into list then? 08:11
rakudo: say eval("(1,)") ~~ List
p6eval rakudo ae29fb: OUTPUT«1␤»
moritz_ ist not coercion but construction
but in principle: yes
tann_ moritz_: gotcha...patch comin' :) 08:12
08:24 tann_ left 08:37 payload left 08:40 payload joined 08:44 mj41 left 08:52 rgrau joined 08:53 riffraff joined 08:54 masak joined 08:55 ejs joined 09:00 orafu joined
masak hi, structural camels. 09:01
cbk hi 09:02
moritz_ hello fine-structure butterfly. 09:03
masak flaps his wings delicately
cbk can on have a array of objects? 09:04
moritz_ sure
rakudo: say [1, 2].perl
p6eval rakudo ae29fb: OUTPUT«[1, 2]␤»
moritz_ 1 and 2 are Int objects
actually pretty much everything is an object these days
cbk I would like to do something like my @player[0] = Player.new(); 09:05
masak cbk: or maybe .shift or .push ...?
09:06 synth left
moritz_ rakudo: class Player { }; my @a; @a.push: Player.new 09:06
p6eval rakudo ae29fb: ( no output )
masak I don't like the method-call colon. I've been bitten by it. 09:07
cbk o
moritz_ luckily Perl 6 offers a different syntax as well
masak aye. 09:08
the sane one. :)
09:08 mj41 joined
cbk so, if i do something like that, could I also set some of the vars inside the obj at the same time? 09:09
09:09 icwiener joined
masak cbk: yes, in the call to new. 09:09
cbk Player class has a $name
how would it look doing it that way?
masak Player.new(name=>"Oscar")
09:10 riffraff left
cbk so if i wanted to set the 2nd player... @player[2]: Player.new(name=>"Oscar") 09:11
wayland76 Btw, whose in charge of deleting comment spam from the Rakudo site?
cbk wayland76, I thing someone is working on that 09:12
wayland76, it was talked about on the rakudo mailing list 09:13
moritz_ pmichaud and petdance, I think
wayland76 ok. Because there are two comment spams on there at the moment
(maybe more, but I see two)
moritz_ BTW I'm currently working on a fake release in the fake-release branch in my clone of the rakudo repo 09:14
s/clone/fork/
it's on github
I didn't know which .pm group to attribute, so I became... creative 09:15
I'm basically waiting for a test_summary.pl job to finish to update the numbers in the release announcement 09:17
then one final test and I'm done, it seems
09:18 lollan joined, icwiener left 09:20 pmurias joined
cbk rakudo: class Player {has $.name is rw; }; my @player; @player.push: Player.new(name=>"Oscar"); say @player[0].name; 09:21
p6eval rakudo ae29fb: OUTPUT«Oscar␤»
cbk Whats UP!!!!!
Fn SWEET!
eiro pastebin.com/f2564c783 09:24
hello world
sjohnson hi
masak y0
sjohnson sp masak 09:25
sup*
eiro in this code, i found the do {} is overkill
any beautifuller syntax ?
masak eiro: you don't need the braces, though.
eiro masak, \o/ i have questions about Web.pm ! what's the good ml for that ?
(about the code itself) 09:26
masak eiro: traditionally, the november-wiki mailing list.
also, #november-wiki here at freenode.
eiro didn't you tell me that november isn't written in Web.pm ?
moritz_ it's all about historical origins :-) 09:27
eiro ok ..
moritz_, i'm working on a macport for mod_parrot 09:28
moritz_ eiro: cool
09:28 donaldh joined
eiro i have pbs with parrot itself for the moment 09:29
09:33 unitxt left 09:38 elmex left, eternaleye left 09:41 elmex joined 09:45 explorer joined
masak eiro: lovely to hear that you are interested in Web.pm -- I'd be happy to answer questions through any medium. 09:47
09:48 missingthepoint_ joined
eiro masak, it's about basic-demo.pl : you called the sub request without argument in line 4 09:51
masak doesn't recall a basic-demo.pl 09:52
eiro but the signature says that the first argument must be $c
masak let me have a look.
eiro github.com/masak/web/blob/eede14b55...ic-demo.pl
masak ah, it's Tene's script.
eiro i don't understand from where comes the $c arg 09:53
masak eiro: aye, that looks wrong.
eiro ok .. ok
masak hm,,, or not.
eiro :))
make up your mind: mine is useless here :) 09:54
masak I'm going to lunch now, but I'll take a closer look at it when I get back.
eiro ok ... thanks
masak it's not necessarily wrong.
eiro: have you tried running it?
eiro masak, no: i'm just reading all the code ... i'll try after lunch 09:55
masak :)
good. let's do a bit of Web.pm after lunch.
j'ai faim.
eiro so have a good lunch :)
masak you too, sir. 09:56
eiro alors bon appetit :)
merci
à tout à l'heure (see you later)
masak &
jnthn ahojte, #perl6 10:04
huf what is this communism? 10:08
furriners...
sjohnson eiro: t'es parti? 10:11
eiro sjohnson, je vais 10:15
moritz_ oh hai jnthn 10:16
jnthn moritz_: oh hai
How's things?
moritz_ jnthn: great; parrot released; rakudo looks like it's in a good shape for release too; KyleHa++ has been contributing lots of tests
jnthn Awesome. :-) 10:18
I'll be digigng back into things in the next day or so.
sjohnson eiro: ah... d'accord.. salut
10:34 fridim_ joined 10:36 mizioumt joined 10:37 SmokeMachine left 10:45 wayland76 left 10:48 meppl joined
masak jnthn: you're back! ahoj! \o/ 10:50
pugs_svn r27645 | pmurias++ | [re-smop] an experiment with special casing goto and exists 10:51
r27646 | pmurias++ | [re-smop] added basic punned class caching to RoleHOW
jnthn masak: Ahoj! :-) 11:06
masak: Been busily bug-reporting in my absence? :-)
jnthn didn't glance RT yet
masak jnthn: actually, no. 11:07
the bug reporting has been levelling of somewhat.
due to a combination of factors, I think.
main one probably lack of time to do cool new things in Perl 6.
11:14 colomon joined
masak yep, definitely a downturn. only 8 masakbugs in the past two weeks. 11:15
jnthn Wow! 11:16
masak and three of them were false alarms, due to a destructive doc patch I made. :/
jnthn wonders if there could be a reversal in the rising bug queue size trend
masak jnthn: stranger things have happened.
jnthn Did "say" really get broken?! 11:17
masak yes, but that was my fault. :/
masak <-- careless
jnthn Eh, mistakes happen. 11:18
masak nod.
some day I'll learn to run the tests before committing, though.
11:20 donaldh left, colomon left 11:21 donaldh joined 11:23 sri_kraih joined
pugs_svn r27647 | pmurias++ | [re-smop] instead printing out a call tree SMOP_PROFILE=output_file prints out the time when methods were called 11:25
11:31 rjh left 11:40 hudnix left 11:48 KyleHa joined
pmurias masak: no need to learn, just automate it ;) 11:48
masak pmurias: wise point. 11:49
11:49 mikehh_ joined 11:57 ascent_ joined 11:59 rgrau left 12:04 mikehh left 12:05 ispy_ joined 12:07 Teratogen left
pugs_svn r27648 | bpetering++ | [misc/irclog] Demo of JS nick filtering for #perl6 irc logs 12:25
eiro masak, it actually doesn't work :) 12:28
missingthepoint_ how can i get svn.pugscode.org/ to send text/html content type?
do i have checkin problems?
(svn.pugscode.org/pugs/misc/irclog/i...lter.html) 12:29
eiro there is only a daemon mode working
12:29 rjh joined
moritz_ missingthepoint_: I think you have to set the content type with some svn props 12:29
missingthepoint_ moritz_: i think you're right, 2 secs 12:30
pugs_svn r27649 | bpetering++ | [misc/irclog] Proper MIME type for JS nick filtering demo 12:31
missingthepoint_ oops, need JS files :|
masak eiro: ok, time to clean up the Daemon business once and for all. 12:32
masak wishes mberends were here
moritz_ missingthepoint_: this does... *drummroll* exactly nothing.
missingthepoint_ moritz_: wait 2 secs! 12:33
moritz_ 2
1
0
bbl
masak I need to go ask the Rack people how they solve the web server thing without nasty dependencies.
pugs_svn r27650 | bpetering++ | [misc/irclog] JS filtering needs jQuery
missingthepoint_ moritz_: that's about what i had in mind. 12:34
moritz_ ah, better 12:35
now also set the charset to UTF-8, and we're getting somewhere :-)
afk 12:36
12:36 donaldh left, donaldh joined
masak just realized something 12:40
the thing called 'aliasing' in Perl 5 for-loops,
that's actually a kind of := binding, right? 12:41
12:41 synth joined
KyleHa I think so, yes. 12:41
masak for some reason it feels much easier to think about it that way. 12:42
jnthn Thinking about it as binding probably works. 12:43
pmurias isn't it binding exactly?
jnthn is happy to see the spectests look about the same as they did before he went away.
(The spectest results that is.)
(No new epic fail. :-))
pmurias: Very possibly. I don't know Perl 5 guts at all, so no clue how it's actually done.. 12:44
masak jnthn: don't know if you missed pmichaud big effort with the Parrot people to eradicate some unsettling GC errors.
jnthn I saw on the mailing list the "plea from Rakudo land" thread, yes. 12:45
12:45 KyleHa left
masak a, good. 12:45
s/a/ah/ 12:47
12:47 clintongormley joined
clintongormley After a month of using Java and Actionscript, I marvel (once again) at how much sense Perl syntax makes 12:57
but i'm actually looking forward to the ability to use strict typing, which I didn't expect 12:58
12:58 mikehh_ is now known as mikehh 13:02 seb__ joined 13:04 molaf joined
eiro masak, sure :) 13:09
13:09 Front_slash joined 13:10 Avada is now known as Rolo, Rolo is now known as Avada 13:15 Front_slash left 13:16 Front_slash joined 13:17 szabgab left 13:18 asciiville2 joined
missingthepoint_ what's the syntax for labels (e.g. FOO: while (cond) { stuff; redo FOO })? 13:18
and do they work in rakudo?
and should i be able to find out either of those points easily without asking here? :) 13:19
PerlJam the syntax is the same as perl 5 and AFAIK, rakudo does not yet support it.
jnthn They don't work in Rakudo yet, unless they appeared in the last 10 days. :-) 13:20
missingthepoint_ ah.
thank you
13:20 asciiville2 is now known as asciiville 13:23 M_o_C joined
masak the syntax is the same as in Perl 5, except that if you goto a label that hasn't been declared yet, you must string-quote it. 13:23
13:23 skids joined
missingthepoint_ masak: thanks, that's very informative :) 13:25
and jnthn and PerlJam
13:25 wayland76 joined
PerlJam masak: where does it say that in the spec? 13:29
missingthepoint_ PerlJam: that's exactly what I'm wondering
PerlJam I'm reading S04 and I don't see it. 13:30
moritz_ std: goto foo 13:31
p6eval std 27650: OUTPUT«Undeclared routine:␤ foo used at 1 ␤ok 00:02 36m␤»
moritz_ std: foo: goto foo
p6eval std 27650: OUTPUT«ok 00:02 36m␤»
PerlJam I'm not saying I don't believe it to be true, I just want to know where the spec mentions it :)
moritz_ every "bareword" that's not declared previously is parsed as a sub call
that should be specced somewhere 13:32
wayland76 Well, S02 seems to imply that it's the same as Perl 5 13:33
Line 3261 13:34
masak PerlJam: it might not be specced, actually.
PerlJam: I have it from TimToady.
wayland76 a quick grep doesn't show it in the spec either 13:35
13:37 lucs_ joined, mizioumt left
PerlJam maybe we need a 4th document type: consequences (to go along with our specifications, justifications and explanations) 13:37
:-) 13:38
13:38 lucs_ left
wayland76 What would we put in it? 13:38
PerlJam All the things that fall out of the specifications that may not be immediately obvious. 13:39
missingthepoint_ PerlJam: exactly what I was thinking
moritz_ that's usually called "user documentation"
missingthepoint_ does that fall under the scope of U4X? 13:40
moritz_ in the long run, yes
pmichaud: github.com/moritz/rakudo/downloads featuring fake 2009-07 release
PerlJam dearly hopes u4x has a semantic index of some sort
moritz++
moritz_: went smooth? 13:41
moritz_ PerlJam: literal++ is working on that for his gsoc project (sort of)
PerlJam: aye, apart from small stupidities on my side
PerlJam I may try a mock rakudo release myself tonight
Su-Shee shall I fetch them and try them out? 13:45
literal could you define "semantic index"?
moritz_ Su-Shee: that would be appreciated 13:46
Su-Shee clicks. 13:47
got moritz-rakudo.. :) 13:48
moritz_ the rakudo-2009-07.tar.gz file
code-named "Moon", after the inspiring Moon.pm perl mongers :-)
Su-Shee moritz_: it's plainly clicking the download button in github, very convenient.
masak waitwait, Moon.pl? 13:49
er, s/pl/pm/
13:49 kane_ joined
moritz_ masak: I didn't know whom to dedicate it... 13:49
Su-Shee Checking out Parrot r40185 via svn....
moritz_ before a serious release I would have asked around here :-)
13:51 mikehh left
PerlJam literal: an index of concepts more than words. 13:51
Su-Shee (why is nobody naming their releases after hot actresses of the 40ies of something like this.. mae west-release ... joan crawford release.. :)
literal ah 13:52
13:52 asciiville left
moritz_ Su-Shee: because they can't buy you a beer in return :-) 13:52
PerlJam literal: for instance, I'd like to find all of the places that deal with some aspect of barewords whether they explicitly mention "bareword" or not. 13:53
moritz_ hm, tags?
Su-Shee moritz_: but maybe champagne? ;)
moritz_ actually I drink neither :-)
Su-Shee moritz_: well, the gesture counts.. :) 13:54
moritz_ the idea with .pm groups was just that groups who supported rakudo/parrot/Perl 6 development would get some kind of attribution and good press
PerlJam My mortiz-rakudo seems to be doing well. It builds, it runs, and I'm just waiting to see how it deals with spec-tests
Su-Shee PerlJam: yeah, boring release. make just runs.. 13:55
13:55 mikehh joined, mj41 left
missingthepoint_ PerlJam: this is uncanny. You've been echoing my thoughts nearly verbatim 13:55
Su-Shee done. there it is. a shiny new binary. 13:56
PerlJam missingthepoint_: you're just unconsciously picking up on my brain waves ;)
masak moritz_++
Su-Shee tests are "make test"?
missingthepoint_ PerlJam: hehe :)
masak hopes to be able to build a release too
PerlJam Su-Shee: make test && make spectest
Su-Shee here we go.
Files=29, Tests=236, 71 wallclock secs ( 0.20 usr 0.02 sys + 67.34 cusr 2.22 csys = 69.78 CPU) 13:58
Result: PASS
moritz_ 'make spectest' will take a big longer :) 13:59
13:59 chid left, kane_ left
PerlJam indeed. 13:59
Su-Shee moritz_: I still got the nasty gcc version. but everything seems fine.
PerlJam the only hiccups I noticed in "make spectest" is that there are redeclaration warnings in t/spec/S04-declarations/constant.rakudo and t/spec/S04-declarations/multiple.rakudo (I haven't looked to see if that was on purpose or not) 14:00
M_o_C Is Rakudo supposed build against Parrot-trunk?
pugs_svn r27651 | pmurias++ | [re-smop] move yeast frame to the RI DSL
r27651 | pmurias++ | added hints to AST::Block
PerlJam (and, of course, I'm still waiting on make spectest to finish)
M_o_C s/ed\s/ed to/
PerlJam M_o_C: it targets a specific version of Parrot given in build/PARROT_VERSION 14:01
er, build/PARROT_REVISION
Su-Shee M_o_C: if you do it with perl Configure.PL --gen-parrot it fetches the appropriate parrot version into the rakudo dir.
14:02 frew_ left
moritz_ PerlJam: at least the ones in multiple.t are not easily removable, and have been there for quite some time 14:02
Su-Shee moritz_: what did you do to make this release? 14:04
PerlJam Su-Shee: he followed the instructions! :)
moritz_ Su-Shee: I followed docs/releas_guide.pod or whateve it's called
masak shrewd lad.
Su-Shee ah. ok. ;)
now I'm at the redeclaration warnings in S04. 14:06
moritz_ some of them test redeclartions :-) 14:07
14:10 pmurias left 14:13 mj41 joined
masak ok, I have a request. 14:23
rakudo: say ~[\*] 1..10
p6eval rakudo ae29fb: OUTPUT«Statement not terminated properly at line 2, near "1..10"␤Null PMC access in get_pmc_keyed()␤current instr.: 'perl6;Perl6;Compiler;eval' pc 290105 (src/gen_actions.pir:24150) (src/gen_setting.pm:3340)␤»
masak before we release, it'd be kinda nice if we tracked down the Null PMC access that seems to appear at some (all?) error reports nowadays. 14:24
Su-Shee hm, I have a FAIL. 14:30
14:30 hoelzro joined
PerlJam Su-Shee: t/spec/S12-attributes/clone.t ? 14:31
Su-Shee (Wstat: 6 Tests: 26 Failed: 0) Non-zero wait status: 6
14:31 mj41 left
[particle] blames jnthn 14:31
masak no, that looks like an old failure.
jnthn Me? I've not been here for ten days!
14:31 drbean left
jnthn sticks tongue out at [particle] 14:32
[particle] sigh, if we blame him, maybe he'll fix it!
PerlJam jnthn: that's why it's your fault! :)
moritz_ I didn't observe it (in this file), which is why I didn't regress on that file
but there seems to be a general problem with catching exceptions from a different runcore
(in parrot)
Su-Shee no, it seems to be a parrot thing and happens in .. 14:33
moritz_ which is a not fixed in parrot-1.4
Su-Shee t/spec/S12-attributes/class.rakudo
(less 6 skipped subtests: 20 okay)
moritz_ bah, I meant to skip that
Su-Shee clone.t I have with an "ok"
14:33 mj41 joined
moritz_ no good as a release manager 14:34
PerlJam oh ... I clicked on the wrong file. It's in class.rakudo for me too.
anyway, parrot is borked.
Su-Shee moritz_: oh, gee, your first release and it just threw one little thing.. bad, really bad. ;)) 14:35
PerlJam: it starts with cc.c:613: failed assertion 'PObj_is_PMC_TEST(sig_pmc)' ?
jnthn oh no not THAT assertion fail. 14:36
jnthn has spent a couple of hours trying to make some progress on that once...
14:38 nihiliad left
lisppaste3 Su-Shee pasted "rakudo release spec test" at paste.lisp.org/display/83918 14:39
14:39 KyleHa joined
Su-Shee jnthn: there it is. 14:39
14:41 mj41 left
jnthn Su-Shee: Yup, it's exactly that once I've seen before. 14:41
14:41 ejs left
jnthn Thanks for the stacktrace to confirm it. 14:41
Su-Shee jnthn: but not "the gcc thing" again?
jnthn I don't know really what causes it or how to fix it.
I don't think it's a GC bug.
Su-Shee jnthn: if you maybe remember..
ok. 14:42
because I also got this gcc problem which seems to be gone since bratislava.
moritz_ jnthn: there was some discussion on #parrot about this one
jnthn Oh? The one when building Rakudo?
moritz_: ah, ok
Su-Shee yes.
moritz_ jnthn: I think it's related to catching an expression from an inner runloop, or something similar 14:43
14:43 mj41 joined
Su-Shee besides the two redeclaration warnings that's all that fails here. 14:43
jnthn moritz_: Oh, ouch. 14:44
moritz_: That's a hard problem, then.
Most probably, anyway.
14:50 orafu left 14:51 xinming joined, mj41 left 14:54 mj41 joined 15:05 xinming_ left 15:10 kane_ joined, mj41 left 15:11 szabgab joined, frooh joined 15:12 mj41 joined 15:13 hoelzro left 15:16 hoelzro joined 15:20 donaldh left, donaldh joined, Exodist joined 15:22 alester joined 15:25 kane_ left, mj41 left 15:28 mj41 joined, lollan left, nihiliad joined 15:30 kane_ joined 15:32 xinming left, xinming joined, szabgab left 15:34 tomyan joined 15:35 Tene left
TimToady Marooned! Marooned! --Mundo Cani 15:35
15:46 [particle] left 15:48 [particle] joined 15:49 szabgab joined 15:51 dakkar left, FurnaceBoy joined, frooh left
pmichaud Good morning, #perl6 15:52
masak oh hai pmichaud 15:53
jnthn pmichaud: hi! 15:54
pmichaud jnthn: welcome back!
jnthn pmichaud: I haz a return!
pmichaud jnthn: we have a lot of work to do :-|
jnthn And yes, I ate plenty of fondu.
pmichaud: ORLY?
pmichaud fondu++
jnthn: yes, rly 15:55
jnthn Well, we're implementing Perl 6, I'd always taken "lot of work" as a given. ;-)
pmichaud okay, I guess I should say 'rework"
jnthn Ah. 15:56
The spec has moved beneath us?
15:56 tann_ joined
jnthn Or we're just hitting a point of needing a serious cleaning-up style refactor? 15:56
pmichaud the latter
15:56 explorer left
pmichaud they're all good refactors, but a lot of intertwined ones 15:57
jnthn I can believe that.
pmichaud anyway, let me know when you're ready for the list. We won't be doing any of them before the release, of course :-)
jnthn Sure. I'm tied up with something for the next five minutes or so. 15:58
pmichaud oh, no rush
KyleHa pmichaud: I'm remaking the test of OUR::sub-defined-in-eval(). Where should that go? I'm guessing not in S02-names/identifier.t
jnthn But today I'm generally doing a "getting on top of what I need to work on over the next week ro so".
*or 15:59
So would be good to discuss that soon. :-)
pmichaud okay, today works. Tomorrow I'm likely to be busy-ish
masak pmichaud: do the refactors include addressing the fact that many Rakudo errors seem to produce Null PMC Accesses nowadays? 16:00
pmichaud masak: they do. 16:01
moritz_ KyleHa: t/spec/ seems to be pretty sparse on OUR:: - maybe start a new one in S02-names/
KyleHa moritz_: OK, thanks. Does 'our.t' make sense, or should it be package.t or something?
pmichaud KyleHa: 'our.t'
moritz_ pseudo-packages.t to be more general 16:02
KyleHa I'll flip a coin.
pmichaud I think it's worth having separate files for each psdo-package
moritz_ go with pmichaud then
KyleHa OK, I'll go with our.t
missingthepoint_ pmichaud, masak: does this mean some of those errors will produce more sensible messages... by any chance? :) 16:03
pmichaud missingthepoint_: depends on the source of the error 16:04
but yes.
masak missingthepoint_: any specific error you're thinking of?
pmichaud For example, I manaaged to eliminate a Null PMC error last night for unrecognized regexes
masak \o/
missingthepoint_ hmm, don't think i've hit that one yet 16:05
masak has
missingthepoint_ but thank you anyway :)
pmichaud++
masak pmichaud++
pmichaud rakudo: say 'a' ~~ / <a> /; 16:06
p6eval rakudo ae29fb: OUTPUT«Unable to find regex 'a'␤in regex PGE::Grammar::_block51 (/tmp/yKAuAvFNMu:1)␤called from Main (/tmp/yKAuAvFNMu:2)␤»
missingthepoint_ yummy! 16:07
that's a tasty morsel of error message.
just generally i get "Null PMC" in lots of the parse errors 16:08
pmichaud Null PMC in parse errors shouldn't occur all that often. 16:09
missingthepoint_ I'll try and find some examples
ofc i've been learning perl 6 for a week or so, so my understanding of what's a parse error and otherwise is not very refined. 16:10
ok, i shouldn't have said 'parse error', that was misleading 16:12
I see "Null PMC access in get_pmc_keyed()" a LOT
pmichaud I'd need to see some examples there... but yes, we know they exist. 16:13
I think we can eliminate them soonish.
pugs_svn r27652 | kyle++ | [t/spec] simplify RT #64656 tests 16:15
r27653 | kyle++ | [t/spec] Add S02-names/our.t
missingthepoint_ ok, this produces one (i don't know if the code even makes sense though)
jnthn pmichaud: OK, I'm here now.
Well, free. :-)
pmichaud jnthn: okay, just a sec -- I need to check on some Parrot release details 16:16
PerlJam It's too bad you can't just make all "parrot errors" go to a generic routine that say "Something broke on line 45" (but with better wording). So that at least it could look like rakudo knows what's going on :)
16:16 pmurias joined
pmichaud PerlJam: that seems to just sweep the error into another useless place 16:16
jnthn PerlJam: Well, we could detect Null PMC Access errors and just say something else.
PerlJam: But it doesn't really change much.
masak pmichaud: re 'eliminate them soonish': would that be before or after the Thursday release? 16:17
jnthn Internal Compiler Error
Or something
pmichaud masak: after.
jnthn But it's not so much better.
masak ok.
pmichaud masak: many of them need a significant internal refactor of lexical handling
masak pmichaud: well, it's not really critical, just annoying.
jnthn Ah, that.
masak pmichaud: we might get a lot of bug reports on it, I fear.
pmichaud masak: bug reports on ... null PMC errors? You mean more than we've been getting? 16:18
PerlJam I didn't say it would solve anything useful, but errors generated from parrot are always more annoying than those generated from rakudo.
masak pmichaud: well, these will all be duplicates in some sense. 16:19
missingthepoint_ ok, this (stupid) example gives me "null pmc ...."
pmichaud masak: I'm fine with that.
missingthepoint_ rakudo: for 1,2,3 -> $foo { $foo = 5 }
masak good.
p6eval rakudo ae29fb: OUTPUT«Cannot assign to readonly variable.␤Null PMC access in get_pmc_keyed()␤current instr.: 'perl6;Perl6;Compiler;eval' pc 290105 (src/gen_actions.pir:24150) (src/gen_setting.pm:3340)␤»
pmichaud masak: Yes, it'd be nice if there was a quick elimination... but I looked at it last week and that's what led me to the conclusion that we've got some significant refactoring to do 16:20
missingthepoint_ ...but i have no idea what a sensible error message might be there.
PerlJam missingthepoint_: it should stop at "Cannot assign to readonly variable"
pmichaud missingthepoint_: that's an excellent example ... there should not be a Null PMC error there.
jnthn That looks like something has gone awry in the backtrace printing code. 16:21
pmichaud agreed.
if we're just getting Null PMC messages in the backtrace code, those aren't real Null PMC errors
(and that can likely be fixed pre-release)
masak even better. 16:22
pmichaud I'll look at it in a bit.
jnthn Aye, agree. 16:23
pmichaud jnthn: are backtraces currently tied to exceptions?
i.e., is there a way to get a backtrace from places other than exceptions?
jnthn So far, just the exception.
Well, you can get the active annotations I gues.
*guess
There's ops for that. 16:24
pmichaud I'm thinking we ought to be able to do it for any continuation.
jnthn Are you more wanting to get the annotations at...yes, I'd like that too.
moritz_ then you can implement caller()
16:24 xinming_ joined 16:26 masak left, justatheory joined 16:31 cdarroch joined 16:32 sri_kraih_ joined 16:34 tann_ left 16:35 hercynium left, rjh left
pmichaud (elimninating spam from rakudo.org) afaik, nobody is "responsible" for that. 16:36
I've been doing it from time to time, but haven't had time lately
missingthepoint_ volunteers
16:37 xinming left
missingthepoint_ (has time) 16:38
16:38 rjh joined, gbacon left
pmichaud looking at how to do that in drupal... 16:38
16:40 sri_kraih left
missingthepoint_ drupal.org/project/antispam ? 16:40
pmichaud I don't have the ability to add modules to our drupal instance... only Andy can do that. 16:41
I'll see if the module is already installed, though.
alester what module
no, it's not
I'm gonna try to talk to some drupal folks this week. 16:42
pmichaud Andy: For now I'm creating a new role that allows others to administer comments
alester pmichaud: ok
pmurias wanders if he added ... placeholder to gcc would they accept it 16:43
pmichaud missingthepoint_: do you have a rakudo.org account? 16:44
missingthepoint_ pmichaud: no
moritz_ would also volunteer to delete some spam
pmichaud (I've also set it so that content authors have the ability to administer accounts)
er, "administer comments" 16:45
(this is what I get for trying to chat on irc while in Damian's talk)
missingthepoint_: can you get a rakudo.org account?
missingthepoint_ pmichaud: done 16:46
pmichaud username?
missingthepoint_ missingthepoint
pmichaud okay, you should now have the ability to delete comments. 16:47
missingthepoint_ kaboom! 16:48
16:48 gbacon joined
moritz_ just deleted some, it works 16:48
missingthepoint_ moritz_: i think we may be racing :) 16:50
moritz_ missingthepoint_: I'll let you do it for a while then 16:51
16:52 Psyche^ joined
missingthepoint_ moritz_: i'll do it this week :) 16:52
pugs_svn r27654 | kyle++ | [t/spec] Test for RT #63460 16:53
missingthepoint_ but i think it's possible to catch stuff like that heuristically, and i'm sure there are drupal modules to do so 16:55
16:55 hoelzro left
moritz_ there's "akismet" for wordpress 16:56
which is a centralized comment spam filter
dalek kudo: a74657c | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 416 files, 11854 passing, 0 failing
16:57
16:58 kane_ left, hoelzro joined
missingthepoint_ the module i linked to before uses akismet 16:58
*can use akismet, 2 other options 16:59
jnthn pmichaud: had phone call, but anyway, if you want to discuss Rakudo bits now, I'm around for a bit before I do dinner. 17:00
pmichaud jnthn: the major difference is that we need to initialize lexicals at the beginning of the block, instead of the point of declaration.
I'm thinking this means that variable declarations result in two PAST::Var nodes
17:01 fridim_ left
jnthn One up top, one later on? 17:01
[particle] declare and define?
pmichaud yes.
declare and use.
jnthn How does this fit in with the "prototype lexpad" approach?
Would the declare actually be in a loadinit style thing that sets this up? 17:02
Or done on the first time we need it via some thunk?
pmichaud (in conversation)
I haven't decided that. 17:03
jnthn OK. I'm more comfortable with the prototype lexpad approach. 17:05
For reasons of making compile time trait application a once-only operation.
pmichaud I'm fine with that. Note that assignment still takes place at the point of usage, though. 17:06
jnthn assignment? 17:07
17:07 alester left
jnthn Oh, you mean for: 17:07
my $a = 42; # the assignment of the 42?
pmichaud i.e., "my $a = 5" has the "= 5" portion done at the point of declaration, not initialization of $a
right.
jnthn OK, that's what I'd have expected.
17:07 szabgab left
pmichaud I'm fine with the prototype lexpad approach. 17:07
17:07 hoelzro left
pmichaud somewhat related, while looking at this, using state variables for lexical multisubs feels wrongish to me 17:07
17:08 szabgab joined 17:09 Patterner left, Psyche^ is now known as Patterner
pmichaud I looked at prototype lexpad, though, and it didn't feel significantly improved over just keeping the information in the PAST::Var node as we do now 17:09
17:09 takadonet joined
jnthn Well, really it's just using the same mechanism to avoid having to re-build the Perl6MultiSub each time. 17:10
As a kind of "cache"
pmichaud right, but what if someone assigns to the lexical?
jnthn Re-bind the sub?
Oh, assigns
pmichaud or even just &foo = ...
jnthn Dunno. I hadn't really considered what that even does normally... 17:11
rakudo: sub foo { say 1 }; foo; &foo = sub { say 2 }; foo;
p6eval rakudo ae29fb: OUTPUT«1␤2␤»
jnthn Heh, it works. :-)
17:12 meppl left, bigpresh_ left, Gothmog_ left, felipe left
jnthn If that's correct anyway. 17:12
pmichaud I think there are even tests for this.
jnthn Ah, OK.
Where do you see the problem with using the state-ish approach?
17:12 donaldh left
pmichaud because if I assign to &foo, that assignment should be "lost" on the next call ot the sub. 17:12
it shouldn't be "permanent"
jnthn hmm 17:13
Yeah, I guess we probably get that wrong now.
17:13 takadonet left
jnthn Building it when we make the prototype lexpad is probably much more correct. 17:13
pmichaud you might also want to see if irclog.perlgeek.de/perl6/2009-07-21#i_1329151 matches your understanding of multis and lexicals. 17:14
(yes, building it with the prototype lexpad, or setting up a "constant" that we bind the lexical to is likely correct)
17:14 hoelzro joined
pugs_svn r27655 | kyle++ | [t/spec] A better RT #63460 test 17:15
pmichaud break here -- be back in 5
pugs_svn r27656 | kyle++ | [t/spec] Test for RT #63466
17:15 hoelzro left 17:17 xomas_ joined, szabgab left, bigpresh_ joined
jnthn pmichaud: Heh, the "& looks in the package not the lexical scope" thing scared me a little... 17:18
17:19 alester joined
jnthn I'm a tad confused though. multi foo() { }; multi foo($a) { }; 17:19
Here foo() just does a lexical lookup and finds it and calls it.
&foo does a lexical lookup
&OUR::foo looks up foo in the namespace and returns what? The same as &foo in this case?
Whereas they'd return different things for e.g. 17:20
multi foo() { }; { my multi foo($a) { }; }
17:20 hoelzro joined
jnthn (that is, if you did the lookups before the final closing curly) 17:20
missingthepoint_ ok, rakudo.org is free of spam
can we please keep it that way now, by installing an appropriate module? 17:21
17:21 tann joined
tann rakudo: eval 1 17:22
p6eval rakudo ae29fb: OUTPUT«Parameter type check failed on call to 'eval'.␤Null PMC access in get_pmc_keyed()␤current instr.: 'perl6;Perl6;Compiler;eval' pc 290105 (src/gen_actions.pir:24150) (src/gen_setting.pm:3340)␤»
KyleHa Wow.
pmichaud jnthn: I'm confused a bit by it also... which is why I point it out :-) 17:23
dalek kudo: 3b1bda7 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to latest Parrot 1.4.0 release.
jnthn I think the main thing is that we aren't setting up lexical entries all the time that we should be. 17:25
pmichaud moritz_: how did the release build go?
jnthn Also, Parrot's Very Annoying Bug of optimizing lookups away doesn't help.
pmichaud yes, that's a problem also.
moritz_ pmichaud: good. I uploaded it to my fork fork of the rakudo repo 17:26
jnthn Not sure what the performance hit of ripping out that wrongtimization would be.
pmichaud jnthn: in other news, I think we may have binding somewhat figured out .... for the time being we'll set := to create ObjectRefs (the same way that signature binding does) 17:27
KyleHa Should "eval 1" die because it's not given a string?
moritz_ likely not
KyleHa ...or should it live because 1 is easy to stringify?
pmichaud KyleHa: I think that eval should coerce its argument to a string.
KyleHa Oh good. 17:28
moritz_ except when it receives a Buf
pmichaud moritz_: even then it coerces to a string
(same as reading from a file does)
in the case of Buf it's likely just a bit smarter about the coercion 17:29
jnthn pmichaud: What would it then do with the ObjectRef?
pmichaud jnthn: same as we do now for subrotuine parameters
moritz_ pmichaud: no, Buf can't be coerced to Str, in the general case
jnthn OK, that feels right
moritz_ ~Buf.new should die.
pmichaud jnthn: for example...
my $a = '5'; my Str $b := $a; 17:30
pmurias pmichaud: i don't think assigning to a sub is legal
perl6: $foo := sub {say 'hi'};$foo = 123;
pmichaud $b becomes an ObjectRef that points to $a
p6eval elf 27656: OUTPUT«Global symbol "$foo" requires explicit package name at (eval 126) line 3.␤Global symbol "$foo" requires explicit package name at (eval 126) line 6.␤ at ./elf_h line 5881␤»
..rakudo ae29fb: OUTPUT«Symbol '$foo' not predeclared in <anonymous> (/tmp/nmfznNYN07:2)␤in Main (src/gen_setting.pm:3340)␤»
..pugs: OUTPUT«*** ␤ Unexpected " :="␤ expecting "::"␤ Variable "$foo" requires predeclaration or explicit package name␤ at /tmp/bbq9HHAEcj line 1, column 5␤»
pmurias perl6: my $foo;$foo := sub {say 'hi'};$foo = 123; 17:31
p6eval elf 27656, rakudo ae29fb: ( no output )
..pugs: OUTPUT«*** Cannot cast from VInt 123 to Pugs.AST.Types.VCode (VCode)␤ at /tmp/0Lv2LaAaiq line 1, column 32-42␤»
pmurias perl6: my $foo;$foo := sub {say 'hi'};$foo = sub {say 'hello'};
p6eval pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = False, subName = \"<anon>\", subType = SubRoutine, subOuterPads = [PRuntime {pr_pad = MkPad (padToList [(\"$_\",PELexical {pe_type = (mkType \"Scalar\"), pe_proto = <Scalar:0xb6172255>, pe_flags = MkEntryFlags {ef_isContext = …
..elf 27656, rakudo ae29fb: ( no output )
17:31 frew left
pmurias pugs is right here 17:32
TimToady I am inclined to agree.
17:33 hercynium joined
pmichaud S06:2324 may be a typo then. 17:33
jnthn pmichaud: Hmm, that seems like it could work.
pugs_svn r27657 | kyle++ | [t/spec] "eval 1" should coerce to a string instead of die
pmichaud (granted it may be intended to be pseudocode)
17:34 frew joined, kane___ joined
TimToady yes, I suspect it's pseudocode 17:35
it's trying to express the notion that binding would change the identity, and we don't want that
but probably the actual mod to &thermo is via some method 17:36
pmurias aren't subs inmmutable
?
jnthn Routines are mutable.
Blocks are immutable. 17:37
Or at least, last time I checked the spec.
17:37 damyan left, hercynium left, tann left, gbacon left, sri_kraih_ left, justatheory left, nihiliad left, Exodist left, payload left, patmat left, leedo left, mdxi left, spx2 left, pmichaud left, omega left, Trey left, estrabd left, tarbo2_ left
pmurias why do we need mutable Routines 17:38
?
17:38 pmichaud joined, hercynium joined, tann joined, gbacon joined, sri_kraih_ joined, justatheory joined, nihiliad joined, Exodist joined, payload joined, damyan joined, patmat joined, mdxi joined, tarbo2_ joined, estrabd joined, spx2 joined, omega joined, Trey joined, leedo joined, irc.freenode.net sets mode: +oo pmichaud Trey
TimToady they have to be sufficiently mutable that .wrap works 17:38
17:39 Tene joined
pmurias TimToady: why do we need wrap? 17:39
TimToady but .wrap isn't supposed to change the .WHICH, so that $foo = &bar; &bar.wrap(...); $foo() still calls the correct routine
jnthn I think Rakudo gets that right.
TimToady to do Aspect Oriented Programming 17:40
17:40 charsbar_ joined
TimToady and things like it 17:40
and because my brother-in-law says it's one of the (few) things he likes about Python
17:41 charsbar left
TimToady so it's more accurate to say that the implementation of &foo is mutable, but its identity is not 17:42
pmurias how do i monkey patch subroutines in python?
TimToady I don't know; I'm just repeating what he said.
17:43 colomon joined
TimToady in any case, we only have to support &foo.wrap, not &foo = 17:44
esp since people will confuse the latter with foo() = 17:45
Tene I'm stanrting to really lean towards python's "always require () for nullary function calls" rule. 17:46
17:47 sparc_ left, Front_slash left, athomason left
TimToady we also require lack of ambiguity, but you can supply that with either foo() or (foo) 17:48
jnthn has a hungry - back in a bit
pmichaud other than the Null PMC in the exception handler, are there other items that are holding up the Rakudo release? 17:49
17:49 Front_slash joined, athomason joined
Tene There's an EH issue? 17:49
pmichaud I think it's in Rakudo's EH handler, not in Parrot.
17:51 diakopter joined
pmurias diakopter: hi 17:52
diakopter pmurias: hi
pmurias diakopter: how's your perl6/js thing?
17:53 payload left, felipe joined 17:54 payload joined, mattp_ joined, bloonix_ joined
diakopter pmurias: proceeding along... 17:55
17:55 TimToady left 17:56 bloonix left, mattp left
pmurias diakopter: what was it's url? 17:57
missingthepoint_ diakopter: what are you doing with perl6 and js? :)
diakopter jsmeta.org redirects to the google code site 17:59
it's an implementation of Microsoft's M, currently...
18:00 Solarion_ joined, kane___ left, hoelzro left, jan_ left, pugs_svn left, Solarion left, cognominal_ left, TimToady_ joined
diakopter pmurias: how are things here 18:01
pmurias working on smop's performance 18:02
18:02 TimToady_ is now known as TimToady, ChanServ sets mode: +o TimToady 18:03 pugs_svn joined, kane___ joined, hoelzro joined, jan_ joined, cognominal_ joined
pmurias diakopter: as even tho smop has basic multimethods they are to slow to build anything large on them 18:03
diakopter wonders how best to catch up on 4 months of irc.pugscode.org #perl6
18:03 kane___ left
moritz_ diakopter: by mostly ignoring it ;-) 18:03
18:04 kane___ joined
moritz_ diakopter: I recommend reading the blogs instead 18:04
diakopter which
moritz_ planetsix.perl.org 18:05
diakopter only 3.5 weeks there 18:06
18:08 krunen left, BinGOs left
Tene diakopter: just read the md5sum of the log for each day. Much shorter. 18:08
diakopter :) 18:09
18:09 krunen joined, BinGOs joined
diakopter moritz_: cool language flow diagram 18:10
moritz_ diakopter: thanks
tann moritz_: 2nd that...
diakopter pmurias: terse version of multi-dispatch speed difficulties? 18:12
pmurias Tene: reading the md5sum of the whole log would be quicker still
diakopter er, complexity issues?
pmurias diakopter: generall smop slowness
18:12 alester left
Tene pmurias: Ooo... nice! 18:12
diakopter so... what makes smop slow[er]? 18:14
(sorry to ask the obvious/dunno questions...)
18:14 alester joined
pmurias diakopter: not sure, rewriting the lexical pads to be much faster atm 18:15
18:17 jhorwitz joined
diakopter missingthepoint_: you like JavaScript? 18:17
missingthepoint_ diakopter: more and more :) 18:20
pmurias: lol @ md5 comment
18:21 damyan left, Tene left, leedo left, mdxi left, patmat left, nihiliad left, tann left, Exodist left, spx2 left, justatheory left, pmichaud left, omega left, sri_kraih_ left, Trey left, estrabd left, gbacon left, tarbo2_ left, hercynium left, Trey joined, patmat joined, mdxi joined 18:22 pmichaud joined, omega joined 18:25 sri_kraih joined, justatheory joined
missingthepoint_ diakopter: svn.pugscode.org/pugs/misc/irclog/i...ilter.html 18:26
18:26 tann_ joined
missingthepoint_ i'd like to learn more javascript than just "the bits needed to learn jQuery", but Perl 6 is a slightly higher priority 18:27
18:30 Tene joined
missingthepoint_ (link: silly. scratching personal itch) 18:33
18:33 nihiliad joined, rfordinal joined 18:34 gbacon joined, Exodist joined
diakopter missingthepoint_: there's a delay on that filter page? 18:35
18:35 hercynium joined
diakopter er, lag? 18:36
moritz_ it's just a static snapshot
missingthepoint_ do you mean a JS lag, or content up-to-dateness lag?
diakopter oh; a snapshot; gotcha
missingthepoint_ np
moritz_ missingthepoint_: speaking of which.. do you want to add the nick_$nick thing? if yes, feel free to commit 18:37
pmurias moritz_: the nick_$nick thing should replace the colour 18:38
missingthepoint_ no, I'll do it it the morning... i need to do some Real Work for a bit
(real work == boring but paid) 18:39
i'll commit in 6 hours or so :)
moritz_ pmurias: uhm, how so? 18:40
missingthepoint_ pmurias: currently there are various nicks special-cased. adding nick_$nick will just Do It Properly(TM) 18:41
pmichaud + ok "$!" ~~ / 'No::Such::Rule' /, 'error message mentions No::Such::Rule';
is the spec going to require specific error text or content?
KyleHa We've kind of talked about it requiring specific error text, but I don't think it's decided. 18:42
I just figure that any error about calling an undefined or missing "thang" ought to mention what was missing.
18:42 moritz_ sets mode: +oooo pmurias KyleHa diakopter missingthepoint_
pmichaud I want to know "ought" versus "is required to" 18:42
Anything that goes into t/spec "is required to"
18:42 moritz_ sets mode: +o pmichaud
KyleHa I don't have a specific error message to look for, and I want to rule out "Null PMC". 18:43
pmurias moritz_: is there a way to preserve the +o bit when logging out?
moritz_ it's not yet required on the spec level, only on the "larry's head" level
KyleHa I also want to rule out that version of Perl 6 that has all its error messages set to "Ouch!".
moritz_ pmurias: don't think so
KyleHa: Null PMC is now caught by the harness, so don't worry about it anymore 18:44
s/the harness/Test.pm/
pmichaud We can have a generic "Null PMC is always an error" rule without having to have a test for every specific instance where Rakudo might generate one.
But converting that "avoid Null PMC" wish into "must produce XYZ" might not always be correct
KyleHa Ultimately I'd like to test for a "good" error message.
pmichaud thus my question 18:45
18:45 unitxt joined
pmichaud 18:41 <pmichaud> is the spec going to require specific error text or content? 18:45
moritz_ it is going to, yes 18:46
pmichaud As written, this test would rule out the possibility of "No such grammar 'No::Such'", which might in fact be a better error message.
Or even "rule 'Rule' not found in grammar 'No::Such'"
KyleHa I'm in the middle of a real job meeting, so it's hard to talk. 8-) 18:48
pmichaud no problem. 18:49
diakopter --++meeting++--
18:49 mikehh left
pmichaud I'm just noting a general concern about some of these error tests. 18:49
moritz_ diakopter: check your mails
diakopter moritz_: nuthin 18:50
18:51 mikehh joined 18:52 tomyan left, alester left 18:55 Solarion_ is now known as Solarion 18:59 kane___ left
pugs_svn r27658 | kyle++ | [t/spec] let the harness check the error message in RT #63466 test 18:59
18:59 hoelzro left
pmichaud lunchtime here 19:00
19:02 M_o_C left 19:08 M_o_C joined 19:11 Front_slash left
tann_ rakudo: say 1.Str 19:25
p6eval rakudo 3b1bda: OUTPUT«Int()<0xb6850068>␤»
19:26 zamolxes joined
pmichaud tann_: did you send a patch for that? 19:27
19:27 tomyan joined, alester joined
tann_ pmichaud: i couldn't find the ticket# 19:27
someone closed it or latest changes have made it obsolete? 19:28
lisppaste3 tann pasted "int->str test" at paste.lisp.org/display/83938
moritz_ le' not found in grammar 'No::Such'"
sorry
RT #66366
pmichaud so we have a test but no implementation... 19:29
okay, adding.
jnthn back 19:35
pmichaud jnthn: wb 19:37
jnthn: so, one of the questions I have -- should we go ahead and try to fix lexicals now as a first-pass refactor, and then we do it again when contextuals are available from PGE?
Or should I put in some effort to make contextuals available from PGE prior to doing the lexical refactor
jnthn Would being able to set e.g. $*SCOPE make life easier?
IMO it would 19:38
pmichaud I don't know if it would.
but since that's what STD does, we're likely to have to do it anyway.
jnthn Right, that's my point.
We can get closer to STD.pm
pmichaud One of the things that makes all of this tricky is that STD derives its regex grammar from Perl 6, which is the exact opposite of what PGE does.
jnthn Also I suspect it'd let us make the is also => augment change a little more easily.
pmichaud i.e., the Regex grammar is subclassed from the STD grammar.
from a PGE perspective.... that's a bit tricky. 19:39
jnthn Ah, hmm.
Yes, because PGE is meant to be somewhat independent of Perl 6.
pmichaud I'm thinking we'll end up with two grammars. 19:40
One for PGE, and another for Rakudo/Perl 6.
jnthn Could you factor a bunch of the rules out into roles?
And mix those in?
pmichaud Maybe, but I think we still end up with the Rakudo version of the grammar being independent. 19:41
jnthn Or some mechanism like that?
pmichaud So having it as roles doesn't seem to buy me anything.
i.e., Rakudo ultimately needs to use the Regex that is defined in STD.pm
jnthn Ah, that is true.
Then yes, it probably doesn't buy you anything after all.
How much work is getting contextuals worked into PGE? 19:42
pmichaud depends on how much syntax we want/need with it
if it's as simple as
:my $foo is context = <constant>
then that might not be too difficult.
But something like
token scope_declarator:my { <sym> { $*SCOPE = $<sym> } <scoped> } 19:43
is a bit trickier.
and 19:45
:my $sigspace is context<rw> = $*sigspace // 0;
which is actually
:my $sigspace is context<rw> = CONTEXT::<$sigspace> // 0;
seems like a bit more for PGE to be handling. 19:46
jnthn Bit more or bit much?
pmichaud at least a bit more. Might be a bit much.
jnthn *nod*
Would doing the first of them be a step towards doing the rest later? 19:47
(e.g. the simple constant case)
Or do you see it having to be ripped out and totally re-done?
pmichaud I don't know yet. (more)
I'm still working out the ramifications of maintaining two grammars.
It may be that the first would be enough for us to do the lexical refactoring, though. 19:48
jnthn It'd get us closer to STD.pm, though not quite there.
(In that small aspect.) 19:49
.oO( token statement_control:need {
is that new?
pmichaud yes.
S11
jnthn std: need beer;
p6eval std 27658: OUTPUT«Potential difficulties:␤ Can't locate module beer at /tmp/WJN7eFht6y line 1:␤------> need beer;␤ok 00:02 35m␤»
jnthn oh noes!
sjohnson heh 19:50
19:51 Exodist left
pmichaud oh. 19:51
19:52 molaf left
jnthn oh? 19:53
pmichaud sorry, connectivity issues here 19:54
I wonder to what extent the correct answer is to do this in NQP instead of PGE
since NQP can already parse blocks and expressions. 19:55
i.e., maybe PGE really does want to built on top of NQP.
*to be built
jnthn That'd be an interesting flip-around.
How would NQP then be parsed?
pmichaud it'll bootstrap.
jnthn OK.
pmichaud I'm already thinking of eliminating Perl6Grammar.pir in favor of doing all grammar definition in NQP 19:56
and NQP is about to get regexes and fancy quote rules anyway
jnthn Because?
(not disagreeing, just interested in the Big Plan)
pmichaud quote rules because we have a couple of places where we want string interpolation 19:57
regexes because it's relatively straightforward to add
grammars because then we have one tool for building compilers (NQP) instead of two (NQP + Perl6Grammar)
19:57 hercynium left
jnthn OK, this sounds like a good move. 19:58
The question is
What comes first?
pmichaud (I did very little committing and a lot of planning during your vacation :-)
jnthn This, or the lexicals refactor?
pmichaud I think this comes first.
jnthn Me too.
pmichaud that would give us a reasonable set of contextual variables, in grammars and in actions 19:59
jnthn I'd much rather we get these fundementals in place.
19:59 damyan joined
jnthn And then build on them. 19:59
pmichaud it also means we could embed NQP closures.
regex { foo { NQP code here } }
jnthn Then do one lexical change, followed by another.
*Than
pmichaud Since I was already planning to move grammars and regexes into NQP, this isn't that much harder. And it does simplify the addition of lexicals into regexes. 20:00
jnthn I think embedded closures, variable declaration (inc context) and then later protoregexen would go a *long* way to getting us looking much closer to STD.pm.
pmichaud protoregexen may come very early in the process also. They're necessary to start using STD's operator precedence parser (on which most everything else is based) 20:01
jnthn Seeing those three would make me very happy.
pmichaud it also would mean that even though PGE ends up using a different grammar from Rakudo, at least that grammar's structure will be very similar to Rakudo's 20:02
i.e., PGE's grammar would be built on top of NQP, much like Regex is built on top of STD
jnthn Yes, it mirrors things much better.
OK, so I think this means we put off the lexicals refactor for a little bit. 20:03
pmichaud and if/when Parrot does L1-type things using an NQP syntax, we get a huge refactor.
I suspect I'll be able to have much/most of the refactoring done before Lisbon.
(the PGE refactoring, that is)
jnthn If you could, that'd be great. 20:04
pmichaud so we could do lexicals shortly after lisbon.
jnthn Right.
pmichaud hopefully by then we'll know what "Parcel" will look like :-P
(You do know about "Parcel", don't you? ;-) 20:05
jnthn "Parcel"?
pmichaud heh
"Parcel" is the new Capture.
or the underlying structure to Capture.
jnthn Ah
That happened while I was away then, I guess.
pmichaud it's the thing that gets built by parens and/or commas
(it's still not made it to the spec yet afaik) 20:06
jnthn ah, ok 20:07
I was looking for the commit.
Do we get a refactor needed out of this too?
pmichaud the same one we were going to get for Capture in general, I think. 20:08
we don't get an additional refactor.
jnthn Ah, OK.
pmichaud Parcel may need some method dispatch help, though.
but I think we'll wait for the details first :-)
if it's not specced by August 1 (the day before YAPC::EU), then I think we find TimToady in Lisbon, corner him, and force him to draft the spec. :-P 20:09
Oh, I guess that's August 2. 20:10
20:10 masak joined
pmichaud masak will help. :-) 20:10
masak oh hai
should I backlog? 20:11
jnthn No, just agree. ;-)
20:11 eternaleye joined
pmichaud Just be prepared to join jnthn++ and I as we force specifications out of TimToady in Lisbon :-) 20:11
jnthn (waiting for details)++
masak oh, sure.
KyleHa Is squeezing specs out of TimToady like squeezing water out of a rock? 20:12
20:12 jhorwitz left
pmichaud KyleHa: yes, in more ways than one. (more) 20:12
(1) it's incredibly hard to do at times
(2) surprisingly, the rock has water in it
masak to be fair to TimToady, I don't think he does it out of spite. :)
pmichaud oh, I know that.
masak he seems to be taking this whole Perl 6 thing very seriously.
I like that. 20:13
moritz_ it's just that our Larry-number is consistently <= 1
KyleHa I always thought that "water" squeezed out of a rock is really the perspiration of the squeezer.
pmichaud place liberal amounts of smileys in my comments here.
masak eiro: ping. es-tu là?
pmichaud Larry's commitment to Perl 6 is.... incredible; I really don't have any arguments with the approaches he's taken. 20:14
and I'm not asking for a *complete* specification, just the part about Parcels :-)
(this week :-)
jnthn has visions of TimToady and Perl 6 devs playing pass the parcel at YAPC::EU 20:15
pmichaud heh
Damian and I were already doing that yesterday.
Su-Shee lisbon has nice, dark corners. ;)
pmichaud Question: "Why can't I do XYZ in Rakudo yet?"
Damian: (pointing at pmichaud) "Ask that man over there." 20:16
Pm: (pointing at Damian) "It's not fully specced yet."
masak has always wanted to XYZ in Rakudo
pmichaud jnthn: okay, we have a bit of a plan for lexicals then -- we'll wait to do the refactor until after the contextuals land 20:17
I'll give those my highest priority after the release
in the meantime, perhaps you can think about the best ways to structure lexical initialization in blocks 20:18
masak ok, it's official: my Rakudo-bleed doesn't build with my Parrot-bleed.
20:18 kane___ joined
pmichaud masak: a bunch of Parrot deprecations landed this morning -- I wouldn't be surprised if Rakudo doesn't build against Parrot trunk 20:18
masak oh. 20:19
well, it doesn't.
jnthn pmichaud: OK, I'll get back onto pondering all of that lot. :-)
pmichaud jnthn: I've been thinking that the lexical information can be most easily placed in the Signature object
especially since parameters are just special forms of lexicals
jnthn That sounds odd to me at first hearing it.
But I could come around to finding it less odd. :-) 20:20
pmichaud SIGNATURE_BIND is just initializing lexicals
sjohnson sup masak
20:20 justatheory left
pmichaud (it throws an exception, yes, but other than that it does lexical initialization) 20:20
masak sjohnson: y0, SJ.
jnthn whoz up?
masak whoz op?
sjohnson hello jnthn and pmichaud
jnthn hi sjohnson
pmichaud: Yeah, but it's also not so fast. ;-) 20:21
masak is doin' da Web.pm shitz tonite
jnthn Gettin' down wiv da MVC
pmichaud jnthn: it's not fast, but every block ultimately calls SIGNATURE_BIND at the beginning
so if SIGNATURE_BIND also does lexical initialization....
masak jnthn: well, as soon as I finish up the last week of my part of the grant... :)
pmichaud it just feels as though there's a bit of code duplication there that deserves some investigation 20:22
(setting up a lexical's properties, types, etc.)
20:22 alester left
jnthn I guess in a sense a lexical not expecting to be init'd by a parameter just gets its default value always. 20:23
pmichaud correct
20:23 tomyan left
pmichaud it's something like an optional param 20:23
masak rakudo: need beer;
p6eval rakudo 3b1bda: OUTPUT«Could not find non-existent sub beer␤»
jnthn That could work out. 20:24
pmichaud I'm not saying that lexicals and parameters become exactly the same; I'm just saying that we initialize them similarly and (now) at approximately the same time
(i.e., at the beginning of the block)
jnthn Aye.
pmichaud so perhaps they're more similar than we realize.
jnthn I guess the same thing could take care of state.
(as in the scope decl)
pmichaud yes -- something about the current state code doesn't feel right to me
jnthn It gets a lot of things right. 20:25
pmichaud but I'm not about to go re-do it unless we see an obvious improvement.
right, it's good code, it just feels like we're missing a simplification somewhere.
jnthn But I don't doubt brining it into a more unified approach incorporating the parameters and other lexicals could be a load cleaner. 20:26
pmichaud (it's another one of those places that ends up with a long bit of code in actions.pm)
sjohnson pmichaud & jnthn: you both seem to know your stuff... i was wondering, where is the best way to get in touch with some Perl 5 high-up people, so i can suggest the backporting of trim to Perl 5
pmichaud time to change locations...brb
jnthn Maybe we can plan the details during YAPC::EU
20:26 hoelzro_ joined, tomyan joined
pmichaud definitely, if we haven't addressed them before then 20:27
sjohnson: I suspect getting trim backported into Perl 5 may be difficult. 20:28
jnthn IMO, probably more difficult from a "convincing people" than a technical perspective. 20:29
pmichaud sjohnson: I'm going to guess that the most promising option would be to create a Perl6::* module that provides trim, if there's not already a standard module that provides it
right, more difficult from a "convincing people" perspective.
(more)
sjohnson my goal is to get it into perl 5 without CPAN, and i will settle with convincing someone who writes a Core Module to do it, if that's the best i can do
pmichaud sjohnson: if I'm reading you right, you'd like it backported into Perl 5, *and* enabled by default.
sjohnson my aim is to avoid CPAN altogether with this one
masak sjohnson: the Perl 5 core has been a bit of a hot topic lately, what with rafael leaving as pumpking and all. 20:30
pmichaud sjohnson: the big problem will be the "enabled by default" part.
sjohnson well, enabled by default would be great, but as long as i don't need to use cpan for it, i can settle.. ie, if i can say: use Something:Core qw(trim);
pmichaud getting it into a core module might be simpler, yes.
But an even nicer approach might be to see if you can convince the modern perl or enlightened perl folks to include it. 20:31
masak sjohnson: you could clone perl on github and patch it in yourself.
pmichaud then you could just do "use Modern;" and trim would be available (along with strict, warnings, and all of the other good defaults)
sjohnson would i need to talk with the Modern Core Developer?
pmichaud sure. 20:32
sjohnson masak: when you say patch it myself, do you also mean submit my patch 20:33
in hopes it gets committed?
tann_ is there an internal sub/method for list/capture like array's 'elems'? (1,2,3).elems would promote the list to array, correct?
sjohnson or just patch it for myself only
BinGOs what is trim?
sjohnson BinGOs: whitespace trimmer
tann_ BinGOs: stripping off whitespaces from the head and tail of a string 20:34
masak sjohnson: that's up to you. but it feels like a good first step to create the patch in your local repo, and having it pass all the tests.
BinGOs oh right.
masak sjohnson: who knows, you might even learn _why_ it's non-trivial to add it to the Perl 5 core. :)
sjohnson hehe
masak I mean, there may be technical hurdles, not just social ones.
that actually wouldn't surprise me. 20:35
pmichaud: Rakudo-bleed builds fine with Parrot r40184. thanks.
BinGOs I maintain a core module
sjohnson for real? 20:36
BinGOs I doubt trim is a good fit though
pmurias BinGOs: what's your module?
BinGOs CPANPLUS::Dist::Buil
er
+d
pesky keyb
long and tortured story why I am maintaining it. 20:37
pmurias sjohnson: how do you usually end up needing to use trim?
tann_ pimichaud: is there an internal sub/method for list/capture like array's 'elems'? (1,2,3).elems would promote the list to array, correct? 20:38
sjohnson pmurias: because i write a ton of unix "tools" that make my life easier, and a lot of them strip the whitespace from textfiles, etc, that they parse
i could have a look and grep all the times i have used StripLTSpace
tann_ pmichaud: ^^ (sorry for the typo)
sjohnson and give you better examples if you want
20:38 hercynium joined
moritz_ tann_: .elems doesn't promote to array. 20:39
tann_ moritz_: is there away to get the number of elems in a list?
masak rakudo: say (1,2,3).elems 20:40
sjohnson tann_: scalar
p6eval rakudo 3b1bda: OUTPUT«3␤»
sjohnson oh, i keep thinking p5
masak tann_: that good enough for you?
sjohnson rakudo: say (1,2,3).scalar
p6eval rakudo 3b1bda: OUTPUT«Method 'scalar' not found for invocant of class 'List'␤»
sjohnson rakudo: say (1,2,3).count
p6eval rakudo 3b1bda: OUTPUT«Method 'count' not found for invocant of class 'List'␤»
tann_ masak: not sure
pmurias sjohnson: no need, when you parse something with regexes most of the time you should be able to omit whitespace
masak sjohnson: stop guessing and read the spec! :)
rakudo: say { 1 => 2, 3 => 4 }.elems 20:41
tann_ masak: trying to patch 63724 for pmichaud
p6eval rakudo 3b1bda: OUTPUT«2␤»
sjohnson pmurias: i have found that i like to read a lot of <STDIN> lines
tann_ masak: where self is a List itself
sjohnson and it's easier for me to just trim them, instead of writing the regex everytime
masak tann_: well, like moritz_ said, .elems is a List method, not just an Array method. 20:42
20:42 decasm joined
tann_ so, i'm assuming it's safe to self.elems == 1 { blah } then 20:42
pmichaud tann_: it's very likely that any patch for 63724 will be short-lived 20:43
tann_ in class List that is
masak tann_: that's two terms in a row, but yes.
tann_ pmichaud: hear ya :D
sjohnson pmurias: but anyways, the reason i think it is worthy of inclusion is because every other scripting language out there that's somewhat used today has trim built in, and Perl 6 does too
pmichaud tann_: I would simply take the existing List.perl, change the brackets to parens, and force a comma after every element.
tann_ pmichaud: will do..thanks 20:44
20:44 mberends joined
pmichaud if you want to avoid the trailing comma on lists with != elements, that's okay with me. 20:45
masak mberends: oh hai!
pmichaud != 1 elements
mberends masak: hai, barefoot bugcatcher 20:46
pmichaud for that matter, if you want to just change the brackets to parens that's okay too.
i.e., it wouldn't bug me if (3,).perl produced "(3)"
masak phenny: tell eiro if you look at the beginning and end of github.com/masak/web/commit/01cca04...866dfdd0b5 you will find that the request($c) is actually deliberate (and the nasty but cool hack used to make it work) Tene++
phenny masak: I'll pass that on when eiro is around.
Tene masak: what part of it is a nasty hack? 20:47
(I don't remember)
masak Tene: the emulation of CALLER::
20:47 hoelzro_ is now known as hoelzro
masak Tene: but it's not very nasty, mostly cool. 20:47
pmurias sjohnson: javascript doesn't 20:48
Tene ah
masak Tene: I'm thinking of writing a small blog post about it. someone might like the trick.
pmichaud (blog post)++ 20:49
Tene It's not that much of a trick. That's what CALLER:: will end up being eventually.
masak it would be called "Why I like having Tene on the team" or something. :)
pmurias sjohnson: why are you oppossed to having trim in CPAN?
Tene I just don't know enough about rakudo's lexical scoping stuff to know how to do CALLER:: right.
masak Tene: if you think using Q:PIR to emulate CALLER:: is not much of a trick, then you're way in deep, man. :) 20:50
pmichaud Tene: in order to get CALLER to work I think we'll want/need contexts as PMCs
sjohnson pmurias: because whenever i migrate from system to system which happens about one a month, i get tired of the @INC errors all the time
in simple scripts that shouldn't really require dependencies
and it becomes a headache
pmurias sjohnson: they will depend on perl 5.12 if you get trim added to the core
sjohnson as much as a headache as having to paste in my own trim function everytime
pmurias sub trim {$_[0] =~ /^\s*(.*?)\s*$/;$1}
20:51 hudnix joined
masak Tene: could you help me answer a quick question, though? it seems to me line 4 of bin/basic-demo.pl is redundant nowatimes. 20:51
sjohnson pmurias: it have thought about that, but it is a step in the right direction, IMHO
masak Tene: um, that wasn't a question. my question was: is it? :)
pmurias and perl 5.12 will take ages to be installed by default
you might as well use rakudo 20:52
masak you might as well use Rakudo regardless.
Tene masak: um, dunno.
masak Tene: well, there's no longer a request(), is there? 20:53
pmurias by the time perl 5.12 will be the installed by debian stable as default you might as well use smop
masak so it would seem that line is never run, or there would be an error.
Tene masak: it's defined on line 6.
masak Tene: that's request($c)
different.
Tene masak: you're asking if that like is *broken*?
masak Tene: that one is called using your CALLER:: trick.
sjohnson pmurias: that sounds very optimistic and like good news 20:54
masak Tene: no, I think that line only ever calls daemon()
Tene masak: Sure.
sjohnson that SMOP / Rakudo will be close to an official rlease
masak Tene: we don't do the script-calling-itself trick anymore.
Tene masak: then yes, I agree with you.
masak Tene: good, so I'll go ahead and remove line 4. just doing a sanity check. :)
s/remove/change/
heh, kopipasta and run-nibbler had variants of that bitrotism. 20:57
hudnix rakudo: role List {method foo{1}}
masak only omgblog didn't.
p6eval rakudo 3b1bda: OUTPUT«Method '!add_variant' not found for invocant of class ''␤»
pmurias sjohnson: SMOP is very far away from a stable release
hudnix That error message sucks :(
Tene masak: really, HTTP::Daemon should be checking the environment to look for CGI vars and just invoking request() directly if so.
IMO, iirc
masak hudnix: agreed -- less than awesome.
Tene does that sound right? 20:58
pmurias sjohnson: but i'm very pesimistic about how fast 5.12 will take to spread everywhere
moritz_ hudnix: feel free to submit a bug report about it
masak Tene: the whole HTTP::Daemon thing needs restructuring.
hudnix moritz_: ok
masak Tene: I'm not at all sure we should be shipping Web.pm with its own web server.
we certainly shouldn't be holding our own stale version of it in the repo. 20:59
Tene Yeah, srsly.
I don't remember anymore how I was planning to do that.
masak me neither.
need to talk with mberends about it, too.
Tene Module distribution for Perl 6 really needs some work...
masak and look at how Rack does this.
Tene Yes, it would be great to see how others are doing it. 21:00
masak a priori, I'm actually a bit stumped at how Rack pulls it off.
their Lobster example uses Webrick (IIRC), but that doesn't come with Rack.
Tene iirc, the wohle rack thing was to be engine-independent. 21:01
masak exactly.
but how do they square that with being able to run their hello-world example out of the box? 21:02
it's a mysterious mystery!
21:02 ispy_ left
masak heads over to #rack to ask right away 21:02
21:03 pmurias left
masak oh, "WEBrick has been bundled as a standard library since Ruby-1.8.0. Our development and maintenance base was moved to The Repository of Ruby." -- that's how the mystery resolves itself. 21:07
if you have Ruby, you have WEBrick.
Tene ah 21:08
masak ok, I'm off to write that blog post, then I'm calling it a night. 21:09
mberends masak: (backlogging) currently HTTP::Daemon embeds a webserver in the application process, resulting in great efficiency but a tight interdependency. After Rakudo becomes able to pass a configured %*ENV to a child process, Daemon would be able to run the application as a child process via qx{}. The web application would then need to be CGI compatible and could be run under other webservers too.
Tene Nice chatting with you, masak. :)
masak mberends: CGI compatible -- IIUC, that's what Rack does. 21:10
mberends ok, but it's slow to start a child process per request 21:11
masak mberends: this sounds like a thing we might profitably discuss during YAPC::EU, if not sooner. 21:13
you'll need to explain it to me using short words, wide gestures, and pictures.
mberends good idea, sooner too, but wide gestures would go down nicely in Lisbon 21:14
masak :) 21:15
mberends there is probably a hackish workaround possible to fake %*ENV passing (ugly thought, but nvm) to do CGI right now :/ 21:16
masak I'm going into serious tutorial/presentation-writing mode in the next few days. it will be the perfect time to talk about these things.
I need to cram all of Web.pm and the workings of the Web into my head anyway. 21:17
mberends good! my presentation-writing is also >due
21:17 skids left
masak mberends: let's provoke each other into fervent action. :) 21:18
jnthn oh my...YAPC::EU talk...
21:18 caxaf is now known as shachaf
masak seems there are more of us :) 21:18
pmichaud ....my talk is ready. :-) :-) 21:19
although I'm thinking of updating it a bit tonight.
moritz_ rakudo: say =$*IN 21:20
mberends lurks #reactos as a potential Parrot/Rakudo test platform
p6eval rakudo 3b1bda: OUTPUT«prefix:<=> has been superseded by $handle.lines and $handle.get␤Null PMC access in get_pmc_keyed()␤current instr.: 'perl6;Perl6;Compiler;eval' pc 290105 (src/gen_actions.pir:24150) (src/gen_setting.pm:3340)␤»
moritz_ pmichaud: would you like to include deprecation notices into Rakudo's release announcements? 21:21
pmichaud moritz_: sure, to the extent we have any :-)
moritz_ I can think of prefix:<int> and prefix:<=> right now
pmichaud We can do that.
I'll probably consider it more strongly as Rakudo moves out of "developer releases"
i.e., we recognize that the spec changes quickly still, so it's hard to track all of the deprecations. 21:22
jnthn rakudo: my @a = 3,4,5,6; say [+] @a / @a;
p6eval rakudo 3b1bda: OUTPUT«1␤»
jnthn rakudo: my @a = 3,4,5,6; say ([+] @a) / @a;
p6eval rakudo 3b1bda: OUTPUT«4.5␤»
moritz_ pmichaud: I'm more talking about the "big" items which will likely cause lot of confusion
pmichaud moritz_: sure. I'm not opposed to them. 21:23
so yes, let's include them.
but if some aren't there, I'm not going to go too far out of my way to put them there.
moritz_ same here
21:30 Su-Shee left
pmichaud afk for a while (changing locations) 21:36
dalek kudo: 2967a71 | moritz++ | docs/announce/2009-07:
[docs] stub 2009-07 release announcement with deprecation notices
21:38
kudo: 5c1a814 | moritz++ | :
Merge branch 'master' of [email@hidden.address]
21:42 maja joined, maja_ left 21:43 justatheory joined
masak phenny: tell eiro use.perl.org/~masak/journal/39329 21:46
phenny masak: I'll pass that on when eiro is around.
masak good night, perl 6 adventurers. 21:48
moritz_ same to you 21:49
21:49 masak left 21:51 KyleHa left 21:52 justatheory left 21:53 kane___ left 21:56 hoelzro left, tomyan left 22:01 Limbic_Region joined 22:03 kane_ joined, decasm left 22:05 tomyan joined 22:06 hoelzro_ joined, yahooooo left
japhb Rakudo 5c1a814 is failing to build for me; numerous errors trying to compile perl6.ops 22:11
Tene latest parrot? 22:12
japhb Tene: yes
Actually, no: 40198. It was latest when I started compiling. :-) 22:13
The intervening commits "shouldn't" have made any difference. 22:14
Tene heh
Tene updates parrot
japhb Oh, grrrr. cotto already found this. 22:15
Looks like I need to go to 40197 or apply cotto's patch. 22:16
22:20 hoelzro_ is now known as hoelzro 22:23 nihiliad left 22:27 yahooooo joined
japhb Switching back to 40197 allows the C compiling to work, but now it dies while generating the setting. 22:29
/home/geoff/git/rakudo/parrot/parrot perl6_s1.pbc --target=pir src/gen_setting.pm > src/gen_setting.pir
Direct creation of Iterator
current instr.: 'perl6;Perl6;Compiler;main' pc 204085 (src/gen_metaop.pir:329)
22:29 payload left
Tene japhb: looks like it fails for me too. 22:30
22:51 M_o_C left, Jedai left 22:54 mberends left 22:56 frew_ joined 23:11 clintongormley left 23:13 payload joined 23:16 xomas_ left 23:18 xomas_ joined 23:23 orafu joined 23:24 Helios left 23:27 hercynium left
dalek kudo: 169fc1c | pmichaud++ | src/setting/ (2 files):
Add Int.Str and Num.Str.
23:28
23:28 Helios joined 23:29 lisppaste3 left 23:30 lisppaste3 joined
pmichaud rakudo: say 3.Str 23:42
p6eval rakudo 5c1a81: OUTPUT«Int()<0xb6885068>␤»
23:45 ihrd joined
wayland76 pmichaud: Can you comment on what I said about the EXE make variable in rt.perl.org/rt3//Public/Bug/Display...l?id=63360 ? 23:45
(ie. is there a reason you've eliminated it in the "ins" branch?)
23:49 ihrd left, kane_ left 23:51 hoelzro left 23:54 hoelzro joined, hoelzro left 23:57 tomyan left