»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:00 simon joined 00:01 ggoebel left 00:13 rgrau_ left 00:18 QinGW joined 00:20 QinGW1 joined
takadonet quiet night 00:20
00:22 QinGW left, QinGW joined 00:23 dnl- joined 00:24 dnl left 00:25 QinGW1 left 00:27 justatheory left 00:31 ggoebel joined 00:36 envi left 00:40 chturne left 00:41 dnl joined 00:42 dnl- left 00:47 Limbic_Region joined
araujo pastie.org/1254257 00:50
01:09 PuraVida left 01:10 Entonian left 01:15 molaf left 01:16 toebu left, toebu joined
araujo you guys don't mind if I .... "borrow" the 'say' keyword right? :P 01:20
colomon :p
01:29 molaf joined
takadonet araujo: go for it 01:32
01:35 justatheory joined, huf_ left, huf joined 01:36 justatheory left
araujo takadonet, hehe 01:40
01:48 justatheory joined, justatheory left 01:49 chturne joined, chturne left
colomon "too few positional arguments: 2 passed, 3 (or more) expected" really sucks when you've just refactored a hundred lines of code. 02:02
02:02 Khisanth left
takadonet colomon: ya 02:04
Tene colomon: you get a stack trace though, right?
takadonet I think i dig myself a hole as well
colomon nope
Tene wtf that's a problem.
02:05 jaldhar joined
colomon no line number, no stack trace, no variable name (which is presumably the problem) 02:05
Tene function name, ITYM
colomon no, the problem is the function call is messed up somewhere in the error reporting process. 02:06
at least, I think that's what I'm seeing. 02:07
02:09 Khisanth joined
colomon wonders if it will be faster to fix Rakudo to report the error properly or randomly change things in his code until it stops complaining. 02:10
where did my ack go? 02:15
02:19 ggoebel left
plobsing maybe it got rst 02:19
diakopter colomon: I like the genetic mutation option 02:20
colomon well, reinstalling App::Ack seems to have ack back, anyway. 02:23
02:23 ggoebel joined
colomon okay, I've found the line in parrot that generates the too few positional arguments error message. 02:32
and I've got no idea what to do with that piece of information. :)( 02:38
well, at least selective commenting has shown me the three lines of code in my code that trigger the message. 02:41
I've no idea why yet, but that's something....
02:42 cdarroch left
colomon afk # bed 02:47
02:55 takadonet left 02:58 dnl left 03:01 agentzh joined 03:09 bartolin joined 03:11 Limbic_Region left 03:22 patspam left 03:33 ggoebel left
TimToady when I get the strange error in a large program, I feed it to viv to find the actual error 03:38
it will gladly tell you which variable you didn't declare
bbl &
03:51 Guest86661 left 04:10 meppl joined
Tene colomon: you could show us the three lines. 04:12
04:34 kanishka joined
araujo * 8 By The Value Of set var To length Of "Hello World!" 04:36
04:36 baest left
araujo => 96 04:36
04:39 baest joined 05:03 sftp left 05:07 pnu left 05:08 pnu joined 05:11 justatheory joined 05:30 justatheory left 05:42 pnu left 05:43 pnu joined 06:04 plobsing left 06:07 _kaare joined 06:20 wtw joined 06:27 kanishka left 06:39 envi joined
sorear hello #perl6 06:51
06:58 araujo left 06:59 QinGW left, QinGW joined
sorear cotto: ping 06:59
cotto sorear, pong 07:05
07:06 nsh- left 07:07 nsh joined
sorear cotto: kid51 has assigned me to the architecture team, lorito group and asked me to report to you 07:08
cotto sorear, ok. I just got a nice writeup from atrodo about his experiences implementing a Lorito prototype and some good feedback as to what gaps need to be filled in better. 07:12
My plan is to use his feedback and the Lorito roadmap on the wiki to figure out what we need specify before we can give people a viable spec to build a final product with. 07:13
sorear it should be pointed out that I am neither a Parrot user nor developer at this point
cotto ok. I thought you had a commit bit for some reason. 07:14
Either way, it's good to have an outside perspective.
Are you on parrot-dev.
? 07:15
sorear Yes
cotto ok 07:16
I'll plan on talking with chromatic in the next few days to figure out which points need discussion and which are easy. 07:17
I really want to get the design nailed down so we can start working on the final deal, but it's also important to get something as foundational as Lorito right.
I'll do my best not to waste your tuits. I hope to get some questions posted to parrot-dev by Friday or Saturday, at which point I'll appreciate your thoughts. 07:21
sorear, What's your background? 07:22
Is there anything in particular you're hoping to help design and/or hack on?
07:22 mavrc joined
sorear cotto: since July I've been working on a Perl 6 compiler with an optimization focus 07:23
cotto That's ambitious. I bet you're learning a lot. 07:24
sorear yes
I think I should be adding PIR as a target option soon 07:27
probably the week after next 07:28
07:35 jedai left
cotto sorear, thanks for volunteering! It'll be a little bit (a week or two) before efforts really pick up, but I want to get Parrot moving toward Lorito as much as I can. 07:36
sorear it feels a bit weird to have been nominated for this after spending months working against Parrot 07:45
07:49 jedai joined 07:51 Alias joined, jfried joined
cotto define "against" 07:52
;) 07:54
sjohnson hello perl6 people 07:56
Tene hi! 07:57
cotto is a Parrot person, but says "hi" anyway 07:58
sjohnson yo tene long time no chat
cotto: *squawk* hello sir *squawk*
<--- needs some comedy lessons
sorear -> sleep 08:03
cotto night, sorear
08:18 [particle]1 joined 08:19 [particle] left 08:20 Axius joined 08:22 pythonian4000 is now known as pythonian4000afk 08:27 pythonian4000afk is now known as pythonian4000 08:28 Axius left 08:31 Axius joined 08:34 pythonian4000 is now known as pythonian4000afk 08:35 IllvilJa joined 08:41 Axius left 08:43 Axius joined 08:45 icwiener joined 08:52 LoRe joined 08:59 Axius left 09:13 IllvilJa left 09:14 bartolin left 09:21 cjk101010 joined 09:23 bartolin joined 09:27 kensanata joined 09:28 araujo joined 09:31 pythonian4000afk is now known as pythonian4000 09:41 wamba joined 10:05 QinGW left
colomon TimToady++ 10:23
10:45 ggoebel joined, ggoebel left 10:46 pythonian4000 is now known as pythonian4000afk 10:56 ggoebel joined 11:00 ggoebel left 11:01 MayDaniel joined 11:04 icwiener left 11:09 colbseton` joined 11:22 plainhao joined 11:31 ggoebel joined 11:33 icwiener joined 11:37 am0c joined 11:41 dnl joined 11:42 ggoebel left 11:44 patspam joined, patspam left 11:46 masak joined
masak oh hai, #perl6! 11:46
11:46 LoRe left, LoRe joined 11:49 tzhs joined 11:51 kensanata left, kensanata joined 11:54 LoRe left 12:05 takadonet joined
takadonet hey everyone 12:06
masak takadonet: \o 12:09
colomon o/ 12:12
12:16 LoRe_ joined
pmichaud good morning, #perl6 12:18
takadonet pmichaud: morning sir 12:19
masak good morning, pmichaud. 12:22
Rakudo Star release today?
pmichaud definitely, if gitorious is up 12:23
I have to take kids to school -- will do release after that
bbiab
masak what does gitorious have to do with Rakudo Star. I thought everything was on github. 12:24
s/\./?/
takadonet gitorious? 12:25
12:25 smash joined
masak gitorious.org/ 12:25
smash hello everyone
12:25 icwiener left
masak hi smash. 12:25
hey, look at this: "camlp4 vs camlp5" -- alan.petitepomme.net/cwn/2008.12.30.html#3 12:27
why does this feel familiar? :)
they have a 4 instead of a 6, but otherwise things look fairly similar...
12:29 am0c left, colbseton` left 12:33 ggoebel joined
pmichaud masak: gitorious.org/http-daemon/mainline \ 12:37
masak ah. ok.
I should have been able to guess that.
colomon So, I e-mailed Damian yesterday about his modules. 12:38
(the p6 ones, I mean)
Could we host them under perl6 or rakudo on github?
pmichaud perl6, yes.
colomon okay, I'll offer to do that, then. :) 12:39
takadonet colomon: so... you may have already ported the module i'm working on?
colomon errr.... probably no? what are you working on? 12:40
takadonet sorry Damian
Text::wraps and Text::Tabs
colomon nope, that's not on the list he sent me.
takadonet sweet
colomon and he says that he was planning on porting Text::Autoformat, but hasn't started yet.
takadonet i got Text::Tabs to work 100% with the tests but Wraps been ... little more difficult
colomon takadonet++ 12:41
12:41 am0c joined
takadonet some of those regex are really hard to change over 12:41
12:41 agentzh left
masak better to port based on tests than based on regexes, methinks. 12:42
colomon +1
takadonet that what I did 12:43
masak good.
takadonet Mostly down to two lines 12:44
masak misses moritz_ 12:46
takadonet where is he? 12:47
masak dunno. 12:48
I don't remembering him planning an absence.
maybe he switched over to studying Norwegian full-time, though :) 12:49
pmichaud istr he mentioned an absence
12:50 baux joined
pmichaud but I don't see it in the logs now. so perhaps istr incorrectly. 12:52
masak I also don't see anything in the logs, nor do I recall moritz_ mentioning anything. 12:53
<colomon> "too few positional arguments: 2 passed, 3 (or more) expected" really sucks when you've just refactored a hundred lines of code. 12:54
colomon TimToady says to run it through viv.
(in that case) 12:55
masak anyone mind if I attach that ticket to the "critical tickets" metaticket?
colomon it's certainly fine with me.
12:55 wamba left
masak can't find that ticket. maybe it got closed. 12:57
setting severity to "High" instead.
pmichaud which ticket?
masak rt.perl.org/rt3/Ticket/Display.html?id=78252 12:59
seems to be a simple but very annoying meta-error.
nobody's been able to pinpoint it yet, despite a bit of effort.
colomon rakudo: say $a 13:00
p6eval rakudo ead429: OUTPUT«===SORRY!===␤too few positional arguments: 2 passed, 3 (or more) expected␤»
masak :(
frettled rakudo: say "aaaah"
p6eval rakudo ead429: OUTPUT«aaaah␤»
colomon golfing it down is very easy, anyway.
rakudo: $a
p6eval rakudo ead429: OUTPUT«===SORRY!===␤too few positional arguments: 2 passed, 3 (or more) expected␤»
colomon okay, that's even shorter. :)
13:00 rgrau_ joined 13:01 ggoebel left
frettled \o/ 13:01
perl6: $a
p6eval pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting "::"␤ Variable "$a" requires predeclaration or explicit package name␤ at /tmp/89wCW3xtOi line 1, column 3␤»
..rakudo ead429: OUTPUT«===SORRY!===␤too few positional arguments: 2 passed, 3 (or more) expected␤»
frettled Shorter, but longer. 13:02
masak but we knew that already.
pmichaud looking at it now.
masak \o/ 13:03
sorear: [backlog] PIR backend for niecza! looking forward to it! 13:04
13:08 xinming_ joined 13:12 xinming left
colomon where is viv these days, anyway? my copy is pretty stale (definitely from well before the move to git) 13:15
pmichaud found the problem.
colomon \o/ 13:16
masak pmichaud++ 13:17
13:21 Patterner left 13:33 Psyche^ joined, Psyche^ is now known as Patterner, icwiener joined
pmichaud pmichaud@plum:~/rakudo$ cat x 13:36
say $a;
pmichaud@plum:~/rakudo$ ./perl6 x
===SORRY!===
Symbol '$a' not predeclared in <anonymous> (x:1)
colomon \o/ 13:37
13:37 icwiener_ joined 13:39 icwiener left
pmichaud spectesting now. 13:40
masak looks forward to being presented with the solution 13:41
pmichaud it all comes down to a broken branch merge :( 13:43
masak oh? any way it could have been avoided? 13:44
PerlJam good $localtime #perl6 13:45
masak good now, PerlJam. 13:47
13:47 plobsing joined
pmichaud I don't know how it could've been easily avoided, no. 13:49
masak maybe if the spectests contained a test for the particular error message... don't know if that's a good solution, though. 13:50
pmichaud anyway, the fix is: trac.parrot.org/parrot/changeset/49711 13:53
masak oh, a merge in Parrot. 13:54
13:54 dnl- joined
pmichaud yes. jnthn++ did a branch merge but forgot to re-sync with trunk before doing the merge. As a result, the merge inadvertently undid a bunch of changes. 13:54
and then the later fix was a broken fix.
masak sounds like an SVN-related issue. git would at least make such a thing less likely. 13:55
PerlJam masak: I was thinking exactly the same thing. 13:56
masak well, at least some workflows within git.
colomon pmichaud++ # just added the patch by hand locally
cygwin's git doesn't seem to work on my Windows box. :( 13:57
masak in git, mergin is an atomic action. in SVN, it's a chore. 13:58
13:58 dnl left
PerlJam in svn merging is really about making the state of one dir (branch) match the state of another. In git, merging taking the changes from one branch and "adding" them to another. 14:00
14:01 dnl joined
masak as Linus Torvalds points out in his excessively angry talk, what's the use of having efficient branching if merging is painful beyond measure? 14:03
14:04 Dr_Mike joined, dnl- left
dalek kudo: 4796505 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get fix for error reporting with undeclared variables (RT #78252).
14:05
14:05 Dr_Mike left 14:07 _kaare left 14:14 hudnix left 14:16 hudnix joined 14:18 icwiener_ left, icwiener_ joined
x3nU >cpan 14:20
cpan sucks
shit
nvm
masak hugs x3nU 14:21
there. hope you feel better now.
BinGOs the problem probably lies between the keyboard and the chair. 14:22
masak possibly, but that won't make it less deeply felt. 14:23
14:23 Lorn joined
x3nU well, i forgot to scrolldown window, that's why i'm talking about cpan 14:23
anyway, cpan should die with 90's imhpo
imho*
masak I bet thousands of people profitably using CPAN each day would disagree.
BinGOs yeah, should be using cpanp >:)
masak x3nU: but unless all you have is abject criticism, I suggest you stay on topic. 14:24
x3nU cpan is sooooooo userunfriendly, it's scaring newcommers
masak s/unless/if/ :)
x3nU: this is #perl6. we don't have cpan.
x3nU yes, but you said
16:23 < masak> I bet thousands of people profitably using CPAN each day would disagree.
but ok, whatever 14:25
masak it's possible we're talking about two different things. the client versus the repository.
14:26 kcwu left 14:27 ggoebel joined 14:32 rgrau_ left 14:34 wtw left, bluescreen joined 14:35 bluescreen is now known as Guest32196 14:37 dnl- joined 14:42 dnl left 14:45 colbseton` joined 14:52 sftp joined 14:53 kcwu joined
masak "Symbol '$a' not predeclared in <anonymous> (foo:1)" 14:53
\o/
while we're on the subject, must it say "<anonymous>" there. 14:54
s/\./?/
to the programmer, mainline code doesn't feel very anonymous.
flussence call it something like main, setting, input, ... ? 14:57
masak I think I'd prefer it to say 'in mainline code' if I'm not in any sub, and 'in &foo' if I'm in a sub 'foo'. 14:58
flussence sounds good to me. 14:59
masak I'm not sure I'm ever helped by seeing '<anonymous>'. even in a closure inside a sub &foo, it would still help me more to see 'in &foo'. 15:02
15:04 justatheory joined, wamba joined 15:09 tzhs left 15:14 dnl joined
colomon Symbol '$context' not predeclared in new (bin/abc2ly.pl:80) 15:16
\o/
extra $ slipped into my code.
overlooked it about 20 times.
pmichaud++
15:16 dnl- left
masak pmichaud++ 15:18
slavik1 masak: what are you referring to? 15:20
masak the LTA bug that pmichaud fixed. 15:21
15:22 flussence left
PerlJam It would be nice if multi-dispatch errors has a little more awesomeness. 15:23
It lists the candidates' signatures, but not what it's trying to match against those signatures.
masak indeed. I've had the same thought.
15:28 Ross^ joined
colomon also, it seems like it frequently (always?) gives Mu as the first parameter in methods. 15:34
15:35 icwiener_ left 15:40 icwiener joined
masak rakudo: class A { method foo { say self } }; A.can("foo")(42) 15:41
p6eval rakudo 479650: OUTPUT«42␤»
masak colomon: for that to work, it has to be Mu.
15:41 ggoebel left
masak or at least Any. 15:41
colomon rakudo: class A { multi method foo(Int $a) { say self; }; }; A.new.foo(10,20) 15:42
p6eval rakudo 479650: OUTPUT«No candidates found to invoke for method 'foo' on object of type 'A'; available candidates have signatures:␤:(Mu : Int $a;; *%_)␤␤ in main program body at line 22:/tmp/hcS8AKNvK_␤»
masak too many arguments.
colomon Shouldn't that signature be (A : Int $a) ?
masak no; see above. 15:43
15:43 LoRe_ left
PerlJam rakudo: class A { multi method foo(Int $a) { say self; }; }; A.new.foo(5, :fred(1)); 15:44
p6eval rakudo 479650: OUTPUT«A()<0x82a0a88>␤»
colomon "see above" does not clear it up in the least for me.
PerlJam The trailing *%_ is curious to me.
masak PerlJam: "Interface Consistency" in S12. 15:45
PerlJam looking thanks :)
masak colomon: did you see how I picked the method loose and invoked it with 42 as the "invocant"? 15:46
colomon I saw it, but it makes zero sense to me. 15:47
15:48 MayDaniel left
masak let's go through it step by step, then. 15:48
or we can do it like this, perhaps.
15:48 Ross^ left
masak rakudo: class A { our method foo { say self } }; my &loose-foo = &A::foo; &loose-foo(42) 15:48
p6eval rakudo 479650: OUTPUT«42␤»
masak better? 15:49
colomon well, I can clearly see what you are doing, but it seems utterly insane to me. 15:50
PerlJam heh
colomon: welcome to Perl 6! ;)
slavik1 masak: I missed the point that pidgin didn't scroll down :-\ so was asking a question for something you said a day or two ago with rakudo holding it's own vs. perl5 and parrot
masak slavik1: um. ok. 15:51
colomon I would have thought that A.foo could depend on self ~~ A
masak colomon: I'm not talking about how things should be. I'm talking about how things work today.
*because* the invocant is typed Mu, you can do the 42 thing. 15:52
it wouldn't work if the invocant were typed A.
colomon so what you're saying is the invocant has to be listed as Mu so we know Rakudo's type system is broken in this fashion? 15:53
PerlJam heh
15:55 Ross joined, Ross left, Ross joined
masak not sure the label "broken" immediately follows. 15:57
it's not like you can exploit it in any other way, like breaking encapsulation.
well, in Rakudo today you can, but that bit's wrong.
rakudo: class A { has $!x }; class B { has $!x; method foo { say $!x } }; B.can("foo")( A.new(x => 42) ) 15:58
p6eval rakudo 479650: OUTPUT«42␤»
masak that bit shouldn't work. 15:59
15:59 perlbtyngan joined 16:00 jedai left, perlbtyngan left 16:01 MayDaniel joined 16:03 risou joined, jfried left 16:04 kcwu left
masak colomon: is it the ability to detach methods that you oppose in this picture? or something else? 16:06
pmichaud I think colomon++ is simply saying that the invocant should be typed with the class, not Mu. 16:07
masak right. and something within me agrees. 16:08
pmichaud ...and that Rakudo currently gets this wrong.
masak question is... why?
pmichaud and I agree that Rakudo gets it wrong currently.
masak why should it be typed with the class?
what do we gain from that?
pmichaud it helps with mmd, for one.
masak it does?
is there something in mmd that currently doesn't work due to this?
16:08 dnl left
pmichaud sure. class A { multi method foo(Int $x) { ... } }; class B { multi method foo(Int $x) { ... } } 16:09
16:09 dnl joined
pmichaud oops 16:09
sure. class A { multi method foo(Int $x) { ... } }; class B is A { multi method foo(Int $x) { ... } }
the first has a signature of :(A, Int) and the second a signature of :(B, Int)
masak rakudo: class A { multi method foo(Int $x) { say "A" }; class B is A { multi method foo(Int $x) { say "B" } }; B.new.foo(42) 16:10
p6eval rakudo 479650: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
pmichaud I'm not saying mmd won't function without it.
masak rakudo: class A { multi method foo(Int $x) { say "A" } }; class B is A { multi method foo(Int $x) { say "B" } }; B.new.foo(42)
p6eval rakudo 479650: OUTPUT«B␤»
masak it works as expected.
16:10 dnl left
pmichaud I'm simply saying that we've long recognized that the type of the invocant should be the type of the class, and that rakudo hasn't implemented that yet. 16:10
masak ok, good.
I remember talking about it before.
and agreeing that the type of the invocant should be the type of the class. 16:11
but today, I'm not so sure.
I'd like to be convinced that it's a good thing.
I could see it make a lot of sense with exported methods, for example.
pmichaud ah yes, that's where you really want it. 16:12
class A { multi method foo() is export { ... } }; class B { multi method foo() is export { ... } }; foo(B.new)
masak nod. 16:13
that's what it's good for.
pmichaud in fact, istr there are a few places in rakudo where we explicitly declare the invocant so that exporting works properly.
16:16 kcwu joined 16:20 kensanata left 16:21 kanishka joined 16:23 icwiener left
jnthn o/ #perl6 16:23
masak jnthn!!! \o/ 16:24
jnthn back
masak yay!
jnthn TimToady: Thanks for the responsive multi changes. I'll try and work through them in the next few days. TimToady++
masak! :-) 16:25
masak yay responsive spec changes! the system works!
jnthn masak: My gut feeling is that it's a step in the right direction but I'm not quite sure I grokked how it interacts with .wrap yet. 16:26
dalek ecs: 0e7d383 | pmichaud++ | S12-objects.pod:
[S12]: formatting -- word wrap at <80 chars, remove trailing spaces.
jnthn masak: I need to re-read it more carefully when I'm free of distractions, and not on my iPhone screen. :-) 16:27
masak nodnod
PerlJam jnthn: How hard would it be to add the signature of the sub/method being matched against candidates in multi-dispatch when it fails?
er, that's not quite right, but hopefully you understand what I mean :) 16:28
jnthn I thought we already did that?
masak the capture rather than the signature, right?
so that one can see why it failed to match. 16:29
jnthn Oh
If you call a capture a signature I'm gonna be confused. :P
masak :)
jnthn We could. (more)
I'm just a little scared what happens if that evaluation goes explodey.
For <handwaving> reasons, it may be tricky to be robust in that case. 16:30
We could easily try it though.
masak \o/
jnthn oh, akshually, I can think of an OK way to do it.
Best is to file a ticket suggesting it. 16:31
16:31 knewt2 left
masak submits ticket 16:31
takadonet thought masak only submitted rakudobugs 16:32
masak :)
should I come in again? 16:33
our chief weapons are...
masak submits rakudobug
:)
takadonet do you have that as a macro? 16:36
masak nope.
16:37 knewt2 joined
masak pmichaud++ # Star release 16:38
jnthn pmichaud: Any luck on the PCT::HLLCompiler mov?
*move # oops, this ain't x86 assembly... :-) 16:39
masak somewhere deep down, I'm sure it is x86 assembly :P
16:39 orafu joined
jnthn It's MOV :-P en.wikipedia.org/wiki/MOV_%28x86_instruction%29 16:39
smash pmichaud++ # star release 16:40
pmichaud I figured I'd make it a .mpeg instead of a .mov :-P
masak jnthn: I don't believe case matters. 'course, that might differ between assembler programs.
pmichaud jnthn: I'm _finally_ coming back to life today :-)
jnthn resurrection++
\o/ 16:41
colomon \o/
masak \o/
jnthn pmichaud: Glad to hear it.
pmichaud: Will be digging back into things again soon also, now I'm back from $uk-trip :-) 16:42
masak yay 16:43
it's been far too quiet here lately.
16:44 flussence joined
jnthn ooh, mberends++ has been busy in the 6model repo in my absence. :-) 16:45
16:47 LoRe joined
pmichaud afk for a while 16:47
PerlJam codenames the R* release as the "PerlJam" release since it happened on his birthday :) 16:49
smash PerlJam: congratulations 16:50
colomon happy birthday!
PerlJam Apparently it's also Swiper-the-fox's birthday too. (Dora the explorer) 16:51
and, of course, it's Bill Gates' birthday too
masak PerlJam: many happy returns.
PerlJam smash, colomon: thanks!
jnthn PerlJam: Happy birthday!
PerlJam masak, jnthn: thank you both too :) 16:52
masak: I was just reading the R* announcement and noticed that pack/unpack are listed in the not-quite-there list. Where are they? :) 16:53
masak well... "not quite there" is a good description. 16:54
need many more directives implemented.
I actually kinda have a plan that I haven't put into effect yet.
I thought I'd try auto-translating this file from p5 to p6: github.com/mirrors/perl/blob/blead/t/op/pack.t 16:56
and then just start implementing tests.
plan tests => 14699; # \o/
if anyone wants to help (with either phase), and make that a two-person project, let me know. 16:57
PerlJam auto-translating? 16:59
masak right; make a one-off translator that can translate just this file.
more structured, and more fun than doing the whole file by hand. 17:00
colomon it's a fine idea, but I have to admit I find pack.t kind of scary looking.
masak it would be, no? 17:01
PerlJam parts of it look like the impedence mismatch will be too high.
masak that might well be so. I haven't looked at it closely enough.
dalek odel: 4af6edd | jnthn++ | dotnet/compiler/try.bat:
[dotnet] Tweak try.bat to clear up the executable before trying to make a new one, so we don't get bogus test passes. Noticed by mberends++.
17:03
17:09 icwiener joined
colomon is guessing that writing regexes to operate on regexes is probably a real pain in the neck. 17:15
17:17 _kaare joined
[particle]1 pmichaud: are you using parrot 2.9.0 or 2.9.1 for R* 2010.10? the announcement says 2.9.0 17:18
17:18 [particle]1 is now known as [particle] 17:19 _kaare left 17:20 _kaare joined 17:27 _kaare left 17:28 am0c^ left, smash left 17:29 _kaare joined, jedai joined 17:38 ggoebel joined 17:45 am0c left 18:01 baux left 18:02 risou_ joined 18:04 risou left 18:29 cdarroch joined, cdarroch left, cdarroch joined
TimToady colomon: nah, it's a piece of cake; only takes 430 lines of grammar in STD... :P 18:30
colomon STD supports p5 regexes now?
18:31 ggoebel left
colomon ;) 18:32
btw, TimToady++, thanks for the viv suggestion. It would have come in very handy today had pmichaud++ not fixed the Rakudo bug in question. 18:34
18:36 colbseton` left 18:38 colbseton` joined 18:40 alfieANDfred joined, alfieANDfred left, alfieANDfred joined 18:41 alfieANDfred left 18:50 mavrc left 18:58 mberends left
pmichaud [particle]: 2.9.1. The announcement is wrong. 19:00
pmichaud updates the announcement on rakudo.org .
[particle] congrats on the release.
TimToady colomon: p5 regexes are even easier! (182 lines in STD_P5.pm6)
though linkage to STD may have bitrotted recently 19:01
colomon TimToady: ooooo....
TimToady std: m:P5/:/
p6eval std a194beb: OUTPUT«ok 00:01 133m␤»
TimToady I guess it only bitrotted locally
std: m:P5/'/ 19:02
p6eval std a194beb: OUTPUT«ok 00:01 133m␤»
19:03 risou joined
TimToady no, it's just that 'make' doesn't default to 'make all' : 19:04
:/
masak o.O 19:05
19:06 risou_ left, ggoebel joined 19:11 colbseton` left 19:12 envi left
pmichaud PerlJam: Happy Birthday! 19:15
pmichaud notes pj's birthday in his calendar for future years.
TimToady it must be nice to be so organized... 19:16
pmichaud it's more about being assimilated into the Google Borg collective, I fear. :-|
TimToady now we just need his 19:17
SSN
pmichaud oh, that I have already :-P
well, *had*
although it wouldn't surprise me if it still existed in my records somewhere :-P
TimToady mother's maiden name would also be helpful
dalek ar: fdec35f | pmichaud++ | skel/docs/ (2 files):
Documentation updates for 2010.10 release.
19:18
ar: 18b4b6e | pmichaud++ | / (2 files):
Updates for 2010.10 release.
ar: 4f9b7d0 | pmichaud++ | skel/docs/announce/2010.10:
Fix Parrot version in announcement (too late for the tarball, but
TimToady my mother's maiden name is "Dorothy" :) 19:19
19:22 perlly joined
pmichaud PerlJam (and others) got me a cake when I was in Corpus Christi in August (bit.ly/9i3mOX), I suppose I should return the favor at some point. :-) 19:23
19:30 plainhao left 19:33 molaf_ joined 19:35 molaf left 19:41 wamba left 19:43 molaf_ left 19:44 MayDaniel left 20:06 perlly left 20:10 tadzik joined
tadzik good evening gents 20:10
(and ladies, if available)
colomon o/ 20:11
masak tadzik! \o/
do you have a habit of only saluting available ladies? :)
tadzik oh, it's so nice to come here :]
masak: It's called lazy salutation
masak 哈哈 20:12
tadzik oh star!
jnthn masak: I was trying not to comment on that. :P 20:13
masak ☆☆☆☆☆
jnthn masak: I almost typed the exact same thing! :)
masak jnthn: great minds... never mind. :P
tadzik what does that mean: 哈哈?
masak tadzik: "ha ha"
tadzik „Great minds never mind” -- that's deep
masak: :) 20:14
TimToady
.oO(the ones who don't put out will be put out?)
masak what great output this evening!
jnthn TimToady: Argh! I was drinking tea when you wrote that! :P
masak *lol*
jnthn: here, have some more tea. 20:15
jnthn hides #perl6 while shipping
er, sipping
masak sip it!
TimToady ship happens
masak that's what ship said!
TimToady that ship has already sailed 20:16
masak oh ship...
diakopter my date keeps shipping 20:17
PerlJam diakopter: as long as she's not shipping all over you 20:18
masak worst date ever!
diakopter due date, release date.... :|
masak TMI :) 20:19
sjohnson hi all
masak sjohnson! \o/
diakopter sigh. slipping. it's not a pun if I have to explain it.
sjohnson :3
masak diakopter: we got you the first time. :P
PerlJam diakopter: the beauty of pun is multiple meanings anyway 20:20
20:20 meppl left
masak "The pun is sharper than the sword." 20:22
diakopter PerlJam: oh. I think I just got your reply.. but slippage of that sort of date is a bad thing?
TimToady often dates himself...
masak TMI! :)
PerlJam Way way tmi
masak the channel is back to its old chatty self. I'm glad. 20:23
TimToady++ pmichaud++ jnthn++ # you were never really gone, but welcome back
20:24 dnl joined
masak there are definitely different kinds of slipping that a date can do. 20:28
"on a banana peel" -- not good.
"into something more comfortable" -- you're doing fine.
PerlJam It's the combination of slipping and sliding that you need to watch out for :) 20:29
masak yes, it's a bit of a slippery slope, that. 20:30
diakopter (or do we repeat ourselves)
PerlJam If you repeat yourself, does that mean you've peated yourself at some point? 20:31
diakopter Pete and RePete went down to the river. Pete fell in. Who was left? 20:32
20:32 ggoebel left
masak is not falling for that 20:32
diakopter I guess the joke is lost in print
rjbs The problem with that joke is that nobody on the damn planet is named "RePete." 20:35
masak the name got a bad rep after the Great River Pushing Scandal. 20:36
20:36 Chat4179 joined
Chat4179 elo all any ladys here 20:37
jnthn If so, channel custom is that you may only greet the available ones.
20:37 Chat4179 is now known as sunstreaker
masak yes, it's a tradition. 20:38
the taken one's are ungreetable.
BinGOs 'ladies' or "lady's"
masak s/'//
sunstreaker ladies
so whats up boys and girls 20:39
tadzik sunstreaker: don't be so sexist, men are good Perl 6 hackers too
(man or men? I never know)
sunstreaker 2iam from south afrika 20:40
masak greetings, Iam from South Africa!
tadzik Is it cold over there? You look so cold you are almost blue
masak I'm sure South Africa is well-tempered. 20:41
20:43 pythonian4000afk is now known as pythonian4000, sunstreaker left 20:44 jferrero joined 20:58 pothos_ joined 20:59 _kaare left 21:01 pothos left 21:02 jferrero left 21:08 Ross left 21:10 jferrero joined 21:11 ggoebel joined 21:15 AndreasX joined 21:16 AndreasX left
dalek odel: 08272ff | jnthn++ | dotnet/compiler/DNST2CSharp.pm:
[dotnet] Fix code-gen; don't use spurious $*LAST_TEMP values when we have empty if/else branches. Deals with the 03-if-else.t issues spotted by mberends++.
21:17
masak rakudo: class A { has $.x; method foo { say $!x } }; class B is A { has $.x; method bar { say $!x } }; B.new(:x(42), A{ :x(5) }) 21:21
p6eval rakudo 479650: OUTPUT«flattened parameters must be a hash or array␤ in main program body at line 22:/tmp/zu7Gf4oWts␤»
masak jnthn: whoz op with that?
rakudo: class A { has $.x }; class B is A { has $.x }; B.new(:x(42), A{ :x(5) }) 21:22
p6eval rakudo 479650: OUTPUT«flattened parameters must be a hash or array␤ in main program body at line 22:/tmp/GuLZ9dbLKF␤»
dalek odel: 0d7097b | jnthn++ | dotnet/runtime/ (24 files):
Reverting this; it hurts code maintainability and refactorability and eats into the few remaining shreds of sanity I have left. :-)
21:23
jnthn rakudo: B.new(:x(42), A{ :x(5) })
p6eval rakudo 479650: OUTPUT«Could not find sub &B␤ in main program body at line 22:/tmp/HzDp2QO1NI␤»
jnthn rakudo: class A { }; class B { }; B.new(:x(42), A{ :x(5) })
p6eval rakudo 479650: OUTPUT«flattened parameters must be a hash or array␤ in main program body at line 22:/tmp/IWHjY8a9u9␤»
jnthn rakudo: class A { }; class B { }; B.new(A{ :x(5) })
p6eval rakudo 479650: OUTPUT«flattened parameters must be a hash or array␤ in main program body at line 22:/tmp/F1PPz_rrlF␤»
jnthn rakudo: class A { }; A{ :x(5) }
p6eval rakudo 479650: ( no output ) 21:24
jnthn Hm
21:24 ggoebel left
jnthn masak: Off hand, I'm not sure. 21:24
masak but it's a bug, right?
jnthn masak: Unless it's a general WHENCE issue.
Yeah
masak submits rakudobug
jnthn I wonder if we're missing A{ ... } support somehow.
21:24 Guest32196 left
masak :/ 21:24
21:25 stkowski joined, MOAR-f00li5h joined 21:26 icwiener left, baest left, skangas left, Sarten-X left, IRSeekBot left, f00li5h left, flatwhatson_ left, PacoLinux left, ruoso left, buu left, LionMadeOfLions left 21:27 aindilis left, sjohnson left, icwiener joined, baest joined, skangas joined, Sarten-X joined, IRSeekBot joined, flatwhatson_ joined, PacoLinux joined, ruoso joined, buu joined, LionMadeOfLions joined, aindilis joined, sjohnson joined 21:28 tadzik left
masak I'm pretty sure it worked at some point. 21:29
not sure it ever worked in master, though.
anyway; there's more than one way to skin a goose. 21:33
rakudo: class A { has $.x is rw; method foo { say $!x } }; class B is A { has $.x; method bar { say $!x } }; given B.new(:x(42)) { .A::x = 5; .foo; .bar }
p6eval rakudo 479650: OUTPUT«5␤5␤»
masak this, I posit, is RONG.
I don't know if that's in RT yet.
sjohnson heh
masak huh; actually I expected that to be 42\n42\n. 21:34
well, not "expected" as in "what correct Perl 6 should produce" :) 21:35
but "expected" as in "how I thought rakudo would misbehave" :)
guess I can produce an entirely *different* bug out of it, then. 21:36
rakudo: class A { has $.x is rw }; class B is A { has $.x }; given B.new(:x(42)) { .A::x = 5; say .x } 21:37
p6eval rakudo 479650: OUTPUT«5␤»
masak submits rakudobug
21:45 ggoebel joined 21:46 ggoebel left
jnthn TimToady: Not sure if I'm missing something obvious here in the proto changes. What are the semantics .wrap now on an instantiation of a proto? 21:56
*of .wrap
masak jnthn: d'you have a concrete code sample to contextualize that question? 21:57
jnthn multi foo() { say 1 }; multi foo($x) { say 2 }; &foo.wrap({ say "before"; *; say "after"; }) 21:58
What are the semantics of the .wrap call here. Not just in terms of "what should the output be" but "what is it actually an operation on".
masak so, that implicitly creates a proto now, right?
jnthn More interestingly
multi foo() { say 1 }; { multi foo($x) { say 2 }; &foo.wrap({ say "before"; *; say "after"; }); foo(); }; foo();
What is the output of this one? 21:59
Actually, scratch the above one.
er
the first one
The second one is what I was looking for (with the nested scope).
If I understand S12 correctly it's going to be before\n2\nafter\n1\n
And *not*
before\n2\nafter\nbefore\n1\nafter\n 22:00
If that's true then I'm happy. :-)
But I'd be very reassured if TimToady++ were to confirm it is that way and put (or point me at the) clarifying note in the spec. 22:01
If I'm mis-understanding, then I think I'm missing something deeper.
masak decides to re-read this tomorrow, when he's more awake :) 22:02
'night, #perl6.
diakopter night
22:02 masak left 22:05 MayDaniel joined 22:07 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 22:18 lichtkind joined
lichtkind hai, when ms came in? 22:18
jnthn lichtkind: Čo? 22:22
:-)
lichtkind :9 22:23
jnthn "ms"? :-) 22:24
lichtkind i just dicovered in the newest rakudo * announcement the existance of ms//
jnthn Oh
:-)
lichtkind so curreently insert into my index
jnthn Think it's been spec'd in S5 for a while, but implemented within the last month, I believe.
lichtkind you know p6 is kinda huuuge easy to over look some detail
jnthn I know. ;-) 22:25
lichtkind i think it was spelled mm once 22:28
TimToady jnthn: yes, that wraps only the inner &foo dispatcher 22:29
to wrap the other from that location would require wrapping OUTER::<&foo> 22:30
that is, &foo always refers to an instantiated dispatcher now, not the set of dispatchers
jnthn TimToady: Excellent. 22:31
TimToady: Thank you. :-)
TimToady: That muchly uncuffuddles me. :-)
lichtkind TimToady: are there interfaces in the classical faces in p6 or i have to build something out of an empty role ?
TimToady a role without a default implementation is an interface 22:32
if parameterized, it'd be a generic interface
but we intentionally smudge all those concepts into one 22:33
so roles may be used as interfaces or as generics, as well as (smalltalk) traits
lichtkind yeah but interfaces have to be met . meaning all methods overloaded by a class and roles thro exception when redefine one of their methods?
TimToady so far it has seemed worthwhile to confuse those :) 22:34
lichtkind :)
TimToady well, if you call any method defined as {...} it's gonna fail
lichtkind yes 22:35
but if one role overwrites one method there is a clash
but I have to overwrite all methods of an interfacein an interface
TimToady roles can never override a class's method
lichtkind to get an implementation
jnthn I think if you still have stub methods from the role by the time you hit class composition times, then the class fails to compose. 22:36
TimToady we don't enforce that at compile time currently
jnthn (In ideal Perl 6.)
TimToady: In spec or in Rakudo?
TimToady well, but you'd like to be able to use stubs as you're developing
lichtkind but how get an mechanism that ensure that a class has a set of methods?
jnthn TimToady: My impression was that Rakudo doesn't but the spec suggested it should. 22:37
TimToady it has the methods; they just don't all work. :)
jnthn Hmm
;-)
TimToady: Maybe it's a ... vs !!! distinction or something.
TimToady I don't think it should enforce by default, but ... yeah, what you said
or perhaps just warn when composing ... methods 22:38
if you're developing, you shouldn't mind a few warnings :)
jnthn Aye 22:39
That could also work.
TimToady the two are not mutually exclusive
maybe ??? warns on composing, !!! fails, and ... just tries to work 22:40
jnthn Ooh.
I like that.
Guess that means we need a way for a method to know what sort of stubby method it is. 22:41
Well, a routine generally.
Rather than just .yada
TimToady yes. btw, bare * is not a call to a dispatcher; has to be {*} if embedded in the statement list
jnthn
.oO( .yada, .yadie, .yawarn, .yamam...oh wait... )
22:42 envi joined
TimToady the other {*} is just a shorthand for {{*}} 22:42
jnthn How is {*} parsed?
TimToady specially
jnthn glances latest STD
lichtkind TimToady: is ther in p6 any way technical way to enshure that a class has a set of methods with specified return types and signatures?
TimToady jnthn: grep for onlystar 22:43
lichtkind: sure, we just don't guarantee they work (modulu what jnthn++ and I were just discussing re !!!) 22:44
22:45 clkao left
jnthn TimToady: Thanks. I see in checkyada how it works for proto foo($x) { * } for example, and how it works in regexes. Don't see the {*} in a normal routine case? 22:45
That is, we parse {*} as a token inside regexes as a metachar 22:46
But not in ordinary routines?
TimToady well, STD only cares that it parses, but we could have a special token there too 22:47
I suppose {*} parses in a regex too though
jnthn It'd be nice to have a lead to follow.
Plus to be able to know that parsing it as a token in STD doesn't cause other breakage. 22:48
TimToady actually, it's checked in checkyada
which is called from the appropriate block parsers
jnthn self.<blockoid>:delete 22:49
I don't quite follow what that line is for?
Or is the answer "nothing deeper than it looks like"?
I still don't see how 22:50
proto foo($x) { say 1; {*} say 2; } # what does the {*} parse as here?
Is it that the {*} hands back something that has an <onlystar> rather than a <blockoid> ?
TimToady yes 22:51
jnthn OK
TimToady otherwise it's a normal inline block
jnthn OK, got it, thanks.
Now "just" need to work out how to map 1840 and 1841 into nqp. :) 22:52
(Seems that it doesn't like you twiddling with the match object at the moment.)
Anyways, I'll see if I can have a crack at a first cut of the latest multi-dispatch spec at the weekend in the 6model on .Net prototype. 22:53
Turns out it's the fastest place for me to prototype most things at that level these days. :-) 22:54
TimToady not surprised...
jnthn Well, it's small enough that I can still keep it in my head. :-)
TimToady when it is obvious where most of the things should hang off the Great Tree, it becomes easier to ignore the encapsulated ones 22:56
jnthn *nod*
I'm hopeful that it can form the basis of another Rakudo backend in a reasonable timeframe. I'm keen to use it as a place to start experimenting with S17 things. 22:59
(There's not necesarily an ordering there. For me it's mostly user demand.) 23:00
TimToady yes, it would be good to think about how to start integrating an actor model of some sort without turning everyone into Erlang programmers 23:02
23:04 risou_ joined
jnthn Having some prototype implementation to start playing with and interating on would also probably help the spec proccess a lot. 23:04
Oooh...*that* time. I should sleep so I'm vaguely lucid at $dayjob tomorrow. :-) 23:05
TimToady nodnod
jnthn night o/
TimToady 'night
biab &
23:06 bluescreen joined 23:07 bluescreen is now known as Guest66311, risou left 23:17 icwiener left 23:19 ggoebel joined 23:26 ggoebel left
lichtkind good night 23:26
TimToady: would you agree to www.perlfoundation.org/perl6/index....let#trends 23:27
dukeleto lichtkind: syndrom is spelled "syndrome" 23:34
lichtkind: otherwise, looks like one the best synopses of perl 6 i have read, yet. 23:36
23:36 MOAR-f00li5h is now known as f00li5h
lichtkind dukeleto: thanks a lot its still building up 23:36
dukeleto: syndrom was a germanism
fixed the typo 23:38
23:43 cognominal joined
dukeleto lichtkind: der Syndrom ? 23:48
lichtkind: ich habe ein bisschen Deutsch in Koblenz studiert.
lichtkind das syndrom :) 23:49
23:51 jferrero left
dukeleto lichtkind: ah, because it was a stolen word, probably 23:53
lichtkind: attempting to infer order on the gender of german nouns is likely a nonlinear partial differential equation, if you are lucky.
lichtkind: but fun anyway 23:54
lichtkind dukeleto: most of the latin ones yes but there are exceptions
dukeleto lichtkind: oh yes, i learned many exceptions. That is why I forgot them :)
lichtkind haha
in other case you could not forget them :) 23:55
dukeleto: what you are doing lately? 23:56