»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:00 snarkyboojum_ joined 00:03 snarkyboojum left, snarkyboojum_ is now known as snarkyboojum 00:05 rgrau` left 00:10 wknight8111 joined 00:17 k23z__ left 00:20 meppl left, stepnem joined
snarkyboojum sorear: just discovered that ~ is a parser combinator (see perlgeek.de/blog-en/perl-6/tidings-...writeback) 00:25
in STD.pm
00:26 TiMBuS left 00:31 Sanitoeter joined 00:32 stepnem left 00:38 yinyin joined 00:39 lue joined, stepnem joined
lue ...never. again. will I believe that a speed optimization will help _me_ 00:39
00:41 simcop2387 left 00:45 ashleydev joined
lue en.wikipedia.org/wiki/Main_Page check the first item of In the News! 00:45
snarkyboojum lue: are you finding the new parrot fixes/optimisations helpful during a rakudo build? 00:46
lue no, it hung during the compilatiion of parrot, even after killall perl (which I used to run Configure.pl) :/
snarkyboojum lue: bugger - what parrot REV? 00:47
m6locks rakudo: role A { has $!b = 4; method foo() { say $!b; } }; A.foo()
lue but if you look on the wiki's main page, you'll see that people were 4sent back in time! 00:48
p6eval rakudo 7d00af: OUTPUT«Type objects are abstract and have no attributes, but you tried to access ␤current instr.: 'perl6;A[];foo' pc 615 (EVAL_1:237)␤»
lue snarky: don't know -- the latest as defined by rakudo
snarkyboojum ah ok
it'll be defined in build/PARROT_REVISION 00:49
I'm guessing r45178
lue I must contact Sony and figure out their time-travel secrets! 00:50
snarkyboojum well battery about to die (those new macbook pro with 7hr battery life look good :)) 00:51
well, not new anymore perhaps
lue I know, I'd like just the battery :)
.oO(I must also contact Nintendo and convince them to use cartridges instead of CDs in their next console)
snarkyboojum bbl 00:52
lue alright
lue is trying to find the names of creators of various programming languages to create a Phoenix Wright parody :) 00:54
00:56 snarkyboojum left, ashleydev left 00:59 salzh left 01:03 snarkyboojum joined 01:05 astinus joined 01:07 nihiliad joined
lue hai again snarky o/ 01:09
snarkyboojum hi lue \o 01:12
lue I wonder, who created parrot? 01:13
(it's hard finding a developer who's last name is somewhat like Edgeworth :/( 01:14
s/(/)/
snarkyboojum lue: have you read www.perl.com/pub/a/2001/04/01/parrot.htm ? 01:19
enjoyable read :) 01:20
esp poignant given today's date
lue is it 4/1 in your area?
snarkyboojum aye
we're halfway through it here
lue still 3/31 here :)
snarkyboojum lue: I read this a long time ago too - www.sidhe.org/~dan/blog/archives/000435.html 01:22
lue 17->12 ... (accounting for DST, right now it's 18 PDT) -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2,3,4,5,6,7,8,9,10,11
you're UTC+11 !
snarkyboojum we see the sun come up earlier :P 01:23
lue was I right? 01:24
snarkyboojum yeah
01:25 astinus left
lue will post the cast list for the P6 Phoenix Wright parody after finishing it 01:25
01:26 astinus joined
lue I'm UTC+3i :) 01:26
I tend to drift into UTC-7π though 01:27
01:29 lollan left 01:31 am0c joined 01:35 astinus left 01:38 astinus joined 01:39 meppel joined, meppl joined, meppel left 01:47 simcop2387 joined 01:55 Psyche^ joined 01:57 jaldhar left, wknight8111 left 01:58 Psyche^ is now known as Patterner 01:59 sorear joined 02:06 simcop2387 left 02:10 simcop2387 joined 02:14 hicx174_ joined 02:17 ash_ joined, ash_ left 02:18 colomon_ joined 02:20 Limbic_Region left
colomon_ o/ 02:20
lue o/ colomon_ 02:22
rakudo: print eval( say "hi" ) 02:27
p6eval rakudo 7d00af: OUTPUT«hi␤Nominal type check failed for parameter '$code'; expected Str but got Bool instead␤current instr.: 'eval' pc 284330 (src/gen/core.pir:0)␤»
lue rakudo: print eval(' say "hi" ') 02:28
p6eval rakudo 7d00af: OUTPUT«hi␤1»
lue afk 02:30
snarkyboojum rakudo: Perl6::Compiler.eval("say 'See ya lue'"); 02:31
p6eval rakudo 7d00af: OUTPUT«See ya lue␤»
snarkyboojum :)
you could even do, Perl6::Compiler.compile("say 'See ya lue'", target => 'pir'); to get PIR :) 02:33
sorear Is it just me, or are INIT blocks run twice when Rakudo is loaded as a library 02:36
there's some fishy stuff in gen/core.pir
:load's !UNIT_START is being passed a reference to a function which also calls !UNIT_START 02:37
while :init's isn't
02:37 jhuni joined
sorear tries changing it, to see what breaks. 02:37
am0c rakudo: Perl6::Compiler.compile("say 'See ya lue'", target => 'pir'); 02:43
p6eval rakudo 7d00af: ( no output )
sorear wonders how to make need Bot::BasicBot :from<perl5>; class MyBot is Bot::BasicBot { ... } Just Work
02:43 gfx joined
snarkyboojum am0c, you'd need to do something with the output, like say it 02:44
apologies if that's obvious :)
am0c ah, thanks! 02:45
02:46 colomon_ left 02:48 hanekomu left 02:50 JimmyZ joined, ash_ joined
JimmyZ April Fools' Day? Parrot language will be born? 02:51
sorear actually, my goal is to get use Tk :from<perl5>; working 02:52
because apparently there's demand for that
02:55 meppl left 03:06 hitsubunnu joined 03:09 gfx left 03:13 hitsubunnu left 03:15 nihiliad left
spinclad .oO{ quadrupedal negative } # ain't never heard no horse sing no song # another backlogged thought 03:20
sorear guts the "interesting" logic from comp_unit to see what happens 03:26
03:35 JimmyZ left
sorear Knowledge of PAST would help here. 03:35
lue hai again 03:36
it's not 4/1 yet! :)
( I'm waiting for 4/2 -- it's a Hitchhiker's Holy Day :) ) 03:37
sorear: there's demand™ for Tk? 03:48
sorear lue: Demand, measured in money
news.perlfoundation.org/2010/03/gra...ss_in.html
lue OK. I was just wondering. (<mumble>not that Qt and GTK are more important</mumble>) 03:49
sorear in about an hour we'll know if my change to Actions.pm did anything useful 03:52
lue Quick! What languages inspired Perl 6? (excluding P5) 03:53
ash_ all of them? 03:54
sorear All of them
perl 6 is a postmodernist's language
lue Who knew it'd be so difficult to find the name of a developer who's last name even somewhat resembles 'Edgeworth' ?
sorear nice, my new rakudo segfaults 03:59
I only changed p6 code
lue \o/ Segfaults™
"there should be one—and preferably only one—obvious way to do it" --Python
unfortunately, it never works out that nicely, so always, TIMTOWTDI. 04:00
en.wikipedia.org/wiki/Perl has a nice "Influenced by" piece :) 04:01
04:18 justatheory left
lue
.oO(The CEO's of both Microsoft and Apple are named Steve. Interesting)
04:20
"Got that? Larry is always right, even when he was wrong." 04:24
04:29 ash_ left 04:34 sundar left 04:39 alester joined 04:40 flight16 joined
sorear ok, trying again 04:43
lue .u hand 04:46
phenny U+270C VICTORY HAND (✌)
lue ✌o✌
(fingers crossed) 04:47
am0c is that right c-style 'for' statement is named to 'loop' to stop overuse? 04:53
lue rakudo: for (my $i=0; $i<11; $i++) { say $i;}; 04:55
p6eval rakudo 7d00af: OUTPUT«Unsupported use of C-style "for (;;)" loop; in Perl 6 please use "loop (;;)" at line 11, near "(my $i=0; "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue rakudo: loop (my $i=0; $i<11; $i++) { say $i;};
p6eval rakudo 7d00af: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
lue I'm not sure _why_, but I know it just is this way.
snarkyboojum also - loop { say "forever" } :D
am0c hm - hm -
i like this syntax. :) heh 04:56
lue rakudo: my %h = (3,4); say %h
p6eval rakudo 7d00af: OUTPUT«3 4␤␤»
snarkyboojum rakudo: my %h = 3 => 4; say %h; 04:57
p6eval rakudo 7d00af: OUTPUT«3 4␤␤»
lue rakudo: my %h = ('key'=>4); say %h.key('key'); 05:00
p6eval rakudo 7d00af: OUTPUT«Method 'key' not found for invocant of class ''␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
lue rakudo: my %h = ('key'=>4); say %h.kv('key');
p6eval rakudo 7d00af: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤current instr.: 'perl6;EnumMap;kv' pc 425204 (src/gen/core.pir:61588)␤»
lue rakudo: my %h = ('key'=>4); say %h.keys('key');
p6eval rakudo 7d00af: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤current instr.: 'perl6;EnumMap;keys' pc 424921 (src/gen/core.pir:61502)␤»
lue rakudo: my %h = ('key'=>4); say %h<key> 05:01
p6eval rakudo 7d00af: OUTPUT«4␤»
lue there we go :)
Tomorrow I'll release the current cast for Larry Wright: Ace Attorney. Until then, good night 05:02
snarkyboojum rakudo: my %h = ('key'=>4); %h.perl.say
p6eval rakudo 7d00af: OUTPUT«{"key" => 4}␤»
snarkyboojum rakudo: foreach <1 2 3> { .say }; # shouldn't work 05:03
p6eval rakudo 7d00af: OUTPUT«Confused at line 11, near "foreach <1"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum rakudo: for <1 2 3> { .say }; 05:04
p6eval rakudo 7d00af: OUTPUT«1␤2␤3␤»
am0c rakudo: for <1 2 3> -> { .say } 05:06
p6eval rakudo 7d00af: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: '_block50' pc 358 (EVAL_1:148)␤»
am0c rakudo: for <1 2 3> -> $x { $x.say }
p6eval rakudo 7d00af: OUTPUT«1␤2␤3␤»
diakopter hee cappuccino.org/discuss/2010/04/01/s...t-problem/ 05:10
snarkyboojum std: foreach <1 2 3> { .say }; # shouldn't work 05:15
p6eval std 30253: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/xvFVhRh904 line 1:␤------> foreach <1 2 3> ⏏{ .say }; # shouldn't work␤ expecting any of:␤ bracketed infix␤ infix or
..meta-…
snarkyboojum I was hoping for an awesome-ised error :)
rakudo: .say for <1 2 3> 05:16
p6eval rakudo 7d00af: OUTPUT«1␤2␤3␤»
sorear ok, this time I got it to compile! 05:19
but it crashes on stage2 startup
05:21 Patterner left 05:24 Psyche^ joined, Trashlord left, Psyche^ is now known as Patterner 05:26 xinming joined 05:30 xinming_ left
snarkyboojum rakudo: my $x = * ** *; say <1 2 3>.map: $x 05:31
p6eval rakudo 7d00af: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
snarkyboojum alpha: my $x = * ** *; say <1 2 3>.map: $x 05:32
p6eval alpha 30e0ed: OUTPUT«1427␤»
snarkyboojum std: my $x = * ** *; say <1 2 3>.map: $x
p6eval std 30253: OUTPUT«ok 00:01 107m␤»
sorear it looks like my crash was just caused by using a stale Makefile 05:38
05:44 am0c left
pugssvn r30254 | lwall++ | [STD] awesomize foreach message for snarkyboojum++ 05:54
snarkyboojum std: foreach <1 2 3> { .say };
p6eval std 30253: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/jKsGS5pwvE line 1:␤------> foreach <1 2 3> ⏏{ .say };␤ expecting any of:␤ bracketed infix␤ infix or
..meta-infix␤Undeclared …
TimToady has to recompile
snarkyboojum TimToady++
TimToady may take an hour
sorear STD takes an hour to recompile? 05:55
or do you mean cron timing
TimToady the latter
snarkyboojum now that's what you call user-centred programming language design :)
05:57 hudnix left
TimToady zzz & 05:59
06:03 hudnix joined 06:09 hudnix left
jnthn ergh...early mornings suck... 06:11
sorear hello! 06:14
jnthn oh hai
sorear jnthn: Why does dalek only announce Blizkost commits in a channel you aren't even in? 06:15
jnthn sorear: I'm not sure...I didn't set it up. :-) 06:16
sorear it spams in #parrot anyhow 06:17
jnthn I only noticed they were reported at all when you mentioned this last time. :-)
We could ask for it to spam here too probably. ;-)
sorear argharghargh my fix didn't work 06:18
jnthn Gotta associate with some folks in Malmö, so I'd best commute. bbl. 06:19
diakopter std: foreach <1 2 3> { .say }; 06:22
p6eval std 30254: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/9Z3fTVXq7u line 1:␤------> foreach <1 2 3> ⏏{ .say };␤ expecting any of:␤ bracketed infix␤ infix or
..meta-infix␤Undeclared …
sorear I give up 06:24
somebody else, please make parrot-nqp -e 'pir::load_bytecode("perl6.pbc")' not die messily
what was the rakudobug address? 06:27
snarkyboojum [email@hidden.address] ? 06:32
from the README at github.com/rakudo/rakudo 06:33
06:35 daemon left 06:36 daemon joined 06:40 alester left 06:50 hudnix joined
snarkyboojum std: foreach <1 2 3> { .say }; 06:55
p6eval std 30254: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/J9GoXFc9Xl line 1:␤------> foreach <1 2 3> ⏏{ .say };␤ expecting any of:␤ bracketed infix␤ infix or
..meta-infix␤Undeclared …
07:10 rgrau joined 07:14 iblechbot joined 07:15 Dystopia joined
snarkyboojum std: foreach <1 2 3> { .say }; 07:16
p6eval std 30254: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/r9FOJ7cRKf line 1:␤------> foreach⏏ <1 2 3> { .say };␤FAILED 00:01 107m␤»
snarkyboojum awesome :) TimToady++ :) 07:17
07:19 Dystopia left 07:22 sorear left 07:23 Coke is now known as Guest97770 07:30 felipe joined 07:41 astrojp left
mathw Morning 07:45
07:47 iblechbot left 07:51 [opx] joined 07:54 JimmyZ joined 08:15 Sarten-X joined 08:59 Su-Shee joined 09:05 [opx] left, pmurias joined 09:07 jaldhar joined 09:15 leon_mu joined, Chillance joined
moritz_ \o/ first day at $work, seems they allow ssh connections to the outside :-) 09:19
09:19 astrojp joined
mathw \o/ 09:20
09:22 hanekomu joined, hanekomu left
jnthn back from $meeting 09:24
mathw back from @meeting[0], waiting for @meeting[1] 09:25
jnthn Ah, I'm done for the day on @meeting :-) 09:26
09:28 [opx] joined 09:41 yinyin left 09:45 hudnix left, hudnix joined 09:50 xomas joined 09:55 leon_mu left 10:04 [opx] left 10:08 masak joined
masak oh hai, #perl6 10:08
jnthn lolitsmasak 10:09
10:28 pmurias left
colomon o/ 10:30
jnthn o/ colomon
masak realizes that 'also' is a kind of assymmetric dual to '.each' 10:31
from the description at perlgeek.de/blog-en/perl-6/tidings-....writeback , I don't immediately see why I'd want to use 'also' rather than 'and' or '&&'... 10:32
hm, ISTR infix:<also> was subsequently named infix:<andthen>... 10:33
jnthn I think andthen probably captures the ordered semantics better.
masak ok; in what way? 10:34
hm, from S03 I gather that it's sort of a loose opposite of // 10:35
jnthn "jnthn is drinking pivo and also vodka" vs "jnthn is drinking pivo and then vodka" - in one it could be the two at once (eww) but in the the second it's much clearer it's one then the other.
masak and 'orelse' is a loose version of //
jnthn: but 'test1() and test2()' is sequential too, and always was. 10:36
10:36 JimmyZ left
masak ok, 'andthen' does things with INVISIBLE BLOCKS. 10:36
jnthn and failures
Yeah
masak a bit like a monad would, I guess.
jnthn That's a scary world. 10:37
moritz_ masak: and by INVISIBLE BLOCKS you mean.. thunks? :-)
jnthn .u INVISIBLE BLOCK
phenny jnthn: Sorry, no results for 'INVISIBLE BLOCK'.
jnthn .u INVISIBLE
phenny U+2062 INVISIBLE TIMES (⁢)
jnthn :-)
There's still (to me) no difference between a block and a thunk, fwiw.
moritz_ masak: btw after our discussion about joining the community, I backlogged very far to see what you first asked in here... it was what a thunk is :-)
jnthn: there should be one, in that a thunk does not introduce a scope 10:38
jnthn (at the "what they compile to" level
moritz_: I don't have a way to implement that.
Well, not easily at least.
moritz_ std: my $x = Any // (my $y = 6); say $y
p6eval std 30254: OUTPUT«ok 00:01 109m␤»
10:39 payload joined
moritz_ rakudo: my $x = Any // (my $y = 6); say $y 10:39
p6eval rakudo 7d00af: OUTPUT«6␤»
moritz_ jnthn: that's another matter
wow
jnthn I hadn't really regarded that as a thunk.
To me that kinda isn't one.
I mean, it's just syntactic sugar for an "if"-ish kinda thing
But we don't have to run the code at some unknown point in the future and called from a different place. 10:40
Hmm...maybe we need to distinguish the two somehow.
moritz_ maybe
or maybe my idea of "thunk" is not yet fine grained enough 10:41
jnthn Or maybe mine isn't either. :-)
Or our ideas of thunks don't entirely overlap.
10:41 astrojp left
moritz_ $str ~~ s[foo] = $code 10:42
$code is a thunk here, right?
10:42 iblechbot joined
masak for your definition of thunk, yes. :) 10:42
jnthn It's turned into a closure
I think the spec even says it should be though.
masak std: sub foreach(@list) {}; foreach <1 2 3>
p6eval std 30254: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/tSpGyjbHyD line 1:␤------> sub foreach(@list) {}; foreach⏏ <1 2 3>␤FAILED 00:01 107m␤»
masak TimToady: ^
jnthn ooh! 10:43
From S05:
This is not a normal assigment, since the right side is evaluated each
time the substitution matches (much like the pseudo-assignment to declarators
can happen at strange times). It is therefore treated as a "thunk", that is,
as if it has implicit curlies around it.
Thus thunk = implicit curlies = scope? :-) 10:44
10:44 clintongormley joined
moritz_ that's the big question 10:44
jnthn :-)
Maybe the distinction is thunk vs "thunk" ;-)
moritz_ :-) 10:45
jnthn But don't quote me on it.
10:45 jhuni left, avuserow joined
moritz_ it seems the parrot folks have improved the string handling quite a bit 10:49
so please folks, test rakudo (compilation + spectest) on parrot r45367
moritz_ can't, due to absense from $home computer 10:50
10:51 xabbu42 joined
snarkyboojum testing 10:52
mathw eagerly awaits the outcome
snarkyboojum "chromatic: Rakudo !perl 6 compiles five times faster with a simpler four line change from me and @bacek. Should run faster too" - sounds promising :)
10:56 payload left 10:59 payload joined
jnthn will try it too 11:00
snarkyboojum real 4m17.106s on my machine during make - felt much faster
should have done a build prior to bumping parrot rev 11:01
used to take more than 10 11:02
at the very least :)
11:03 hudnix left 11:06 hudnix joined 11:08 hudnix left 11:11 hudnix joined 11:16 xomas left 11:17 flight16 left
jnthn rakudo: say 252 / 60 11:22
p6eval rakudo 7d00af: OUTPUT«4.2␤»
jnthn rakudo: say 0.2 * 60
p6eval rakudo 7d00af: OUTPUT«12␤»
jnthn My build takes 4 mins 12 seconds now :-)
snarkyboojum spectest ran in under 20 mins on my little lappy 11:23
but I got a fail in S12-methods/instance.t
jnthn I think I accidentally that test yesterday. :-( 11:24
snarkyboojum it's the 'dies_ok( { Zoo.new.c }, "meth(%h) is not a valid method call syntax"' test 11:25
dalek kudo: 0dcfc67 | (Solomon Foster)++ | src/core/Any-num.pm:
Rewrite Any.abs to dispatch to the proper Numeric role.
11:26
jnthn Yup
$*SCOPE somehow leaks.
And ourses something it shouldn't. 11:27
snarkyboojum :| 11:28
more contextuals fun
11:30 M_o_C joined
snarkyboojum w00t.. touched a file in builtins and in core and did a make - 2m30s :) 11:31
just pulled colomon's change to Any-num.pm and did a make - 2m31s :) 11:36
ok I'll stop now
colomon :)
m6locks so hows things with that debugger, i'd seriously like to have one 11:48
regards, newbie
it's not that i can't survive without it, i's just that it's pretty time-consuming adding a thousand lines of say "$thisvariable" 11:49
cs i make a lot of mistakes ;P 11:50
11:52 meppl joined 11:54 hanekomu joined
dalek kudo: a1a04af | jonathan++ | build/PARROT_REVISION:
Bump to latest Parrot that includes build performance improvements.
11:55
11:56 payload left
colomon So this is the bump that will slow down our builds again, right? ;) 11:59
moritz_ colomon: I hope not
masak over at StackOverflow today, everyone's picture has been replaced by a colorful unicorn...
moritz_ colomon: there was a commit that should fix the slowness that was introduces by the memory savings 12:00
jnthn colomon: No, the performance has been improved as well as the memory usage now. :-)
colomon \o/
jnthn colomon: It built fast enough for me.
Possibly faster than before the memory improvements.
snarkyboojum 2.5 min builds are rocking here
colomon wow, that's a lot of parrot update. 12:01
moritz_ is Z, the same as Z (as an infix operator)? 12:03
jnthn Think so.
moritz_ rakudo: say <a b c> Z, <1 2 3>
p6eval rakudo 0dcfc6: OUTPUT«a 1b 2c 3␤»
jnthn rakudo: say <a b c> Z <1 2 3>
p6eval rakudo 0dcfc6: OUTPUT«a1b2c3␤»
moritz_ rakudo: say (<a b c> Z, <1 2 3>).perl
p6eval rakudo 0dcfc6: OUTPUT«(("a", "1"), ("b", "2"), ("c", "3"))␤» 12:04
masak smells a bug
moritz_ well, I think the parcels should flatten in list context
colomon rakudo: say (<a b c> Z <1 2 3>).perl 12:05
p6eval rakudo 0dcfc6: OUTPUT«("a", "1", "b", "2", "c", "3")␤»
jnthn aye 12:06
colomon I think we still have flattening issues...
jnthn EOUTOFSTEAMROLLERS
masak submits rakudobug 12:08
12:09 xinming left 12:10 JimmyZ joined
JimmyZ hello, moritz_ 12:10
colomon Z doesn't even try to return the pairs as a parcel. 12:11
moritz_ good localtime() JimmyZ
colomon I have a vague memory that bad things happened when I did try to return the pairs that way. 12:12
JimmyZ I saw there were two Announce of release #27 on rakudo.org
moritz_ JimmyZ: aye. Before I wrote the second, the first one would not show up
I fear that deleting one takes down the other
JimmyZ oh
takadonet1 morning all
12:13 writer joined
colomon o/ 12:14
12:14 ruoso joined
masak takadonet1: \o 12:14
writer Hi everyone
takadonet1 writer: hey 12:15
writer tried to run a program from the perl6 book and got this error: pastebin.com/1d5VmLCt
hello takadonet1 :)
masak writer: I'll have a look. we don't expect all programs from the book to run on master yet...
writer Oh, okay.
moritz_ writer: it's a known problem of the current rakudo
writer BtW, I'm running rakudo 2010.03 with 2.2.0 12:16
moritz_ writer: you can work around it by changing line 27 to read #
my @sorted = @names.sort({ %sets{$_} }).Seq.sort({ %games{$_} }).reverse;
masak grumbles
a paste service that can't copy/paste properly has missed something.
moritz_ with rakudo 2010.01 it should work (after that some regressions were introduces by a huge rewrite) 12:17
writer thanks moritz_ masak
m6locks rakudo: role A { method foo($arg is rw) { $arg = 42; return $arg; } }; say A.foo(6) 12:18
p6eval rakudo 0dcfc6: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17192 (src/builtins/Junction.pir:399)␤»
writer so ideally, you don't need '.Seq' ?
m6locks shouldn't that argument be rw?
moritz_ writer: no, you don't
m6locks: how do you write to the integer 6?
writer okay, thanks 12:19
moritz_ m6locks: in ideal Perl 6, the binding of the signature would already fail
because 6 is not writeable
in rakudo only the assignment fails
m6locks ok, but can i has rw arguments at all? 12:20
moritz_ sure
jnthn Yes, but you need to pass in a variable. :-)
The binder should akshually check it for you... 12:21
m6locks rakudo: role A { method foo($arg is rw) { $arg = 42; return $arg; } }; my $six = 6; say A.foo($six)
p6eval rakudo 0dcfc6: OUTPUT«42␤»
m6locks ok, workd
:)
jnthn rakudo: say [min] <man e kass> 12:22
p6eval rakudo 0dcfc6: OUTPUT«e␤»
snarkyboojum masak: pity about the foreach issue you noted 12:25
colomon alpha: for <a b c> Z <1 2 3> -> $x { say $x; }
p6eval alpha 30e0ed: OUTPUT«a␤1␤b␤2␤c␤3␤»
colomon > for <a b c> Z <1 2 3> -> $x { say $x; } 12:26
a 1
b 2
c 3
(that's with Z patched to be Z,)
moritz_ doesn't think that's correct
colomon as far as I know, alpha is correct here.
masak snarkyboojum: yes, well, Perl tends to favour a "liberty at all costs" party line. it'd be strange if you were allowed to call your subs "sub", "loop". "while". "class" and "multi", but not "foreach" :) 12:30
snarkyboojum I'd still like an awesomized error message tho :) 12:31
jnthn Just change it to
masak yes, me too.
jnthn <sym> <!before '('>
or better, <sym> <.nofun> 12:32
snarkyboojum excellent :)
jnthn btw
rakudo: /lol/i
p6eval rakudo 0dcfc6: OUTPUT«Unsupported use of /i; in Perl 6 please use :i at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
jnthn rakudo: class A { }; my $x = new A();
p6eval rakudo 0dcfc6: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near "();"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum w00t
so v. cool :) 12:33
I'd like to add the @array = [Proxy.new, Proxy.new], ok !@array.exists(2) type test to S32-array/exists.t :), but that's probably not appropriate if Proxy is temporary 12:35
but would make exists fail :P
masak snarkyboojum: try to create the two proxies in some other way. 12:36
for example by using .delete
snarkyboojum masak: I like it - will have a tinker
12:36 bphillips joined
bphillips I'm not sure who owns this but the rakudo.org RSS feed is broken (doesn't show any updates since February 2009 12:38
masak bphillips: thanks for letting us know. I also don't really know who has responsibility. 12:41
maybe pmichaud.
writer Is perl6 also a lazy language like haskell ? 12:42
colomon writer: I think haskell may be more lazy, but basically yes. 12:43
masak writer: there's a tendency to make list-like things lazy in Perl 6. 12:44
colomon rakudo: (1, 1, *+* ... * ZR~ 'a'..'z').perl.say 12:46
p6eval rakudo a1a04a: ( no output )
writer so this means, if I never used value from of a function invocation, then that function will never be invoked ? or it is just applicable to list, like if I read a whole 3G file in memory $file.get and then never used it, then that will not any cause disk activity ?
colomon writer: functions are generally not lazy in p6 12:47
JimmyZ rakudo: ( 1+1, (2+2).say).perl.say
p6eval rakudo a1a04a: OUTPUT«4␤(2, Bool::True)␤»
colomon if you read the file using $file.lines and don't do anything with it, that shouldnot cause disk activity. (Ideally, may still be some issues in the current Rakudo implementation.) 12:48
jnthn writer: In that case, you probably want $file.lines, for example. But that will return an iterator.
Thus only reading the file if you iterate it.
masak rakudo: say say say say 1
p6eval rakudo a1a04a: OUTPUT«1␤1␤1␤1␤»
masak :P
JimmyZ rakudo: ( 1+1, (2+2).WHAT.say).perl.say 12:49
writer okay
p6eval rakudo a1a04a: OUTPUT«Int()␤(2, Bool::True)␤»
jnthn Perl 6. Stuttering compatible. :-)
colomon rakudo: ((1, 1, *+* ... *) ZR~ 'a'..'z').perl.say 12:50
p6eval rakudo a1a04a: OUTPUT«("a1", "b1", "c2", "d3", "e5", "f8", "g13", "h21", "i34", "j55", "k89", "l144", "m233", "n377", "o610", "p987", "q1597", "r2584", "s4181", "t6765", "u10946", "v17711", "w28657", "x46368", "y75025", "z121393")␤»
masak that's crazy :) 12:51
moritz_ loves craziness 12:52
snarkyboojum rakudo: say say say say 2
p6eval rakudo a1a04a: OUTPUT«2␤1␤1␤1␤»
snarkyboojum it changed my stutter!
:P
jnthn > foreach my $x (1,2,3) { } 12:53
Unsupported use of 'foreach'; in Perl 6 please use 'for' at line 1 (1,"
> sub foreach() { say "pijem rad pivo" }; foreach()
pijem rad pivo
colomon writer: took me a minute to get that right, needed the extra parens. anyway, (1, 1, *+* ... *) is the infinite Fibonacci series, but because lists are lazy, there's no problem using it. In this case, the ZR~ operation stops when either side runs out of elements.
writer okay, I'm still understanding, btw, regarding the code I posted, I added: [email@hidden.address] %sets{$_} }).WHAT.say; ␤ @names.sort({ %sets{$_} }).Seq.WHAT.say;" and it printed "Parcel()␤Seq()" 12:55
rakudo: (1, 1).WHAT.say
p6eval rakudo a1a04a: OUTPUT«Parcel()␤»
moritz_ so the result of .sort is a Parcel
although it should probably be a Seq
writer moritz_: okay, Parcel is like tuples, right ? 12:56
moritz_ but more importantly, .sort on a Parcel doesn't work properly
writer: it's not that easy to answer... a Parcel is what you get when you write (something)
Parcel = parenthesis cell
but it should hide rather quicklz 12:57
*quickly
snarkyboojum with a , right?
JimmyZ rakudo: ( -1, -2, (2+2).say ).pick(1).say
snarkyboojum rakudo: (1).WHAT.say
p6eval rakudo a1a04a: OUTPUT«4␤-2␤»
rakudo a1a04a: OUTPUT«Int()␤»
moritz_ so if you write @A = (1, 2, 3) you get an Array, not Parcel
snarkyboojum: right
snarkyboojum rakudo: (1,).WHAT.say
p6eval rakudo a1a04a: OUTPUT«Parcel()␤»
moritz_ and a parcel of a single item should behave just like that item
so it's mostly transparent 12:58
JimmyZ rakudo: ( -1, -2, (2+2).say ).pick(1).say; # is not lazy?
moritz_ but in rakudo it's not
p6eval rakudo a1a04a: OUTPUT«4␤-1␤»
moritz_ JimmyZ: apparently not
writer rakudo: [1,2,3].WHAT.say ; (1,2,3).WHAT.say
p6eval rakudo a1a04a: OUTPUT«Array()␤Parcel()␤»
writer rakudo: [9,8,7].sort.WHAT.say
p6eval rakudo a1a04a: OUTPUT«Parcel()␤»
snarkyboojum rakudo: (1..2).WHAT.say
p6eval rakudo a1a04a: OUTPUT«Range()␤» 12:59
JimmyZ wonders whether it will be lazy?
writer okay, so, sort converts Array() into Parcel()
snarkyboojum so commas construct parcels...
or do I have that wrong
PerlJam good morning
moritz_ snarkyboojum: no, you have that right 13:00
writer rakudo: (1..10).say
p6eval rakudo a1a04a: OUTPUT«12345678910␤»
writer rakudo: (10..1).sort.say
p6eval rakudo a1a04a: OUTPUT«Method 'sort' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ snarkyboojum: I was wrong to say that the parens alone do it - that has changed
snarkyboojum moritz_: ok. cheers.
moritz_ writer: that should also work
writer moritz_: what should ?
moritz_ writer: ... but 10..1 is the empty range
writer: .sort on a Range
alpha: say (1..10).sort 13:01
p6eval alpha 30e0ed: OUTPUT«12345678910␤»
moritz_ alpha: say Range ~~ Positional
p6eval alpha 30e0ed: OUTPUT«1␤»
moritz_ and .sort is a method from the Positional role
jnthn ...is it?
writer rakudo: (1..10,2..4).WHAT
p6eval rakudo a1a04a: ( no output )
writer rakudo: (1..10,2..4).WHAT.say
p6eval rakudo a1a04a: OUTPUT«Parcel()␤»
jnthn moritz_: I think akshually it's in Cool... 13:02
writer rakudo: (1..10,2..4).sort.WHAT.say
p6eval rakudo a1a04a: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤... call repeated 1 times␤»
moritz_ jnthn: that too
writer rakudo: 2..3.WHAT.say 13:03
p6eval rakudo a1a04a: OUTPUT«Int()␤»
PerlJam that's the same one as ... 13:04
writer rakudo: [10..1].sort.say
p6eval rakudo a1a04a: OUTPUT«␤»
writer rakudo: (10..1).sort.say
PerlJam rakudo: my Int @a; @a.WHAT.say;
p6eval rakudo a1a04a: OUTPUT«Method 'sort' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
rakudo a1a04a: OUTPUT«()␤»
writer rakudo: (1..10).sort.say
p6eval rakudo a1a04a: OUTPUT«Method 'sort' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
PerlJam Hmm
writer moritz_: you said, <moritz_> writer: that should also work, <moritz_> writer: .sort on a Range 13:05
Is, "say (1..10).sort", any different than "(1..10).sort.say" ?
rakudo: (1..10).sort.WHAT.say 13:06
p6eval rakudo a1a04a: OUTPUT«Method 'sort' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
PerlJam writer: different in dispatch
writer rakudo: say (1..10).sort
p6eval rakudo a1a04a: OUTPUT«Method 'sort' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
writer so alpha, and rakudo are different versions ?
PerlJam writer: alpha is the version of rakudo as it existed in January (basically) 13:07
moritz_ writer: 'alpha' is rakudo before the big refactor
PerlJam writer: before the move to nqp-rx
dalek kudo: b3e08f9 | jonathan++ | src/Perl6/Grammar.pm:
Add totally awesome error message for foreach.
writer Oh, okay
snarkyboojum rakudo: (5..6, 2..4).iterator.sort.say
p6eval rakudo a1a04a: OUTPUT«23456␤» 13:08
snarkyboojum rakudo: (5..6, 2..4).sort.say
p6eval rakudo a1a04a: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤... call repeated 1 times␤»
JimmyZ rakudo: foreach <1 2 3> {}
p6eval rakudo a1a04a: OUTPUT«Confused at line 11, near "foreach <1"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
writer alpha: (5..6, 2..4).sort.say
p6eval alpha 30e0ed: OUTPUT«23456␤»
snarkyboojum rakudo: (5..9).iterator.sort.say 13:09
writer alpha: (5..6, 2..4).sort.WHAT.say
p6eval rakudo a1a04a: OUTPUT«56789␤»
alpha 30e0ed: OUTPUT«List()␤»
writer alpha: (5..6, 2..4).WHAT.say
p6eval alpha 30e0ed: OUTPUT«List()␤»
writer alpha: (5..6).WHAT.say
p6eval alpha 30e0ed: OUTPUT«Range()␤»
writer alpha: (5,3,6).WHAT.say
p6eval alpha 30e0ed: OUTPUT«List()␤»
jnthn JimmyZ: ETOOSOON :-)
writer rakudo: (5,3,6).WHAT.say
p6eval rakudo a1a04a: OUTPUT«Parcel()␤»
JimmyZ rakudo: ( -1, -2, (2+2).say ).pick(1).say; # Will it be lazy? 13:10
p6eval rakudo a1a04a: OUTPUT«4␤1␤»
JimmyZ jnthn: Yeah, just want to took a look.
moritz_ JimmyZ: laziness is only guarantueed for infinite lists 13:11
so maybe not
writer thanks god for not hacking world in perl6 ;)
jnthn infix:<,> doesn't itself caused any thunking or delayed evaluation. 13:12
It just doesn't cause already lazy thingies to become unlazy.
JimmyZ ok
13:19 christine joined 13:21 bphillips left 13:22 cookys joined
JimmyZ Good night, perl6 13:28
13:28 JimmyZ left 13:30 writer is now known as Berkeley, Berkeley is now known as writer
masak night, Jimmy of the Light. 13:32
slavik it's 9:37AM ... what night 13:37
jnthn slavik: In China they're like, really technologically advanced now, so night comes earlier there. 13:38
slavik US fail :(
snarkyboojum it's night at 9:37am in Antartica around late June :) 13:40
mathw it's night all the time in Antarctica around late June :) 13:41
m6locks could parrot be made run as a daemon instance so that it wouldn't take so much tim to parse, now it takes 3 seconds to load the module even if it is pir-compiled
snarkyboojum mathw: aye ;)
jnthn Clearly the penguins are extremely advanced technologically.
PerlJam jnthn: certainly! They gave us linux after all. 13:42
moritz_ m6locks: are you using the newest parrot from svn?
jnthn m6locks: Closest I've seen to anyone doing that was mod_perl6.
snarkyboojum images of penguins wearing microcomputers running linux in 24 hr darkness lol
m6locks moritz_: i guess so
mathw all they need is the faint illumination from their OLED displays
moritz_ m6locks: guessing is no good 13:43
masak halp, #perl6! why won't these two tests not pass? gist.github.com/351813
m6locks funny how --version does not print the revision number
oh, was trying parrot ,sorry 13:44
parrot revision 45178
masak here's the whole program, just for full disclosure: github.com/masak/tardis/blob/ce8c3e...b/Yapsi.pm 13:45
mathw masak: ...because declaration is 'my' <variable>, and then it doesn't know what to do with the ' = 42;' bit?
jnthn masak: Was the double negative intentional? :-)
masak mathw: at which point it should backtrack, no?
mathw then what's it going to find?
masak jnthn: oops. no :) 13:46
mathw where else will it match my?
masak <assignment> calls <lvalue> which calls <declaration>
PerlJam masak: expression is what backtracks and when that happens, it no longer matches "my"
jnthn yes, but it's already committed to declaration 13:47
Remember rules and tokens don't backtack.
masak d'oh!
PerlJam ah, indeed.
jnthn++
mathw this is why I don't use them
because that always bites me
masak :)
the first failing test passes now. 13:48
what about the second one?
(I just rearranged <assignment> to be first in <expression>, btw)
jnthn masak: Maybe whitespace handling fejl? 13:49
masak no, I think I found it.
PerlJam jnthn: that's what I would guess too
masak yup, it was the try block in the test file catching a warning from the module.
jnthn Though assignment is a rule, so maybe not...
PerlJam (but guessing is apparently no good ;)
masak the warning was 'useless redeclaration of $a'
alpha: try { warn "A"; say "B" }; say "C" 13:50
p6eval alpha 30e0ed: OUTPUT«C␤»
masak rakudo: try { warn "A"; say "B" }; say "C"
p6eval rakudo b3e08f: OUTPUT«C␤»
jnthn d'oh. 13:51
moritz_ it's fine to catch warnings, iirc 13:52
if you don't want warnings to be caught, you, do use note() instead of warn()
jnthn oh
jnthn didn't know that one 13:53
PerlJam there's a guy down the hall from my office whose voice sounds like a little girl crying right now (though I'm pretty sure that's *not* the effect he's going for)
masak rakudo: note("But note() isn't implemented! :(")
p6eval rakudo b3e08f: OUTPUT«Could not find sub &note␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:53 bamccaig joined
masak I'll just use $*ERR.say for now :) 13:54
jnthn masak: note("it'd be easy to implement") ;-)
masak :)
13:54 riffraff joined
masak all tests pass! \o/ 13:55
jnthn Write more tests.
;)
masak is on it :)
I think I might be able to make that release today :)
just need to write a SIC serializer and a small runtime :P
bamccaig Anybody know why [email@hidden.address] has me receiving messages from [email@hidden.address] They appear to contain logs from here? 13:59
masak I can explain why they contain logs from here, but not the first part. 14:00
14:00 M_o_C left
moritz_ bamccaig: the bugs address seems to be partially aliased to [email@hidden.address] because that's where bug reports are sent to 14:00
and the bug tracking system tracks answers to these messagegs 14:01
*messages
14:03 Guest97770 is now known as CokeCokeCokeCoke
bamccaig I see. 14:03
14:03 CokeCokeCokeCoke is now known as okeCay
bamccaig They have just be very cryptic and too hard for me to understand so I wanted to figure out why I was getting them. >_> I'll just have Gmail archive them, I guess. 14:04
14:05 envi^home joined
masak bamccaig: sorry about making them cryptic. over the years, each of them are 'complete' in that they describe a bug in sufficient detail... but most of them are quite mundane and perhaps require a greater involvement to be interesting. 14:05
moritz_ bamccaig: if you mean the bug reports, they often contain snippets of Perl 6 code, and how we feed them to a bot, and its response
14:08 M_o_C joined 14:10 M_o_C left
bamccaig It's all good. What really threw me is that they appear to be machine sent, but contain no disclaimers to explain where they came from any why... 14:11
masak :)
masak has been called a machine before
bamccaig ^_^
masak "I know Kung Fu." 14:12
moritz_ I've heard of Kung Fu too. Does that count? :-) 14:14
masak bamccaig: they end up in RT, here: rt.perl.org/rt3/Ticket/Display.html?id=73948
at least one email is sent to p6c, upon their creating. 14:15
PerlJam I used to watch Kung Fu when I was younger. And not too long ago I used to watch Kung Fu Theater
mathw doesn't know kung fu, but does know some aikido... does that count? 14:16
moritz_ mathw: nope, cheating
masak doesn't actually know Kung Fu, but has high hopes for those brain software loaders
mathw moritz_: that's okay, as long as I get to keep winning fights with people who think they know kung fu :) 14:17
moritz_ mathw: that's okay, as long as we never meet in meat space :-)
(or you just chose not to fight :-) 14:18
mathw fighting would be counterproductive
we wouldn't get much hacking done
PerlJam mathw: especially with someone lying injured on the floor 14:19
masak swimming &
14:19 masak left 14:20 payload joined 14:23 writer left
pmichaud good morning, #perl6 14:24
(spectest-update) I have the updated numbers for march, just need to post/commit them.
jnthn morning, pmichaud
PerlJam greetings pm 14:25
14:25 newbie joined
colomon o/ 14:27
mathw o/ pmichaud
moritz_ /o/ 14:28
mathw \o\ 14:29
14:29 pyrimidine joined
jnthn \o/ |\o/| o< /o\ 14:29
;-)
mathw aaaaargh 14:30
mathw hides
okeCay o/\o !
14:36 dual joined
PerlJam www.starbucks.com/blog/10113/starbu...sizes.aspx 14:37
that one is almost good enough to be real :)
14:41 simcop2387 left, nihiliad joined
mathw aht.seriouseats.com/archives/2010/0...rgers.html is my favourite so far 14:41
14:45 justatheory joined
bamccaig now seems why perl6 is just a dream... :P 14:50
s/seems/sees/
moritz_ it's so nice when dreams gradually become reality 14:51
14:52 simcop2387 joined
TimToady @carlmasak RT Going back and forth between Perl 5 and Perl 6, I'm constantly relieved at how much easier either one is to program in than the other. ☺ 14:54
okeCay tries to parse that. 14:55
14:55 okeCay is now known as Coke-san
snarkyboojum rakudo: foreach 1,2,3 { .say } 14:57
p6eval rakudo b3e08f: OUTPUT«Unsupported use of 'foreach'; in Perl 6 please use 'for' at line 11, near " 1,2,3 { ."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum yay
Coke-san wonders if rakudo is generating its PBCs with -O 14:59
moritz_ don't think so... should it? 15:00
and does it really make a difference?
snarkyboojum std: sub foreach {}; foreach();
p6eval std 30254: OUTPUT«ok 00:01 107m␤»
15:00 ash_ joined
snarkyboojum rakudo: sub foreach {}; foreach(); 15:01
p6eval rakudo b3e08f: ( no output )
snarkyboojum std: foreach 1,2,3 { .say }
p6eval std 30254: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/G1RNvGEHHf line 1:␤------> foreach⏏ 1,2,3 { .say }␤FAILED 00:01 104m␤»
pyrimidine std: tr/A-Z/a-z/
p6eval std 30254: OUTPUT«===SORRY!===␤Unsupported use of - as character range; in Perl 6 please use .. at /tmp/3BY2pqvMWX line 1:␤------> tr/A-⏏Z/a-z/␤FAILED 00:01 106m␤»
pyrimidine std: tr/A..Z/a..z/
p6eval std 30254: OUTPUT«ok 00:01 105m␤» 15:02
Coke-san moritz_: there are some small optimizations that occur when you do that. It's probably not worth the extra compile time at this point.
15:02 Trashlord joined
snarkyboojum rakudo: sub foreach(@list) {}; foreach <1 2 3> 15:03
p6eval rakudo b3e08f: OUTPUT«Unsupported use of 'foreach'; in Perl 6 please use 'for' at line 11, near " <1 2 3>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum std: sub foreach(@list) {}; foreach <1 2 3> 15:04
p6eval std 30254: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/ujgz7NU5Sz line 1:␤------> sub foreach(@list) {}; foreach⏏ <1 2 3>␤FAILED 00:01 107m␤»
snarkyboojum so masak's test case still fails
pyrimidine std: 'AAAA' ~~ tr/A..D..H/a..d..h/ 15:06
snarkyboojum bed&
p6eval std 30254: OUTPUT«ok 00:01 106m␤»
pyrimidine TimToady: should that work? 15:07
I'm guessing that would be converted to tr/A..H/a..h/?
15:10 alester joined
TimToady it should probably be disallowed 15:12
std isn't quite that sophisticated yet
15:13 synth joined 15:15 SmokeMachine joined
pyrimidine yes, I think so too. I just collapse them in alpha 15:15
alpha: say 'ABCDE'.trans('A..D..H' => 'a..d..h');
p6eval alpha 30e0ed: OUTPUT«abcde␤»
15:15 Oejet joined 15:16 elmex joined 15:24 Trashlord left 15:42 dual left 15:51 M_o_C joined 15:52 Gothmog_ joined 16:03 payload left 16:16 elmex left, proller joined 16:17 M_o_C left 16:30 elmex joined 16:32 payload joined 16:45 synth left, synth joined 16:48 synth left
colomon lolIblogged: justrakudoit.wordpress.com/2010/04/...my-toe-in/ 16:48
and now off to the dentist. :(
ash_ my dog just chipped one of her teeth, hope nothing like thats happened to you 16:50
16:50 rgrau` joined 16:52 buubot joined
Coke-san austin from parrot just had a tooth pulled unexpectedly. Watch out for those dentists! 16:56
16:57 cotto_work left
m6locks i just scheduled my tooth pulling sessoin... 16:57
16:57 cotto_work joined
Coke-san colomon: is your blog in the planet perl6 ? 16:57
s/the/
jnthn Coke-san: We'd like it added, asked obra but not sure if he noticed the message or got chance. 16:58
Coke-san: Is it something you have access to do too?
Coke-san jnthn: ... I have privs on the parrot one. They might have given me privs on the p6 one too. let me see if I can find the repo. 16:59
jnthn Cool, thanks. :-) 17:00
Coke-san nope. it is correctly limited to parrot. I can ask for privs to the perl6 one too, though.
jnthn OK, and thank for checking. :-) 17:01
17:01 stephenlb joined
Coke-san I pinged the admins. 17:02
obra Someone other than me should ask [email@hidden.address] for planet6 bits, since I don't really...have a whole lot to do with perl6 these days 17:04
moritz_ writes email 17:07
17:07 ash_ left
Coke-san obra: I'm on it. 17:10
obra: you going to risk buying an ipad? =-)
obra Coke-san: "risk"/ 17:11
?
Coke-san obra: didn't you have fun purchasing a nook? 17:12
obra ah, i'm buying the ipad retail 17:14
Coke-san I'm wondering it it would make a decent travel machine. I look forward to reading a blog entry about it. 17:15
TimToady obra: o/ 17:16
17:16 pmurias joined
pmurias ruoso: hi 17:16
obra Coke-san: I'll see what I can do :) 17:18
Right now, most of my cycles that aren't work are going toward getting 5.12.0 out.
And trying to find a reasonable middleground around getting old perl4 libraries onto the CPAN since it was decided that they should be removed from the core (before I got involved). 17:19
I'm absolutely thrilled that we're getting toward a reasoanble way to migrate outdated libraries from core to the CPAN without unduly hurting end users. 17:20
17:20 M_o_C joined
TimToady Perl 6 is still in the business of hurting people on purpose :) 17:21
hopefully not for much longer though... 17:22
obra grins.
I do wish that things which were deprecated had warned by default since day one. 17:23
I've been having a bit of a hard time working through any reasonable way to engage with Tom C's "if my perl 4 scripts start to emit new warnings in Perl 5.12, then the terrorists have won" argument. 17:24
[particle] today, we are all terrorists. 17:25
ruoso hi pmurias
17:26 japhb joined
Coke-san obra: ... is that an actual argument or a strawman? 17:27
(seems the obvious answer to that is: please keep using perl4.)
[particle] Coke-san: this is tchrist, it's an actual argument.
pmurias ruoso: i'm considering including releasing mildew to CPAN in the gsoc application
Coke-san I used to compile perl4 on xenix and sco unix after downloading it off a 2600 baud modem. those were heady days. 17:28
Coke-san questions his faulty memory of baud rates.
obra You read 2600 while waiting for perl to download on your 2400 baud modem 17:29
pmurias ruoso: so it would the proposal would be "put mildew on CPAN and then work on the type inference"
ruoso: do you think that makes sense?
pugssvn r30255 | pmurias++ | [mildew] progress on Type::Scope 17:30
ruoso pmurias, releasing mildew on CPAN is certainly a nice project
I think it would be a good project on its own 17:31
pugssvn r30256 | pmurias++ | [mildew] infering the type of container in a lexical
r30257 | pmurias++ | [mildew]
r30257 | infering the type of integer constants
r30257 | infering the type of the content of the scalar
r30258 | pmurias++ | [mildew] register usage information can be gathered from many registers
17:35 maerlinian left
pmurias ruoso: getting rid of the haskell and python deps, refactoring out the backends, generate Makefiles.PLpacking up smop,bundling STD 17:39
ruoso: getting rid of the haskell and python deps, refactoring out the backends, generate Makefiles.PL's with Dist::Zilla, packing up smop,bundling STD 17:40
ruoso: anything else needed for releasing mildew to CPAN?
ruoso pmurias, I don't think so... 17:42
It's a cool project
it would be even cooler if you could add a v6-mildew variant 17:43
17:43 riffraff left
pmurias there's already a v6 on CPAN 17:45
ruoso v6-mildew?
pmurias use v6-mildew compiles into 'use v6 qw(mildew)' 17:47
use v6_mildew would work fine, but looks a bit less cool 17:48
ruoso I'm pretty sure fglock would like the idea of turning v6 into\' 17:50
\
Coke-san obra; that sounds MUCH more plausible. =-)
I blame the xenix exposure.
ruoso into something modular, that could load different implementations
ruoso 's child trying to type at the same time
and get Pugs::Compiler::Rule based version to a different package 17:51
17:53 eternaleye left
pmurias std: use v6-mildew 17:59
p6eval std 30258: OUTPUT«Potential difficulties:␤ Can't locate module v6-mildew at /tmp/hWSINfwTiz line 0 (EOF):␤------> use v6-milde⏏w␤ok 00:01 107m␤»
pmurias std: use v6-alpha
p6eval std 30258: OUTPUT«Can't call method "Str" on an undefined value at STD.pm line 11718.␤FAILED 00:01 104m␤»
TimToady that is ancient syntax, long gone in p6
18:00 envi^home left
pmurias TimToady: any ideas what should be used to tell p5 to switch to p6? 18:01
TimToady well, STD still contains: token module_name:deprecated { 'v6-alpha' } 18:02
18:02 Trashlord joined
TimToady but it is deprecated, and if we can find another way 18:02
maybe if we simply remove that rule, it'll now parse 'v6-alpha' as a single name, and if that can be made to do the right thing... 18:03
18:04 Oejet left, eternaleye joined
TimToady or switch to v6-mildew; as you can see, it tried to look that up. 18:04
pmurias Can't call method "Str" on an undefined value at STD.pm line 11718. what could be causing that 18:05
18:06 skyler_ joined
pmurias tries to hunt that error down 18:06
18:06 xinming joined
TimToady that's easy, there's no longname 18:07
if we just delete that rule, no problem :)
pmurias should i do that? 18:09
TimToady we added it as a special rule before - was allowed in identifiers, I think 18:11
now v6-alpha is a valid name, so we can just use it like that 18:12
so we'll just delete the special rule
pugssvn r30259 | pmurias++ | [STD] remove the v6-alpha rule
r30260 | lwall++ | [STD] catch bad ranges in tr/// for pyrimidine++ 18:35
18:40 riffraff joined 18:49 mberends joined
moritz_ wow, rakudo rebuild + spectest now in 16min 18:50
(with two cores)
mberends I believe it's chromatic++ bacek++ who deserve our tremendous thanks :) 18:51
moritz_ aye
Coke-san (16m) down from? 18:52
moritz_ about half an hour - didn't really measure though 18:53
and memory usage is also drastically reduced 18:54
alester How did we ever live without say? 18:55
moritz_ alester: painfully 18:56
TimToady there was already one obvious way to do it. :) 18:57
std: tr/a..z/a..b..z/ 19:01
p6eval std 30260: OUTPUT«===SORRY!===␤Range missing start character on the left at /tmp/39HZleORNX line 1:␤------> tr/a..z/a..b..⏏z/␤FAILED 00:01 108m␤»
TimToady std: use v6-alpha;
p6eval std 30260: OUTPUT«Potential difficulties:␤ Can't locate module v6-alpha at /tmp/vafcqLobfD line 1:␤------> use v6-alpha⏏;␤ok 00:01 105m␤»
19:04 ShaneC joined
Coke-san I suppose it's too late to complain that 'say' is occupied by /usr/bin/say (OS X) , and we'll need to pick some other word. =-) 19:04
19:06 ShaneC left
pyrimidine TimToady: nice! (re: tr///) 19:09
TimToady it was harder than I expected...
19:10 ash_ joined 19:11 M_o_C left 19:13 ash_ left 19:14 sorear joined
Coke-san t/spec/S32-array/exists.rakudo (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 9 19:16
19:17 drew_ joined 19:21 LaidBack_01 joined, LaidBack_01 left
pugssvn r30261 | moritz++ | [t/spec] skip a passing TODO test that is likely a false positive 19:22
19:28 pmurias left
jnthn back 19:30
19:40 riffraff left, nihiliad left 19:46 payload left 19:48 payload joined
colomon rakudo: say 1 <=> 2 19:49
p6eval rakudo b3e08f: OUTPUT«-1␤»
19:49 moritz_ sets mode: +o colomon, moritz_ sets mode: +v pugssvn 19:50 drew_ left 19:51 pmurias joined
pmurias Coke-san: a lot of other functions are also commands 19:53
19:53 dual joined
moritz_ rakudo: sub a([$a, @b]) { say @b.perl }; a(<h j k>) 19:54
p6eval rakudo b3e08f: OUTPUT«Nominal type check failed for parameter '@b'; expected Positional but got Str instead␤current instr.: 'a' pc 193 (EVAL_1:78)␤»
moritz_ rakudo: sub a([$a, *@b]) { say @b.perl }; a(<h j k>)
p6eval rakudo b3e08f: OUTPUT«["j", "k"]␤»
19:55 riffraff joined
Coke-san pmurias: I was not at all serious. 19:57
moritz_ rakudo: sub a([$a, *@b]) { say @b.perl }; a() 19:58
p6eval rakudo b3e08f: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: 'a' pc 179 (EVAL_1:77)␤»
moritz_ rakudo: sub a([$a, *@b]) { say @b.perl }; a(())
p6eval rakudo b3e08f: OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1␤current instr.: 'a' pc 190 (EVAL_1:78)␤»
moritz_ rakudo: sub a([$a, *@b]) { say @b.perl }; my @a; a(@a)
p6eval rakudo b3e08f: OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1␤current instr.: 'a' pc 219 (EVAL_1:91)␤»
colomon is kind of worried the sign tests must be broken, or at least severely lacking. 20:00
jnthn moritz_: I plan to awesomize the error to point out when it's coming from a sub-sig at some point. 20:06
moritz_ tries to find the syntax for unpacking hashes 20:09
jnthn parens
20:09 jjore left
moritz_ that's... inconsistent 20:10
why not {...}?
20:10 lichtkind joined
moritz_ rakudo: sub a(%h(:$id, *%bla)) { say %bla.perl }; a { id => 3, b => 3, c => 6 }; 20:11
p6eval rakudo b3e08f: OUTPUT«{"b" => 3, "c" => 6}␤»
20:11 masak joined
moritz_ rakudo: sub a(%(:$id, *%bla)) { say %bla.perl }; a { id => 3, b => 3, c => 6 }; 20:11
masak ahoy, #perl6!
p6eval rakudo b3e08f: OUTPUT«{"b" => 3, "c" => 6}␤»
moritz_ \o/ it's masak
colomon ahoy, masak!
jnthn orkaitsmasak! 20:12
masak :P
jnthn ;-)
TimToady we can't have {...} unpacking because it's ambiguous after ->
jnthn Couldn't resist. :-)
moritz_ TimToady: ah, right
jnthn moritz_: (...) works for all of them akshually.
moritz_: For positionals too.
moritz_: The [...] form is just a little sugar for "and also label this parameter as needing a Positional" 20:13
TimToady it's just [...] is a little more visually distinctive for that
jnthn That too. :-_
TimToady std: (1, 1, *+* ... * ZR~ 'a'..'z').perl.say 20:14
p6eval std 30261: OUTPUT«===SORRY!===␤"..." and "ZR~" are non-associative and require parens at /tmp/KUQaAymEdS line 1:␤------> (1, 1, *+* ... * ZR~ ⏏'a'..'z').perl.say␤FAILED 00:01 109m␤»
TimToady rakudo: (1, 1, *+* ... * ZR~ 'a'..'z').perl.say 20:15
colomon TimToady: very nice
p6eval rakudo b3e08f: ( no output )
colomon TimToady: doesn't properly error in Rakudo; I think it's trying to build 1, 1, *+* ... (* ZR~ 'a'..'z')
TimToady yes, those used to all be right associative, so not surprising 20:16
colomon hmmm..... 20:17
20:18 nihiliad joined, bamccaig left 20:20 espadrine joined 20:22 kst joined
dalek ok: 2d8922b | moritz++ | src/operators.pod:
[operators] small excursion to [+] and [*]; fix a thinko
20:22
ok: ac507ae | moritz++ | src/subs-n-sigs.pod:
[sigs] don't talk about type captures yet - they will later be explained in the multi dispatch chapter
ok: 5946226 | moritz++ | src/subs-n-sigs.pod:
[subs] first shot at unpacking
TimToady try is not supposed to catch warnings, since it's a control exception
dalek ok: f563b19 | moritz++ | src/subs-n-sigs.pod:
[subs] mention slurpy named
TimToady rakudo: try { warn "A"; say "B" }; say "C" 20:24
p6eval rakudo b3e08f: OUTPUT«C␤»
TimToady this is incorrect
moritz_ it should say B\nC\n, right?
TimToady try doesn't catch control exceptions, of which warn is one 20:25
so it should say it all
moritz_ oh
masak and 'note' only writes to STRERR, it doesn't throw anything, right?
jnthn TimToady: Oh.
TimToady correct
colomon TimToady: how does ZR~ get to be non-assoc? I'm not seeing it in STD.pm... 20:26
moritz_ rakudo: say $*ERR.say("foo") 20:27
p6eval rakudo b3e08f: OUTPUT«foo␤1␤»
TimToady S04:1101
pmurias moritz_: when will be the book be ready for testing? (i could attempt to try it out on my flatmate) 20:28
TimToady colomon: well, if you scan for the error message, you should find it about line 4691
moritz_ pmurias: don't know; not yet :(
pmurias: but I'll notify you when it's ready
colomon TimToady: is it this bit, then? 20:29
when 'list' {
$assoc = 0 unless $infix<sym> eqv @opstack[*-1]<sym>;
}
TimToady yes
colomon thank you
It's only conditionally non-assoc, that's why I wasn't finding it up at the top of the file. :) 20:30
20:30 lichtkind left 20:31 [particle] joined
TimToady nap & 20:34
moritz_ TimToady: should there be a method form of note()? 20:37
20:38 espadrine left, justatheory left 20:40 justatheory joined
pugssvn r30262 | moritz++ | [t/spec] some (un)fudges for rakudo 20:41
r30263 | moritz++ | [t/spec] test that note() in a try block is not surpressed
dalek kudo: 833852d | moritz++ | (2 files):
implement note()
20:43
moritz_ any other LHFs in rakudo that I might look at? 20:44
jnthn ponders 20:45
masak rakudo: Match
p6eval rakudo b3e08f: OUTPUT«Could not find sub &Match␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak that one? 20:46
20:46 payload left
moritz_ masak: I've started to attack that, but it waits on review from pmichaud++ 20:46
masak oh.
jnthn moritz_: S02-names_and_variables/fmt.t is still not being run.
moritz_: I suspect that adding back missing .fmt methods would be quite LHF.
moritz_: S03-metaops/reduce.t may be worth looking at too - we implement reduce now 20:47
moritz_ jnthn: good ideas, thanks
rakudo: say (1.3,2.4,3).WHAT 20:48
p6eval rakudo b3e08f: OUTPUT«Parcel()␤»
moritz_ rakudo: say Parcel ~~ Seq
p6eval rakudo b3e08f: OUTPUT«0␤»
moritz_ rakudo: say Seq ~~ Parcel
p6eval rakudo b3e08f: OUTPUT«0␤»
jnthn moritz_: Another thing - if you write a variant of the reduce that has a :triangle adverb, I can very trivially then wire up [\+] to pass it.
s/adverb/named parameter/
moritz_ rakudo: say Parcel ~~ Positional
noted.
p6eval rakudo b3e08f: OUTPUT«1␤»
jnthn making it multi and :$reduce! would do it.
moritz_ oh, Positional is still in PIR :/ 20:49
jnthn is also quite curious about S04-statement-modifiers/given.t not being run.
oh wait 20:50
statement-modifiers, not statements
masak what's the term for when something is bound like `$b := 42`? read-only variable? non-container variable? 20:52
jnthn It's not very variable. ;-)
moritz_ "constant"?
wait, a constant can't be rebound either, can it?
masak but $b is still nominally a variable.
that, too.
jnthn Yeah
moritz_ it's a symbol
jnthn $b ::= 42 and $b := 42 are different in that sense. 20:53
moritz_ rakudo: say (1..3).map({$_}).perl 20:56
p6eval rakudo b3e08f: OUTPUT«(1, 2, 3)␤»
colomon reduce doesn't actually handle the backwards cases yet either, does it?
like [**]
jnthn no 20:57
colomon more LHF...
moritz_ is it? :-) 20:58
doesn't seem very L to me
20:58 lichtkind joined
jnthn Requires minor scrambling. 20:59
dalek kudo: 06ac481 | (Solomon Foster)++ | src/core/ (5 files):
Move various versions of sign to Real.sign, clean up Any.sign a bit.
21:01
colomon also, adding the zero-arg versions of the various infix operators... LHF if ever there was LHF. 21:02
jnthn Rakudo. It's like an orchard of low trees.
moritz_ .fmt patch coming... 21:04
rakudo: say $_ given 2 * 3;
p6eval rakudo b3e08f: OUTPUT«Missing block at line 11, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ jnthn: that's why given.t is not run - the statement modifying form is not run :/ 21:05
erm, s/run/parsed/
jnthn moritz_: on it.
21:06 SmokeMachine left
pyrimidine jnthn: did bkeeler's patch make it in yet? 21:07
(var interp in regexes)
moritz_ pyrimidine: nope, pmichaud wanted to review thoroughly first
pyrimidine okay, thanks 21:08
moritz_ rakudo: say [||] 0, 7, 3 21:09
p6eval rakudo b3e08f: OUTPUT«Could not find sub &infix:<||>␤current instr.: '' pc -1 ((unknown file):-1)␤»
moritz_ rakudo: say [or] 0, 7, 3 21:10
p6eval rakudo b3e08f: OUTPUT«Could not find sub &infix:<or>␤current instr.: '' pc -1 ((unknown file):-1)␤»
colomon I noticed those were missing when I was working on !op, but never got around to looking into it. 21:11
moritz_ rakudo: sub infix:<m>($a + $b + 1); say [m] 3, 4
p6eval rakudo b3e08f: OUTPUT«Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
moritz_ that's an p6eval fuckup
colomon rakudo: sub infix:<m>($a, $) {$a + $b + 1}; say [m] 3, 4 21:12
p6eval rakudo b3e08f: OUTPUT«Symbol '$b' not predeclared in infix:<m>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
colomon rakudo: sub infix:<m>($a, $b) {$a + $b + 1}; say [m] 3, 4
p6eval rakudo b3e08f: OUTPUT«Could not find sub &infix:<m>␤current instr.: '' pc -1 ((unknown file):-1)␤»
moritz_ rakudo: say [<] 1, 3, 2, 4
p6eval rakudo b3e08f: OUTPUT«1␤»
moritz_ it seems rakudo doesn't like reduces of chained ops 21:13
colomon it doesn't do them right, that's for sure.
jnthn moritz_: The problem is that we don't have an infix:<||> defined atm.
moritz_: Because we compile it specially rather than calling infix:<||> 21:14
colomon I'm assuming that's so it can short circuit?
jnthn moritz_: However, you can add one (it won't interfere with normal || uses)
colomon: Correct.
colomon std: say [<] 1, 3, 2, 4
p6eval std 30263: OUTPUT«ok 00:01 109m␤»
jnthn rakudo: say [<] 1, 3, 2, 4
p6eval rakudo b3e08f: OUTPUT«1␤»
21:15 wknight8111 joined 21:16 clintongormley left
lichtkind TimToady: if we have say why dont have we an buildin called ask reading from $*IN ? :) 21:17
jnthn lichtkind: It's called prompt ;-)
lichtkind jnthn: goth and its even in my own docs and i forgot 21:18
21:19 jaldhar left, jaldhar joined
colomon I presume [<] 1, 3, 2, 4 is doing ((1 < 3) < 2) < 4... 21:20
jnthn Guess so. 21:21
Well
Not quite
lichtkind no
jnthn Oh
hmm
lichtkind actually it does
jnthn Yes, we get that wrong.
:-S
lichtkind 1<3, 3<2....
but wait i will look
colomon: yes i was remembering correct 21:22
colomon: actually if [<] @zahlen returns positive that array is sorted
colomon yes, it's supposed to do 1 < 3 < 2 < 4, with proper chaining. 21:24
but that is not what it actually does
lichtkind thats jnthns domain :)
jnthn huh...what... 21:25
:-P
lichtkind haha
colomon .reduce isn't actually defined at all, there's just a woefully inadequate implementation of the method in the spec. :(
moritz_ jnthn: now trying with another infix:<||> rule 21:28
s/rule/operator/
pmurias is it possible to specify lazy builders for an attribute in Perl 6?
21:28 riffraff left
pmurias that is a lazily built default 21:28
jnthn pmurias: lazy builders as in...built first time it's accessed?
moritz_ has $.x = lazy { foo() } 21:29
sure, why not?
21:30 Su-Shee left
pmurias that feature of moose is very addictive 21:31
newbie is it true that perl 6 compiler has speeded up at least 4 fold? 21:33
21:33 newbie is now known as jaffa4
Tene jaffa4: depends on when you're measuring from. 21:34
jaffa4 I read it on some twitter.
today
it said some 4 line changed caused substantial speed ups. 21:35
Tene jaffa4: Yes, that's right.
moritz_ jaffa4: try it out yourself
sorear A recent change caused a 16 fold speed up for me 21:36
it's still too slow, but at least it's within the realm of hackability now
colomon that's a speed up in building the compiler, mind you.
21:36 arthur-_ left
jaffa4 is it not the compilation speed? 21:36
jnthn I'd guess it generally helps a bit with parsing. 21:37
jaffa4: Yes, that's where the real win is.
jaffa4: otoh if you're using Perl 6 grammars in your program, you probably benefit from it too.
jaffa4 so compiling a program has not speeded up 21:38
moritz_ try it. 21:39
jaffa4 according to colomon
sorear jaffa4: The compiler is a program
The compiler is also the largest Perl 6 program you're likely to encounter 21:40
the speedups are in the stage 2 compilation, which is done using Rakudo itself
[particle] that's sad
sorear if you compile a Perl 6 program the size of the setting (10,000 lines give or take), you'll see the same speedups 21:41
21:41 SmokeMachine joined
moritz_ if you compile many regexes, you also see a speedup 21:41
etc.
that's why I said "try it"
jaffa4 is there a binary release of that version?
moritz_ but trying involves effort, which some people don't seem to like
jaffa4 that is possible 21:42
sorear hopefully by Christmas Rakudo will compile itself as quickly as P5
pmurias should have written the mildew AST viewer in curses instead of gtk so he wouldn't have to use a clumsy gui interface 21:43
moritz_ jnthn: is it easy to dispatch to a different reduce sub if the operator being reduced is a chaining one?
oh wait... don't chaining ops already handle arbitrary number of arguments? 21:44
21:44 jmarti joined
moritz_ rakudo: say [<] 0.1, 0.2, 0.3 21:44
p6eval rakudo b3e08f: OUTPUT«0␤» 21:45
jnthn moritz_: I forget off hand how they work.
moritz_ rakudo thinks it's false because (0.1 < 0.2) == 1, and 1 > 0.3 :-)
jaffa4 rakudo: say [+] 0.1, 0.2, 0.3
p6eval rakudo b3e08f: OUTPUT«0.6␤»
masak anyone would like to proof the Yapsi announcement before I post it to p6c? gist.github.com/352405
moritz_ masak: you need to hurry up, only 14 minutes left in your time zone :-) 21:46
masak I'm all set.
just need to push the button.
jaffa4 rakudo: say [/] 0.1, 0.2, 0.3 21:47
p6eval rakudo 06ac48: OUTPUT«1.66666666666667␤»
moritz_ masak: looks fine to me
masak ships it 21:48
moritz_ masak++
jnthn masak: nice
masak :) 21:49
jaffa4 rakudo: say 0.1/ 0.2/ 0.3
p6eval rakudo 06ac48: OUTPUT«1.66666666666667␤»
21:50 lichtkind left 21:51 jmarti left
masak \o/ announcement sent to p6c, blog post posted. both with the correct date. :P 21:53
dalek kudo: 22f81c1 | moritz++ | (4 files):
implement .fmt enough to pass the tests

if Positional was written in Perl 6 (or .fmt in PIR, but I'm not masochist enough to do that after 11pm)
21:54
kudo: 4384e1b | moritz++ | src/core/operators.pm:
implement sub versions of the || and "or" operators
masak moritz_: if I propose a yapsi target for p6eval, will you tell me that patches are welcome? :P 21:55
moritz_ rakudo: say [+]()
p6eval rakudo 06ac48: ( no output )
moritz_ masak: sure, if it compiles in a reasonable time, and executes in a reasonable time
masak I think it's rather reasonable.
hold on, I'll test it.
pugssvn r30264 | pmurias++ | [mildew] types for 21:56
r30264 | my $a = 1;
r30264 | my $b = $a;
r30264 | my $c = $c;
r30264 | are infered
r30264 | (the code is a rough first draft)
sorear p6c?
masak sorear: perl6-compiler 21:57
moritz_ is afraid his concentration doesn't even permit LHF anymore
masak moritz_: it seems to take 1.6 s to run 'say 42' here. that's the total time, inclusing Rakudo parsing the yapsi script, loading the Yapsi.pir file, Yapsi parsing the program, and Yapsi running the program. 21:58
moritz_ masak: that's sufficiently reasonble 21:59
jnthn Not bad. :-)
masak a program which does 'say 42;' five times takes 3.3 s, so the runtime is rather slow. :)
jnthn Ouch! 22:00
:-)
pmurias masak: what's Yapsi?
masak :D
pmurias: it's Yet Another Perl Six Implementation.
jnthn Something that'll REALLY confuse everyone at YAPC.
masak pmurias: Perl 6 compiler and runtime written in Perl 6.
pmurias: there's an announcement at p6c. 22:01
pmurias masak: what do you intend it to be used for?
masak pmurias: that's also in the announcement, but I'm happy to tell you in person. :)
first off, as a basis for tardis, lid and sigmund.
those are our time-traveling debugger, our coverage tool and our static analyzer. 22:02
second, to scout a few areas of Perl 6 that haven't been implemented by any other implementation so far.
I'm looking forward to toying with phasers especially.
moritz_ which ones?
ah
masak but also constant folding.
moritz_ set phasers to stun! 22:03
masak and compiler->runtime and runtime->compiler communication.
sorear do you have a link for sigmund?
masak no, it doesn't exist.
it iz a figment of your imagination!
(apart from a list I keep of things to syntactically check) 22:04
sorear masak: how about global type inference in yapsi?
moritz_ masak: does yapci use gge?
masak moritz_: no, but it will as soon as it's possible.
moritz_: it'll also use STD as soon as we can read YAML.
moritz_: and it might also hook into the Rakudo parser. 22:05
pmurias sorear: i'm working on that for mildew
masak sorear: to the extent that global type inference helps find bugs statically, I expect sigmund to do it.
sorear: but pmurias has actually written stuff, so look at mildew first :) 22:06
pmurias++
22:07 iblechbot left
pmurias masak: shouldn't (tardis,lid,sigmund) be built on top of rakudo? 22:08
masak oh, for some definition of built, they are.
22:08 SmokeMachine left
masak and to the extent that I can plug Rakudo into this, I'll sure try. 22:08
jnthn \o/
masak this is more an inclusive effort than an exclusive one. :)
jnthn masak: After Rakudo *, I'll be quite interested to play with things like that. :-) 22:09
masak it's just... in the long run, we need something that's very purely Perl 6.
it might not be Yapsi, but Yapsi might inform our view on what it'll be.
jnthn All Perl 6 implementation efforts tend to inform us about stuff. :-) 22:10
masak since Elf was put on ice about a year ago, we haven't had a fully bootstrapping Perl 6 implementation.
now we do again :)
pmurias masak: Perlito is a bootstrapped implemenation
sorear how fully bootstrapped? 22:11
pmurias masak: why do you name all your project with strange names
masak 哈哈
pmurias sorear: Perlitio is fully fully bootstraped ;)
masak pmurias: do you have a URL to Perlito?
sorear (how many perl6 implementations will there be on Christmas? How many times will each thing be implemented?) 22:12
masak pmurias: I wasn't aware I was giving my projects strange names. is everyone else giving their projects ordinary, normal names?
pmurias github.com/fglock/Perlito
jnthn Zavolaj and Blizkost are totally ordinary and normal.
masak thanks.
pmurias what i mean is lid vs Devel::Cover
jnthn ;-) 22:13
22:13 jferrero joined
sorear I give projects really boring names like "Space-optimized storage manager for Perl 5" 22:13
masak pmurias: I was quite proud when the name 'lid' struck me. :P 22:15
pmurias: it's a coverage tool, see?
in the same vein, 'sigmund' analyzes stuff.
jnthn OH!
I only just got lid. :-D
moritz_ :-) 22:16
jnthn spectesting a patch for given statement mod.
(It passes all of the given.t)
22:17 pyrimidine left
sorear 15:16 <+dalek> parrot: [PMC] Removed a COW from key_string(); hopefully it's unnecessary. This gives 22:17
15:16 <+dalek> parrot: Rakudo a 1.975% performance improvement on the bootstrapping benchmark. If
jnthn If what?
:-)
sorear If this breaks, *directions* 22:18
jnthn OK. :-)
moritz_ "If anything starts to go weird, this is the one we want to revert." 22:19
22:20 lichtkind joined, ShaneC joined, ShaneC left
masak jnthn: don't know if this is a correct diagnosis, but you might be interested in it anyway: use.perl.org/comments.pl?sid=44692&cid=71809 22:22
jnthn Hmm 22:24
Dunno.
Worth looking into
22:25 pmurias left
masak "Thus Klingon shows its superiority, in that it already honours the new Perl 6 sigil conventions." schwern++ search.cpan.org/dist/Lingua-tlhInga.../yIghun.pm 22:33
moritz_ btw rakudo passed 28919 tests on my test_summary.pl just now 22:37
jnthn Wow, so close to 29k! 22:38
m6locks :) 22:43
jnthn std: my $i = 1; do { $i++ } while $i < 5; 22:45
p6eval std 30263: OUTPUT«===SORRY!===␤Unsupported use of do...while; in Perl 6 please use repeat...while at /tmp/lyErxFrhCR line 1:␤------> my $i = 1; do { $i++ } while $i < 5⏏;␤FAILED 00:01 109m␤»
22:57 nihiliad left
masak rakudo: my $i = 1; do { $i++ } while $i < 5; 22:57
p6eval rakudo 4384e1: ( no output )
masak o.O 22:58
masak submits rakudobug
rakudo: my $i = 1; do { $i++ } while $i < 5; say $i
p6eval rakudo 4384e1: OUTPUT«5␤»
jnthn std: my $i = 1; do { $i++ } if $i; 22:59
p6eval std 30264: OUTPUT«ok 00:01 109m␤»
jnthn masak: Heh, guess why I was checking if STD detected it. ;-) 23:01
masak jnthn: because it's already in RT?
very well. no rakudobug... :) 23:02
jnthn masak: Actually 'cus I'm just sticking it in Rakudo...no idea if there's an RT
There are tests though. :-)
masak ok, I'm standing down :)
23:02 elmex left
lue hello! 23:06
23:06 mikehh joined
masak lue! 23:07
\o/
23:07 sundar joined 23:10 masak left
lue oh! Why did masak have to leave now 23:12
jnthn lue: 'cus it's bedtime
23:12 prism joined, daemon left
lue that's not a reason 23:13
(trying to find the XKCD comic, but the stupid Unixkcd interface is in the way) 23:14
Coke-san google! 23:15
23:15 colomon left
lue xkcd.com/269/ this is why bedtime is not a reason :) 23:16
snarkyboojum masak++ re Yapsi 2010.04 release! :)
classic email to perl6-compiler :)
lue When does the next version of parrot come out? (the one this April) 23:17
sorear third tuesday
20th 23:18
lue OK. If it were released on the 15th, then Rakudo would be 17th. 23:19
Which is the US Premere of Doctor Who, and I'd be hyperventalating right now
23:21 am0c joined
pugssvn r30265 | jnthn++ | [t/spec] Correct and unfudge some tests. 23:24
23:25 elmex joined
lichtkind good night 23:26
dalek kudo: 5a74e09 | jonathan++ | src/Perl6/ (2 files):
Implement given statement modifier.
23:27
kudo: 022d8a9 | jonathan++ | t/spectest.data:
Turn on S04-statement-modifiers/given.t.
kudo: 63ff066 | jonathan++ | src/Perl6/Grammar.pm:
Whine about do...while style thingies.
23:27 eternaleye left
snarkyboojum rakudo: sub foreach(@list) { }; foreach <1 2 3>; 23:28
p6eval rakudo 4384e1: OUTPUT«Unsupported use of 'foreach'; in Perl 6 please use 'for' at line 11, near " <1 2 3>;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum std: sub foreach(@list) { }; foreach <1 2 3>;
p6eval std 30264: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/ny08B4RscG line 1:␤------> sub foreach(@list) { }; foreach⏏ <1 2 3>;␤FAILED 00:01 107m␤»
snarkyboojum std: sub foreach(@list) { }; foreach <1 2 3>); 23:29
p6eval std 30264: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/FvvX3M8TV3 line 1:␤------> sub foreach(@list) { }; foreach⏏ <1 2 3>);␤FAILED 00:01 107m␤»
snarkyboojum looks like a syntax error to me
std: sub foreach(@list) { }; foreach <1 2 3>)()();
p6eval std 30264: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/9fGI4iyziU line 1:␤------> sub foreach(@list) { }; foreach⏏ <1 2 3>)()();␤FAILED 00:01 107m␤»
23:29 eternaleye joined
snarkyboojum std: sub foreach(@list) { }; foreach xya 'k<1 2 3>)()(); 23:29
p6eval std 30264: OUTPUT«===SORRY!===␤Unsupported use of 'foreach'; in Perl 6 please use 'for' at /tmp/VD8P2eGmP0 line 1:␤------> sub foreach(@list) { }; foreach⏏ xya 'k<1 2 3>)()();␤FAILED 00:01 107m␤»
snarkyboojum hehe 23:30
Coke-san I am working on tcl's foreach atm, and keep seeing this in my screen window and getting confused. =-)
snarkyboojum rakudo: foreach(@list) { }; foreach xya 'k<1 2 3>)()();
p6eval rakudo 4384e1: OUTPUT«Confused at line 11, near "foreach(@l"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue lichtkind: good night
snarkyboojum oops sorry Coke-san :)
Coke-san heh. sokay. =-)
lichtkind thanks 23:31
23:31 lichtkind left
sorear std: for(my $pp = \$head; defined $$pp; $pp = \( $$pp->{NEXT} )) { while ($$pp->{VALUE} == 2) { $$pp = $$pp->{NEXT} } } 23:31
p6eval std 30264: OUTPUT«===SORRY!===␤Variable $head is not predeclared at /tmp/B1nCCllUIp line 1:␤------> for(my $pp = \$head⏏; defined $$pp; $pp = \( $$pp->{NEXT} ))␤FAILED 00:01 107m␤»
sorear std: my $head; for(my $pp = \$head; defined $$pp; $pp = \( $$pp->{NEXT} )) { while ($$pp->{VALUE} == 2) { $$pp = $$pp->{NEXT} } }
p6eval std 30264: OUTPUT«===SORRY!===␤Unsupported use of '->{' as postfix dereferencer; in Perl 6 please use '.{' or just '{' to deref, or whitespace to delimit a pointy block at /tmp/mo97y2zYSr line 1:␤------> = \$head; defined $$pp; $pp = \( $$pp->{⏏NEXT} )) { while
..($$pp…
sorear I thought C-for was gone
(incidentally, how do you translate that use of references to P6?) 23:32
jnthn rakudo: for (my $i = 0; $i < 42; $i++) { }
p6eval rakudo 4384e1: OUTPUT«Unsupported use of C-style "for (;;)" loop; in Perl 6 please use "loop (;;)" at line 11, near "(my $i = 0"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum phenny: tell masak 'lid' is an awesome name for the coverage tool :) 23:33
phenny snarkyboojum: I'll pass that on when masak is around.
23:37 avuserow left 23:43 avuserow joined
lue rakudo: say (0 orelse 0 orelse 1 orelse "hi") 23:47
p6eval rakudo 63ff06: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
lue rakudo: say (0 orelse 0 orelse 1)
p6eval rakudo 63ff06: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤» 23:48
jnthn orelse nyi
lue too bad :(
23:48 avuserow left
lue std: say (0 orelse 0 orelse 1) 23:50
p6eval std 30264: OUTPUT«ok 00:01 107m␤»
lue at least p6eval is speedy today :)
rakudo: say (0 andthen 1) 23:51
p6eval rakudo 63ff06: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
lue NYI either
sorear wonders how to translate the sorear linked list filtering algorithm into Perl6 23:52
lue It's not in Perl6? 23:54
:O
sorear it depends on the ability to manipulate references to arbitrary scalars 23:55
I've used it in Perl5 and C
lue So it involves references? 23:56
rakudo: my $a = 3; my $b := $a; $b = 4; say $a;
p6eval rakudo 63ff06: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 17192 (src/builtins/Junction.pir:399)␤»
lue alpha: my $a = 3; my $b := $a; $b = 4; say $a;
p6eval alpha 30e0ed: OUTPUT«4␤»