Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-03-06

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 timotimo gnite #perl6
00:27 adabsurdum joined #perl6
00:40 TimToady m: say 'A'.&uniprop-bool('Any')
00:40 camelia rakudo-moar b6fed1: OUTPUT«True␤»
00:40 TimToady m: say 'A'.&uniprop-int('Any')
00:40 camelia rakudo-moar b6fed1: OUTPUT«1␤»
00:40 TimToady \o/ no more segv
00:42 adabsurdum joined #perl6
00:43 TimToady FROGGS++ for a great deal of help solving the 32-bit issue
00:46 TimToady m: say "«==»".encode("utf-8").Buf.decode("latin-1")
00:46 camelia rakudo-moar b6fed1: OUTPUT«No such method 'Buf' for invocant of type 'utf8'␤  in block  at /tmp/HK2dK5BgTs:1␤␤»
00:47 TimToady m: say "«==»".encode("utf-8").buf8.decode("latin-1")
00:47 camelia rakudo-moar b6fed1: OUTPUT«No such method 'buf8' for invocant of type 'utf8'␤  in block  at /tmp/L9bElwRTkV:1␤␤»
00:47 colomon moar works on 32-bit machines now?
00:47 TimToady well, better than it did
00:47 TimToady we spent most of the day running it down to a missing declaratoin in a .h file
00:48 __thou joined #perl6
00:48 TimToady so of course C defaulted MVMint64 to int, which works fine on a 64-bit machine
00:48 TimToady on a 32-bit machine...not so much...
00:52 TimToady my brother-in-law just wandered into the room and complained about the missing link to S15.html :)
00:53 colomon FROGGS++ TimToady++
00:53 * colomon wonders if he should be trying out moar on the Raspberry Pi
01:04 stevan_ joined #perl6
01:04 BenGoldberg m: say Buf.new("«==»".encode("utf-8")).decode("latin-1")
01:04 camelia rakudo-moar b6fed1: OUTPUT«Â«==»␤»
01:08 JimmyZ p: lazy my $s = time;
01:08 camelia rakudo-parrot b6fed1: ( no output )
01:08 TimToady BenGoldberg: that's what I ended up doing earlier
01:09 TimToady though I perhaps had an unnecessary []
01:09 JimmyZ p: lazy my $s = time; say time - $s;
01:09 camelia rakudo-parrot b6fed1: OUTPUT«0␤»
01:09 JimmyZ p: lazy my $s = time;sleep 2; say time - $s;
01:09 TimToady lazy has nothing to do with phases
01:09 camelia rakudo-parrot b6fed1: OUTPUT«2␤»
01:09 TimToady and it won't delay scalar evaluation
01:10 TimToady there might be some spec fossils that think so, though
01:10 JimmyZ I want the  'lazy statment', like scala language one
01:11 JimmyZ :)
01:11 JimmyZ I think it's useful
01:11 TimToady you want a thunk that calls itself on first FETCH
01:11 TimToady so you don't have to use .() :)
01:12 JimmyZ yeah
01:12 TimToady otoh, one {} and one () is not a lot of extra characters to type :)
01:12 TimToady and pretty good documentation too
01:13 TimToady and English words are so...imperialistic... :)
01:14 woosley joined #perl6
01:14 JimmyZ so there are some code that can be add one { } in the core.setting that makes startup time faster?
01:15 TimToady interesting idea
01:15 TimToady could even load in definitions from disk
01:16 JimmyZ p: class A { has $.a = one { time } }; A.new.a;
01:16 camelia rakudo-parrot b6fed1: ( no output )
01:16 TimToady well, you'd really want a thunk, not a { }, since you don't want to add an extra lexical scope
01:16 JimmyZ p: class A { has $.a = one { time } }; say A.new.a;
01:16 camelia rakudo-parrot b6fed1: OUTPUT«one(Block.new())␤»
01:17 JimmyZ how do I write it as a thunk?
01:17 JimmyZ p: class A { has $.a = one(time) }; say A.new.a;
01:17 camelia rakudo-parrot b6fed1: OUTPUT«one(1394068674)␤»
01:17 BenGoldberg Like think, but with a u
01:17 TimToady has initializers are automatically a thunk
01:18 JimmyZ p: class A { has $.a = one(time) }; my $b =  A.new.a; sleep 3 ; say A.new.a - $b;
01:18 camelia rakudo-parrot b6fed1: OUTPUT«one(one(3))␤»
01:18 BenGoldberg Surely one(foo) (with parens) is the superposition?
01:19 TimToady are you trying to write a once?
01:19 JimmyZ p: class A { has $.a = once(time) }; my $b =  A.new.a; sleep 3 ; say A.new.a - $b;
01:19 camelia rakudo-parrot b6fed1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/XKCmDsLX4Gâ�¤Undeclared routine:â�¤    once used at line 1. Did you mean '&one'?â�¤â�¤Â»
01:19 TimToady not as a function, it's a statment prefix
01:19 TimToady so omit parens
01:19 JimmyZ p: class A { has $.a = once time }; my $b =  A.new.a; sleep 3 ; say A.new.a - $b;
01:20 camelia rakudo-parrot b6fed1: OUTPUT«0␤»
01:20 TimToady yeah, like that
01:20 BenGoldberg . o O (one upon a time)
01:20 BenGoldberg s/one/once/
01:20 JimmyZ so Add some once to the core.setting can make startup faster, I think
01:21 TimToady only if they are in a thunk that is not always called
01:21 JimmyZ yeah
01:21 TimToady once doesn't wait until first FETCH
01:21 TimToady if so the calculation would happen above when you do the -, not when you do the first .new
01:21 BenGoldberg It's a bit more like a singleton computation, innit?
01:21 TimToady but once might help in some spots
01:22 TimToady it's the basis of state variable initialization
01:22 TimToady it used to be called START, in fact
01:23 BenGoldberg p: for (1..5) { say once time; sleep 1 }
01:23 camelia rakudo-parrot b6fed1: OUTPUT«1394068985␤1394068985␤1394068985␤1394068985␤1394068985␤»
01:23 TimToady we un-uppercased it because it is not called at a funny time, as phasers are
01:25 JimmyZ p: class A { has $.a = once time; method BUILD() { $!a; } }; my $b =  A.new.a; sleep 3 ; say A.new.a - $b;
01:25 camelia rakudo-parrot b6fed1: OUTPUT«use of uninitialized value of type Any in numeric context  in block  at /tmp/26fDVSWb5V:1␤␤use of uninitialized value of type Any in numeric context  in block  at /tmp/26fDVSWb5V:1␤␤0␤»
01:26 JimmyZ p: class A { has $.a = once time; method new() { $!a; self; } }; my $b =  A.new.a; sleep 3 ; say A.new.a - $b;
01:26 camelia rakudo-parrot b6fed1: OUTPUT«Cannot look up attributes in a type object␤  in method a at gen/parrot/CORE.setting:2816␤  in block  at /tmp/Wl6vPMmi0T:1␤␤»
01:27 JimmyZ p: class A { has $.a = once time; method start() { $!a; self; } }; my $b =  A.new; $b.start; my $c = $b.a; sleep 3 ; say A.new.a - $c;
01:27 camelia rakudo-parrot b6fed1: OUTPUT«0␤»
01:31 JimmyZ hmm, I think start() can make  $!a  get the time
01:34 TimToady r: my $x = Proxy.new: FETCH => { once say "HERE" }
01:35 camelia rakudo-jvm b6fed1: OUTPUT«(timeout)»
01:35 camelia ..rakudo-parrot b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤»
01:35 TimToady why is FETCH being called?
01:35 TimToady or is it?
01:36 TimToady r: my $x = Proxy.new: FETCH => { if 0 { once say "HERE" } }
01:36 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: ( no output )
01:36 TimToady r: my $x := Proxy.new: FETCH => { once say "HERE" }
01:36 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤»
01:36 JimmyZ TimToady: I see some code somethink like 'my &lastcall := -> { ... }', is it init at startup time?
01:37 TimToady r: my \x = Proxy.new: FETCH => { once say "HERE" }
01:37 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤»
01:37 TimToady why is FETCH being called?!?
01:37 TimToady my always runs at run time
01:38 TimToady but the ... is delayed by the closure
01:38 TimToady so lastcall will not be available before that statement runs
01:38 TimToady our is supposed to run at INIT time
01:39 kurahaupo__ joined #perl6
01:41 TimToady r: lazy my \x = Proxy.new: FETCH => { once say "HERE" }
01:41 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤»
01:42 TimToady r: constant x = Proxy.new: FETCH => { once say "HERE" }
01:42 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤»
01:43 TimToady n: constant x = Proxy.new: FETCH => { once say "HERE" }
01:43 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤    'once' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_…»
01:43 TimToady n: constant x = Proxy.new: FETCH => { START say "HERE" }
01:43 camelia niecza v24-109-g48a8de3: ( no output )
01:43 TimToady n: constant x = Proxy.new: FETCH => { START say "HERE" }; say x
01:43 camelia niecza v24-109-g48a8de3: OUTPUT«HERE␤(Nil)␤»
01:43 TimToady r: constant x = Proxy.new: FETCH => { START say "HERE" }; say x
01:43 camelia rakudo-moar b6fed1: OUTPUT«HERE␤HERE␤HERE␤===SORRY!===␤Cannot invoke null object␤»
01:43 camelia ..rakudo-jvm b6fed1: OUTPUT«HERE␤HERE␤HERE␤===SORRY!===␤java.lang.NullPointerException␤»
01:43 camelia ..rakudo-parrot b6fed1: OUTPUT«HERE␤HERE␤HERE␤===SORRY!===␤Could not find sub &START␤»
01:44 TimToady wow
01:44 TimToady r: constant x = Proxy.new: FETCH => { once say "HERE" }; say x
01:44 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤True␤»
01:44 TimToady r: constant x = Proxy.new: FETCH => { once say "HERE" }; sleep 3; say x
01:44 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤True␤»
01:45 TimToady r: constant x = Proxy.new: FETCH => { once say time }; say time; sleep 3; say x
01:45 camelia rakudo-moar b6fed1: OUTPUT«1394070319␤1394070319␤True␤»
01:45 camelia ..rakudo-parrot b6fed1: OUTPUT«1394070311␤1394070311␤True␤»
01:45 camelia ..rakudo-jvm b6fed1: OUTPUT«1394070315␤1394070315␤True␤»
01:45 JimmyZ p: once { my $time = time; PROCESS::<$TIME> := $time; }; say time ; sleep 3; say PROCESS::<$TIME>;  # how do I make it working ?
01:45 camelia rakudo-parrot b6fed1: OUTPUT«1394070325␤1394070325␤»
01:46 TimToady something is FETCHing prematurely in rakudo, perhaps trying to do a type check?
01:53 [Coke] daily run still not done...
01:54 JimmyZ lazy val t = System.currentTimeMillis; println(System.currentTimeMillis); Thread.sleep(1000); println(t); Thread.sleep(1000); println(t);
01:54 JimmyZ outputs:
01:54 JimmyZ 1394070745944
01:54 JimmyZ 1394070746946
01:54 JimmyZ 1394070746946
01:54 JimmyZ I still don't know how to make it working by rakudo
01:59 TimToady r: constant x = Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 3; say x; say "DONE"
01:59 camelia rakudo-moar b6fed1: OUTPUT«HERE␤HERE␤HERE␤START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤True␤DONE␤»
01:59 camelia ..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«HERE␤HERE␤HERE␤START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤True␤DONE␤»
01:59 TimToady gee, how many times can we call something to get one value?
02:00 TimToady r: my \x = Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 3; say x; say "DONE"
02:00 camelia rakudo-moar b6fed1: OUTPUT«START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤True␤DONE␤»
02:00 camelia ..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤True␤DONE␤»
02:01 TimToady I'd think it should say "HERE" once, not six or seven times...
02:02 TimToady r: my \x = Proxy.new: FETCH => { die "HERE" }; say "START"; sleep 3; say x; say "DONE"
02:02 JimmyZ so we may want `my $xxx = ..... is lazy`?
02:02 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«START␤HERE␤  in block  at /tmp/tmpfile:1␤␤»
02:05 TimToady r: my \x = Proxy.new: FETCH => { die Backtrace.new }; say "START"; sleep 3; say x; say "DONE"
02:05 camelia rakudo-jvm b6fed1: OUTPUT«START␤  in method new at gen/jvm/CORE.setting:10792␤  in method new at gen/jvm/CORE.setting:10785␤  in block  at /tmp/tmpfile:1␤␤  in block  at /tmp/tmpfile:1␤␤»
02:05 camelia ..rakudo-parrot b6fed1: OUTPUT«START␤  in method new at gen/parrot/CORE.setting:10813␤  in method new at gen/parrot/CORE.setting:10805␤  in block  at /tmp/tmpfile:1␤␤  in block  at /tmp/tmpfile:1␤␤»
02:05 camelia ..rakudo-moar b6fed1: OUTPUT«START␤  in method new at src/gen/m-CORE.setting:10850␤  in method new at src/gen/m-CORE.setting:10842␤  in block  at /tmp/tmpfile:1␤␤  in block  at /tmp/tmpfile:1␤␤»
02:07 TimToady actually, all those HEREs are coming after the sleep 3
02:08 TimToady r: my \x = Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 1; say x + 1; say "DONE"
02:09 camelia rakudo-moar b6fed1: OUTPUT«START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤2␤DONE␤»
02:09 camelia ..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤2␤DONE␤»
02:09 TimToady there's a riot
02:09 TimToady how can x+1 possibly be fetching 29 times?!?!?!?!
02:10 TimToady is it refetching the value on every attempt to bind?
02:10 TimToady I think I see a way to speed up rakudo...
02:11 JimmyZ :P
02:12 * JimmyZ maybe see a way to speed up rakudo startup
02:14 jercos r: my $x = 0;my \x = Proxy.new: FETCH => { $x++; say $x; return $x };sleep 1; say x + 1; say "DONE"
02:14 camelia rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«1␤»
02:14 camelia ..rakudo-parrot b6fed1: OUTPUT«(signal SEGV)1␤»
02:14 jercos erm.
02:15 dalek perl6-roast-data: 24d5427 | coke++ | / (4 files):
02:15 dalek perl6-roast-data: today (automated commit)
02:15 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/24d54270ee
02:16 xenoterracide joined #perl6
02:17 TimToady r: my $x = Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 1; say $x + 1; say "DONE"
02:17 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE␤START␤2␤DONE␤»
02:18 TimToady that just does it once, but before START, huh
02:18 TimToady r: my $x := Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 1; say $x + 1; say "DONE"
02:18 camelia rakudo-moar b6fed1: OUTPUT«START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤2␤DONE␤»
02:18 camelia ..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«START␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤HERE␤2␤DONE␤»
02:19 JimmyZ It will be a good RT
02:19 TimToady r: say "START"; my $x = Proxy.new: FETCH => { say "HERE" }; say "MIDDLE"; sleep 1; say $x + 1; say "DONE"
02:19 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«START␤HERE␤MIDDLE␤2␤DONE␤»
02:22 pdcawley joined #perl6
02:22 FROGGS_ joined #perl6
02:22 * TimToady suspects Proxy FETCHes are pessimized over normal ones...
02:26 woosley joined #perl6
02:27 xenoterracide_ joined #perl6
02:29 klapperl joined #perl6
02:41 xenoterracide_ joined #perl6
02:43 Sqirrel joined #perl6
03:02 adabsurdum joined #perl6
03:02 hoverboard joined #perl6
03:12 unclefester2 joined #perl6
03:12 unclefester2 r: my $i = 0; my @a = (10, 20 ,30 ,40); my @l := gather { for @a {++$i; take $_ } }; my @pull; push @pull, $_, $i for @l; @pull.say
03:12 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«10 1 20 2 30 3 40 4␤»
03:14 xinming joined #perl6
03:17 Colby` joined #perl6
04:30 jnap joined #perl6
04:35 pdcawley joined #perl6
04:57 woosley1 joined #perl6
05:27 adabsurdum joined #perl6
05:30 Guest24938 joined #perl6
05:31 jnap joined #perl6
05:35 lue rn: my $a = "1,2,3"; $a ~~ /<digit>\,/; say $a.split(/\,/)'  # expected output: 2 3
05:35 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Two terms in a rowâ�¤at /tmp/tmpfile:1â�¤------> [32m"; $a ~~ /<digit>\,/; say $a.split(/\,/)[33mâ��[31m'  # expected output: 2 3[0mâ�¤    expe…»
05:35 camelia ..niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Confused at /tmp/tmpfile line 1:â�¤------> [32m"; $a ~~ /<digit>\,/; say $a.split(/\,/)[33mâ��[31m'  # expected output: 2 3[0mâ�¤â�¤Parse failedâ�¤â�¤Â»
05:35 lue rn: my $a = "1,2,3"; $a ~~ /<digit>\,/; say $a.split(/\,/)  # expected output: 2 3
05:35 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1, niecza v24-109-g48a8de3: OUTPUT«1 2 3␤»
05:36 lue Oh, I misread. I thought split had an implicit :p, but rather it's a :c
05:38 lue Still doesn't change that I should be getting "2 3" out of that though.
05:39 TimToady where did you get that factoid?
05:39 TimToady I don't recognize it
05:40 lue S05, "Note that this does not automatically anchor the pattern to the starting location. (Use :p for that.) The pattern you supply to split has an implicit :c modifier."
05:40 TimToady hmm, I think that just means it scans
05:41 TimToady meaning each application starts scanning where the previous left off
05:42 TimToady I don't think it means it pays attention to previous matchew
05:42 TimToady *es
05:42 lue Ah, so it would be an internal thing. Makes sense, esp. considering what I was thinking of had no obvious way of being disabled.
05:42 TimToady I think implicit there meant internal
05:45 kurahaupo_mobile joined #perl6
05:46 lue .oO( I think I've anyway reached the point where I need to write a simple Pod6 grammar, instead of this mess of regexes that's slowly creeping in ☺ )
05:47 BenGoldberg Is there any particular defined behavior for 'sort', if the sort function passed to it gives unstable results?
05:48 TimToady well, hopefully it won't coredump, but we probably can't guarantee anything beyond that
05:48 BenGoldberg Ok.
05:49 BenGoldberg So the fact that with this:
05:49 BenGoldberg rn: print sort { Order((state $ = 1) *= -1) }, 'JPuesrtl  ahnaoctkheerr, '.comb
05:49 camelia niecza v24-109-g48a8de3: OUTPUT«JPuesrtl  ahnaoctkheerr, »
05:49 camelia ..rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«Just another Perl hacker,»
05:49 BenGoldberg niecza simply returns its input unmodified, and without emitting a warning, is ok?
05:51 TimToady sure, though if it had emitted flying butt monkeys, that might also be okay
05:51 BenGoldberg I would kinda expect a warning if it was going to emit flying butt monkeys :)
05:52 TimToady stealth flying butt monkeys
05:54 BenGoldberg r: say "Flying \c[MONKEY]"
05:54 camelia rakudo-jvm b6fed1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Unrecognized character name MONKEY�at /tmp/tmpfile:1�------> [32msay "Flying \c[MONKEY[33m�[31m]"[0m�»
05:54 camelia ..rakudo-parrot b6fed1, rakudo-moar b6fed1: OUTPUT«Flying 🐒␤»
05:59 BenGoldberg nr: my $i = 0; my $x := Proxy.new: FETCH => { print "(",++$i,")"; '!' }; print "<"; print $x ~ '?'; say ">"
06:00 camelia niecza v24-109-g48a8de3: OUTPUT«(1)<(2)(3)!?>␤»
06:00 camelia ..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«<(1)(2)(3)(4)!?>␤»
06:00 camelia ..rakudo-moar b6fed1: OUTPUT«<(1)(2)(3)(4)(5)(6)(7)!?>␤»
06:00 BenGoldberg nr: my $i = 0; my $x := Proxy.new: FETCH => { print "(",++$i,")"; 42 }; print "<"; print $x + 11; say ">"
06:00 camelia niecza v24-109-g48a8de3: OUTPUT«(1)<(2)53>␤»
06:00 camelia ..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«<(1)(2)(3)(4)53>␤»
06:00 camelia ..rakudo-moar b6fed1: OUTPUT«<(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)53>␤»
06:00 BenGoldberg nr: my $i = 0; my $x := Proxy.new: FETCH => { print "(",++$i,")"; 42 }; print "<"; print $x; say ">"
06:00 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«<(1)(2)42>␤»
06:00 camelia ..niecza v24-109-g48a8de3: OUTPUT«(1)<(2)(3)(4)(5)(6)42>␤»
06:01 BenGoldberg Most peculiar.
06:27 dayangkun joined #perl6
06:29 [Sno] joined #perl6
06:31 jnap joined #perl6
06:32 pdcawley joined #perl6
06:39 kaleem joined #perl6
06:56 denis_boyun joined #perl6
07:07 dmol joined #perl6
07:22 FROGGS joined #perl6
07:27 sqirrel_ joined #perl6
07:32 jnap joined #perl6
07:49 darutoko joined #perl6
07:56 dmol joined #perl6
08:10 Rotwang joined #perl6
08:10 zakharyas joined #perl6
08:17 dmol joined #perl6
08:32 kbaker joined #perl6
08:54 fhelmberger joined #perl6
08:54 * lizmat reads http://p6weekly.wordpress.com/2014/03/03/changes-during-week-9-of-2014/ and wonders whether flatmap shouldn't be specced
08:59 dakkar joined #perl6
09:04 kbaker joined #perl6
09:11 pippo joined #perl6
09:16 virtualsue joined #perl6
09:18 timotimo that's not my department :P
09:18 moritz "once rockets are up, who cares where they come down? that's not my department, says Wernher von Braun" -- Tom Lehrer
09:41 [particle]1 joined #perl6
10:06 kbaker joined #perl6
10:24 rindolf joined #perl6
10:25 arnsholt joined #perl6
10:30 FROGGS jnthn / masak / moritz / tadzik / timotimo / lizmat / arnsholt / [Coke] / JimmyZ / TimToady / pmichaud: please sign up as a possible mentor if you want to become one: http://www.google-melange.com/gsoc/homepage/google/gsoc2014
10:30 * moritz already signed up
10:38 spider-mario joined #perl6
10:52 tadzik signing up
11:00 tadzik I filed some request
11:06 moritz tadzik: please join #soc-help on irc.perl.org
11:11 arnsholt joined #perl6
11:37 itz__ joined #perl6
11:40 itz_ joined #perl6
11:41 scumdog joined #perl6
11:44 bjz joined #perl6
11:54 kaleem joined #perl6
11:55 colomon joined #perl6
12:03 brrt joined #perl6
12:03 brrt hi #perl5
12:03 brrt #perl6
12:03 brrt such typo
12:05 FROGGS *g*
12:05 FROGGS hi brrt
12:05 brrt hi Froggrs
12:05 brrt typo time again
12:12 daniel-s_ joined #perl6
12:45 colomon Froggers!
12:48 xinming joined #perl6
13:01 cognominal joined #perl6
13:23 zakharyas joined #perl6
13:26 telex joined #perl6
13:39 fhelmberger joined #perl6
13:42 brrt asking arround: my university wants to publish the percentile ranking of students within their yeargroup on their degree certificate, as a way to show prospective recruiters / interviewers the relative quality of the students involved
13:42 brrt … anybody got an idea on how to sort students?
13:42 brrt mind that the majority of students do not all take the exact same courses
13:45 moritz make a ranking for each course, and then for each student do an average of all the rankings
13:45 moritz (percentual rankings, that is)
13:45 xinming joined #perl6
13:50 brrt moritz - that is probably my solution, too
13:50 brrt …. but it is not so obvious to defend
13:50 brrt (for a math-deficient person like myself, at least)
13:52 moritz well, there are two obvious other approaches
13:52 moritz one is to give out points per course, and sum them up
13:52 brrt in the netherlands, that is actually the 'default' approach
13:52 moritz but that just gives the most laborous students the advantage, not the actually best ones
13:53 brrt exactly
13:53 brrt and there is another problem
13:53 brrt the whole point of the percentile rankings was that marks / grades differ too much per course / professor
13:54 moritz ... and I forgot what the second approach was :-)
13:54 brrt i.e. one could study a 'difficult subject' where lots of low grades are given and be in the top 5% and one could study an 'easy subject' where lots of high grades are given and be a top 95% student… and when directly compared the second student would easily 'win' from the first
13:55 brrt one solution i used on another ranking problem is rank scoring (i.e. - mario kart)
13:55 pecastro joined #perl6
13:56 brrt you get f(r)*N points - N is total points, r is rank, f(r) is a function of rank that decreases over r
13:56 brrt but the main motivation of that solution was that the 'competitions' in question where uncomparable
13:58 brrt i have another solution of which i was fond until late yesterday evening
13:59 brrt simply put - if i can compare two students to determine if one is 'better' than the other, i'm all set - i can use a sorting algorithm
13:59 brrt …. wait there is a problem with that
14:00 moritz I also thought of some kind of topological ordering
14:00 moritz but I'm afraid it usually won't exist
14:00 brrt … yeah, thats basically my point too
14:00 brrt :-)
14:01 brrt you could compare two students, count the number of times one has a better grade than the other, with a 'win' for a student if he/she has followed a course but the other hasn't
14:01 brrt but what about 'incomparable' students?
14:01 moritz but only if the two students actually had overlapping courses
14:01 brrt right
14:02 brrt so you'd first have to divide them into 'comparable' set
14:02 brrt s
14:02 moritz also, what do you do if have two students, A and B, and their ranking in three courses in A=1,B=100; A=55,B=54; A=55,B=54
14:03 moritz such a partition won't exist, usually
14:04 brrt ….. usually or generally?
14:05 guru joined #perl6
14:05 brrt sorted by percentile average seems the best approach to me
14:07 moritz both, probably
14:07 [Coke] FROGGS: already signed up.
14:10 brrt there is another problem though
14:10 brrt what about stragglers - like myself :-)
14:10 brrt i have relatively high grades but i will receive my degree years after most students of my yeargroup
14:11 moritz you'll collect other experiences, which you can boast with and use for getting hired
14:12 moritz du happen to want to learn German, and program Perl and/or Python (and a bit of JS) in Bavaria?
14:12 moritz s/du/do/
14:12 brrt anyway - that means that at the time early-finishers received their degree, they'd be higher in the ranking, but by the time i'll receive mine, i might be in their place
14:12 brrt haha that is true
14:13 timotimo moritz is hiring? :)
14:13 moritz timotimo: well, my employer is hiring :-)
14:13 brrt well…….  actually….. i'd like too, but i'm .. ahum… being approached at multiple sites to go work with / for them / study further
14:13 moritz brrt: I know that situation, no hard feelings :-)
14:14 brrt which i guess is natural considering the current developer climate but makes it very hard for me to choose anything
14:14 brrt but yeah, otherwise it'd sound pretty good :-)
14:16 moritz (the offer goes to any perl programmer, not just brrt; sadly we're doing perl 5.14, not perl 6)
14:18 jnap joined #perl6
14:19 JimmyZ :)
14:38 dmol joined #perl6
14:41 brrt joined #perl6
14:45 LLamaRider joined #perl6
14:51 [Coke] wait, I can get a job programming in perl!?
14:52 timotimo yeah, but do you really want to be stuck with 5.14 in this day and age?
14:52 slavik1 shush, we need devs to write 5.14 code
14:52 slavik1 seriously ... we do
14:52 jnap not so bad, lots of places still 5.10 or earlier
14:53 zakharyas joined #perl6
14:53 jnap when I left shutterstock most of their money making code was 5.8.8 on mod_perl1
14:53 zakharyas joined #perl6
14:55 virtualsue joined #perl6
14:56 pmurias joined #perl6
14:58 timotimo to be fair, i don't know anything about the 5 series :P
14:59 * JimmyZ almost too
15:00 LLamaRider I'm doing quite a lot of 5 work, even hoping to get a P5 job in 2015, though who knows what will happen...
15:00 [Coke] anyone know anything about jerl?
15:00 * JimmyZ never heard it
15:01 * LLamaRider same
15:01 FROGGS perhaps Coke made a Joke?
15:02 JimmyZ Jerl 6?
15:02 rjbs expected for Jhristmas.
15:03 brother https://code.google.com/p/jerl/
15:04 brrt that project strikes me with a diffuse fear
15:04 brother Just knew that I heard the name for someing Perl/Java cross-over before
15:05 LLamaRider oh it just plugs it inside Java as a VM. Not that scary then :)
15:05 brrt also, why is the default mysql collation latin1_swedish_ci
15:05 brrt just….. why
15:06 timotimo well, it had to be *some* collation
15:06 brrt :'-(
15:06 timotimo so why not use latin1 instead of unicode and then use swedish instead of the system's locale and then use case insensitive because that's just common sense
15:06 pmurias what is the performance of nqp-moar compared to nqp-parrot?
15:06 FROGGS well, there is latin1_general, no?
15:06 brother brrt: the main mysql founders was swedish...
15:07 FROGGS pmurias: nqp-moar is faster
15:07 timotimo http://t.h8.lv/p6bench/2014-02-22-nqp.html
15:07 brrt pmurias - probably benchmark-specific, but i've heard good things about nqp-moar
15:07 brrt that is not a reason
15:07 brrt brother
15:07 brrt :-D
15:07 FROGGS pmurias: twice as fast as parrot in most cases, but it is slower when it comes to string operations
15:07 brrt i'm dutch, i'm certainly not forcing everybody … wait dutch is just latin1
15:08 timotimo FROGGS: not any more; at least for small tasks. for big tasks it still tanks
15:08 brother brrt: Being swedish seems to be a reason for many strange things
15:08 FROGGS timotimo: ah, cool
15:08 timotimo http://t.h8.lv/p6bench/2014-02-25-flatten_fastpath.html - rakudo instead of nqp, but still interesting maybe?
15:09 FROGGS pmurias: when you have time, can you outline the state of rakudo-js?
15:10 pmurias FROGGS: just started on making it use the nqp build system so that it can be migrated to the nqp repo
15:10 pmurias s/started/started working/
15:10 FROGGS pmurias: that would be awesome!
15:10 timotimo yay! :)
15:10 FROGGS (and it would mean that others can fix things too)
15:11 FROGGS ++pmurias
15:23 __thou joined #perl6
15:33 pmurias what's the right format for a dalek commit hook?
15:34 moritz pmurias: for github, there's documentation in mu/misc/dalek-push.txt or so
15:34 pmurias there's a "Payload Version" setting on github?
15:34 dalek nqp-js: 94dc21b | (Pawel Murias)++ | / (3 files):
15:34 dalek nqp-js: Run a settingless 'nqp::say("Hello World")' with a system installed nqp-p.
15:34 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/94dc21b33c
15:34 dalek nqp-js: cb4dfc5 | (Pawel Murias)++ | gen/js/stage1/ (2 files):
15:34 dalek nqp-js: Add .gitignore to create required dirs.
15:34 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/cb4dfc5481
15:34 pmurias moritz: it works ;)
15:35 moritz pmurias: which version did you chose?
15:35 moritz pmurias: please update the file in Mu :-)
15:35 pmurias moritz: I used the default form one
15:51 masak aloha, #perl6
15:51 LLamaRider o/ masak
15:51 treehug88 joined #perl6
15:51 masak perl6: my $a = 0; ($a++)++
15:51 camelia rakudo-parrot b6fed1: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub postfix:<++> at gen/parrot/CORE.setting:4436␤  in sub postfix:<++> at gen/parrot/CORE.setting:1791␤  in block  at /tmp/tmpfile:1␤␤»
15:51 camelia ..rakudo-jvm b6fed1: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub postfix:<++> at gen/jvm/CORE.setting:4432␤  in sub postfix:<++> at gen/jvm/CORE.setting:1787␤  in block  at /tmp/tmpfile:1␤␤»
15:51 camelia ..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Writing to readonly scalar␤  at /tmp/tmpfile line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤  at /home/p6eval…»
15:51 camelia ..rakudo-moar b6fed1: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub postfix:<++> at src/gen/m-CORE.setting:4432␤  in sub postfix:<++> at src/gen/m-CORE.setting:1787␤  in block  at /tmp/tmpfile:1␤␤»
15:52 masak perl6: my $a = 0; ++(++$a)
15:52 camelia niecza v24-109-g48a8de3: ( no output )
15:52 camelia ..rakudo-parrot b6fed1: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub prefix:<++> at gen/parrot/CORE.setting:4429␤  in sub prefix:<++> at gen/parrot/CORE.setting:1784␤  in block  at /tmp/tmpfile:1␤␤»
15:52 camelia ..rakudo-moar b6fed1: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub prefix:<++> at src/gen/m-CORE.setting:4425␤  in sub prefix:<++> at src/gen/m-CORE.setting:1780␤  in block  at /tmp/tmpfile:1␤␤»
15:52 camelia ..rakudo-jvm b6fed1: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub prefix:<++> at gen/jvm/CORE.setting:4425␤  in sub prefix:<++> at gen/jvm/CORE.setting:1780␤  in block  at /tmp/tmpfile:1␤␤»
15:52 masak niecza: my $a = 0; ++(++$a); say $a
15:52 camelia niecza v24-109-g48a8de3: OUTPUT«2␤»
15:52 masak who's "right", Niecza or Rakudo?
15:53 FROGGS I was to say Niecza
15:53 masak is it spec'd at all whether prefix:<++> yields an lvalue?
15:53 FROGGS but now...
15:54 pmurias if I want to use a stage0 nqp-p to build my stage1 nqp-js where should I build the nqp.pbc?
15:55 pmurias as the parrot stage0 nqp executable might be only in pir form if parrot is not being built
15:55 kaleem joined #perl6
15:58 FROGGS masak: I can't find anything about lvalueness of that
15:59 pmurias masak: is there a reason why it shouldn't be lvalue?
16:00 FROGGS pmurias: is !$foo and lvalue?
16:02 lizmat FROGGS: don't you mean $!foo ?
16:02 lizmat cause !$foo certainly is not an lvalue in my book   :-)
16:03 lizmat fwiw: $ perl -e '++(++$a)'
16:03 lizmat Can't modify preincrement (++) in preincrement (++)
16:06 guru joined #perl6
16:08 benabik joined #perl6
16:11 grondilu joined #perl6
16:12 grondilu r: class A { has $x; multi method new(:$y) { self.new: :x(-$y) } }; say A.new(:y(1));
16:12 jnap joined #perl6
16:12 camelia rakudo-jvm b6fed1: OUTPUT«use of uninitialized value of type Any in numeric context␤use of uninitialized value of type Any in numeric context␤use of uninitialized value of type Any in numeric context␤use of uninitialized value of type Any in numeric context␤use of uninitiali…»
16:12 camelia ..rakudo-parrot b6fed1: OUTPUT«(timeout)use of uninitialized value of type Any in numeric context  in method new at /tmp/tmpfile:1␤␤use of uninitialized value of type Any in numeric context  in method new at /tmp/tmpfile:1␤␤use of uninitialized value of type Any in numeric con…»
16:12 camelia ..rakudo-moar b6fed1: OUTPUT«(timeout)use of uninitialized value of type Any in numeric context␤use of uninitialized value of type Any in numeric context␤use of uninitialized value of type Any in numeric context␤use of uninitialized value of type Any in numeric context␤use of …»
16:13 grondilu n: class A { has $x; multi method new(:$y) { self.new: :x(-$y) } }; say A.new(:y(1));
16:13 camelia niecza v24-109-g48a8de3: OUTPUT«A.new(...)␤»
16:14 FROGGS lizmat: no, it was just another example of the case of ++$foo
16:14 xragnar_ joined #perl6
16:22 jnap joined #perl6
16:24 rindolf Hi all.
16:25 rindolf http://pastie.org/8884041 - perl Configure.pl gives me this - I already did git clean -dxf - why am I getting this?
16:30 dalek nqp-js: 2edd966 | (Pawel Murias)++ | / (26 files):
16:30 dalek nqp-js: Copy over the runtime.
16:30 dalek nqp-js:
16:30 dalek nqp-js: Add some instructions to the README.
16:30 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/2edd966c96
16:32 FROGGS rindolf: it looks like parrot's configure scripts thinks that you've got a perl 5.18
16:32 rindolf FROGGS: I do, but not 5.18.1
16:32 rindolf FROGGS: perl-5.18.2-4.mga5
16:33 timotimo git clean will not clean the checked out "submodules"
16:33 timotimo actually not submodules
16:33 FROGGS rindolf: can you check: perl-5.18.2-4.mga5 -E 'say $^X'
16:33 FROGGS rindolf: and perhaps also perl-5.18.2-4.mga5 -V
16:33 rindolf FROGGS: that's the package name.
16:33 rindolf FROGGS: it's not the executable.
16:34 FROGGS well, then use the binary name instead
16:34 timotimo i think you need to cd into the parrot dir and configure.pl in there or something like that
16:34 rindolf timotimo: ah, OK.
16:34 timotimo worst case, remove the parrot folder completely, to force a clean reinstall
16:38 * brrt off, thanks moritz for helpful advice :-)
16:39 btyler joined #perl6
16:40 skids joined #perl6
16:45 TimToady r: my $a = 1; say ($a += 2) += 3
16:45 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«6␤»
16:45 hoverboard joined #perl6
16:46 TimToady so how is ++$a different from $a += 1 ?
16:48 TimToady $a++ has to clone the old value, of course, so need not apply
16:48 lizmat fwiw: $ perl -E '($a += 1) += 2; say $a'
16:48 lizmat 3
16:49 lizmat more accurately: $ perl -E 'my $a=1; say ($a += 2) += 3'
16:49 lizmat Can't modify say in addition (+) at -e line 1, at EOF
16:49 lizmat hmmm
16:49 TimToady say () means say() in p5
16:49 TimToady say +()
16:49 PerlJam yeah, you need a +
16:50 TimToady what a dump language
16:50 TimToady *dumb
16:50 FROGGS *g*
16:50 TimToady what a dump language designer :)
16:50 TimToady when you need workarounds like that, it's like like baking the WAT right in
16:51 FROGGS damn, and I bring all these dumplings back into lexical blocks >.<
16:51 PerlJam It's a good thing we don't have that language designer anymore then! :)
16:51 TimToady r: say so True;
16:51 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«True␤»
16:52 sqirrel_ joined #perl6
16:52 FROGGS ohh noes! a sqirrel_!!
16:52 * FROGGS hides
16:52 TimToady you're in trouble now
16:53 TimToady heh, he really did hide
16:53 [Coke] pmurias++ making progress!
16:57 [Coke] r: say .WHAT, so True, my $friend;
16:57 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«NilTrue(Any)␤»
16:58 molaf joined #perl6
17:02 rurban_ how did you workaround the t nci sig removal in Zavolaj? I'm just catching up with the destruction done 2011
17:02 [Coke] do we need "fc" in perl 6?
17:03 TimToady [Coke]: what would you propose to replace it with?
17:04 jnthn o/
17:04 jnthn rurban_: We stopped using Parrot's NCI. :)
17:04 rurban_ And of course I'll bring back in t - cstrings for nci. Ah I remember, you switched to dyncall
17:05 rurban_ Lobsinger was really insane, I understand better now, thanks
17:05 jnthn I'm not sure calling folks insane helps much, but... :P
17:06 TimToady [Coke]: .oO("This poem was not written by Homer, but by another blind eighth-century poet of the same name.")
17:06 rurban_ If the actions were insane I prefer to call it like that
17:07 lizmat oo( insanity is in the eye of the beholder )
17:07 pmurias rurban_: you are reviving parrot?
17:07 jnthn TimToady: Yes, a value has to be decontainerized to type check it. If it happens to hit a multi-dispatch, it'll happen there. If it gets passed along to another thing that needs to type check it, same. say probably becomes $*OUT.say, which calls .print, and so on. It's easy for 'em to add up. And with Scalar it's really just a pointer dereference. With Proxy, yeah, it gets noticable.
17:07 TimToady "Smile when you say that." --The Virginian
17:08 jnthn TimToady: I'm not immediately sure what to do about it *in general*. I mean, if you're gonna do a typecheck you need the value...
17:08 jnthn TimToady: I'm sure specific paths can be improved.
17:08 TimToady jnthn: yes, I was later recalling that you'd mentioned something about FETCH being pessimal compared to the normal case
17:09 TimToady which seems rightish
17:09 rurban_ pmurias: Yes. Undo most of damage I see
17:11 jnthn TimToady: Yeah. While I'd expect various FETCH calls, the number we saw did seem a bit excessive, though. :)
17:11 jnthn TimToady: I can probably guess some of the reasons... :)
17:11 pmurias rurban_: don't you have your own p2 vm?
17:11 fhelmberger_ joined #perl6
17:11 jnthn TimToady: decont doesn't show up as a hotpath though, in any profiles I've seen.
17:12 rurban_ pmurias: As I see no way forward with moarvm for scalable threading, jit and compat pbc
17:13 pmurias what's blocking moarvm on jit?
17:13 rurban_ pmurias: yes, I have. But I have to think about the type system, matchers, macros and more for a while
17:14 jnthn rurban_: Uh, the MoarVM bytecode compat policy is at least as strong as the Parrot one. We use bytecode for NQP stage0, vs PIR on Parrot.
17:15 rurban_ Really? I thought you ditched the arch-compat (endianness) in the bytecode
17:15 jnthn Oh, *that* kinda compat
17:16 jnthn Well, the difference is just that we spec one endianness as the wire format and will transform on first use.
17:16 TimToady or on install
17:16 panchiniak joined #perl6
17:16 jnthn We could of course do the other thing too...
17:16 TimToady worst case is you keep two stage0's to distrib
17:17 jnthn It's really not a difficult problem.
17:17 jnthn It's a simple matter of programming that it's blindingly obvious falls below various other things at the moment.
17:17 rurban_ I see. little-endian on all, and only big-endian needs to do some transforms
17:17 TimToady and the Internet picked the opposite convention, is all :)
17:18 jnthn I encounter a lot more LE machines than BE ones ;)
17:18 rurban_ The parrot bytecode policy was really only a people problem. So beware :)
17:20 TimToady .oO(Now if only people problems were only a people problem, we'd be getting somewhere...)
17:20 benabik LE machines have to do all the conversions on network.  Why not make the BE machines do work when reading from disk.  :-D
17:21 xfix Why not ME to be fair than? Instead of something like 1234 or 3412, why not 1324?
17:21 TimToady I think that's one compromise we can all agree not to agree on.
17:21 rurban_ BE machines are usually the small ones (mips, arm)
17:22 tadzik heh, ironic :)
17:22 rurban_ But not much used so far, and the dont have enough memory for perl6 besides java
17:22 tadzik you'd think they're compensating for something
17:22 TimToady eggs that come the wrong end from the egg factory?
17:22 benabik ARM's in pretty big machines these days.
17:23 xfix PDP-11 uses 2143. I think this is reasonable.
17:23 PerlJam aren't some ARMs endian-switchable?
17:24 xfix Yes
17:26 xfix Parsing bytecode format is not that hard, no matter what endianness it uses. Switching endian is reasonable (rotate bytes), and it doesn't have to be done after parsing.
17:27 FROGGS joined #perl6
17:28 xfix Also, ARM being small? These days, phones have lots of RAM.
17:28 xfix Besides, people even make ARM servers.
17:29 FROGGS I totally should get my hands on an arm server
17:30 xfix It's used everywhere, except for desktops and servers.
17:30 xfix And both desktops and servers using ARM exist.
17:30 xfix ARM is not something that can be ignored.
17:34 rurban_ but most big ARMs nowadays can do both ways, BE and LE
17:42 bluescreen10 joined #perl6
17:45 pmurias rurban_: is there anything in moarvm's design you think will block it from having a jit?
17:47 rurban_ haven't looked yet, but most likely none. jit's are pretty easy. what you cannot jit just do c-like call.
17:48 rurban_ unroll all ops in memory and only optimize the fast cases
17:49 rurban_ I'll bring back the parrot jit also soon
17:49 rurban_ moarvm got too fast lately :)
17:51 pmurias so your main problem with moarvm is the threading?
17:52 benabik joined #perl6
17:58 hoverboard joined #perl6
18:01 [Coke] TimToady: fc isn't specced, I'm sking if we should add it.
18:01 sorear joined #perl6
18:03 [Coke] p6: say "ååÅrgle∫argle".fc
18:03 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«No such method 'fc' for invocant of type 'Str'␤  in block  at /tmp/tmpfile:1␤␤»
18:03 camelia ..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method fc in type Str␤  at /tmp/tmpfile line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤  at…»
18:03 bluescreen100 joined #perl6
18:03 TimToady [Coke]: is specced in S32-setting-library/Str.pod
18:04 [Coke] TimToady: well, it helps if you look in the right S32 pod file, I find!
18:04 [Coke] (I had switched to container at some point.)
18:04 [Coke] ok, well, there's some LHF, mebbe, that's it nYI.
18:04 [Coke] TimToady++
18:08 masak FROGGS: two reasons for prefix:<++> *not* being an lvalue (that I can think of): (a) performance, (b) foolish consistency with postfix:<++>
18:09 masak FROGGS: the reason I brought this up is: today I was teaching Java, and showing that of course you cannot do ++(++x) in Java. and then I said "but here, look, it works in a more flexible language such as Perl 6..."
18:09 masak "...oh :/"
18:09 TimToady seems to me it would be faster *not* to decont ++$a
18:10 masak FROGGS: shoulda tried it in Niecza :)
18:10 jnthn I don't really think the consistency is foolish here
18:10 jnthn But yeah, it'd be faster not to.
18:10 jnthn By a miniscule amount.
18:11 TimToady the foolish inconsistency is with $a += 1
18:12 * [Coke] wonders how much of his time on perl6 is spent saying "Why not X" "but we already X" "Oh". :)
18:12 TimToady grep is your friend
18:16 * TimToady wonders how difficult it would be to get ucd2c.pl to also do ucd2p6
18:16 Alina-malina joined #perl6
18:17 TimToady then we could have .pm's for all the older versions of unicode, and only promise that the most recent is fastest
18:17 rindolf joined #perl6
18:19 TimToady otherwise we're pulling in 2.5MB for each version of Unicod
18:19 TimToady which is kinda like Unicode, but swims in the ocean
18:20 jercos just don't drop the bass
18:20 TimToady no, crank up the bass
18:20 jercos I believe the term is "reel in"
18:20 denisboyun joined #perl6
18:21 pdennis joined #perl6
18:21 TimToady you're thinking of Chicken Reel
18:21 jercos I certainly am now
18:21 TimToady :D
18:29 denis_boyun__ joined #perl6
18:52 Rotwang joined #perl6
19:03 TimToady hmm, is there any way to not decont the return value from a Block that corresponds to return-rw for a Routine?
19:04 TimToady r: { leave 42 }().say
19:04 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Undeclared routine:â�¤    leave used at line 1â�¤â�¤Â»
19:04 jnthn TimToady: Those don't decont, afaik
19:04 TimToady hmm, Z+= is telling me otherwise, but I'll keep whacking on it
19:04 TimToady could be something else
19:05 TimToady maybe list assignment
19:05 jnthn r: my $a = 42; say nqp::iscont(-> { $a }.())
19:05 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«1␤»
19:06 jnthn dinner &
19:06 treehug88 joined #perl6
19:08 [Sno] joined #perl6
19:15 vincent22 joined #perl6
19:18 Alina-malina joined #perl6
19:23 timotimo huh. i can't make -j4 install nqp any more :o
19:23 timotimo not sure if it's just a dependency problem with the -j4
19:24 timotimo will take a bit of time to figure that out
19:24 FROGGS timotimo: do you build all backends?
19:24 timotimo yes
19:24 timotimo it's doing jvm first at the moment
19:24 FROGGS is it broken for all of them, or only for a single one?
19:24 timotimo so i'll have to wait for it to reach moar with -j1 to see if it still works
19:24 timotimo only for moar; it fails to find ModuleLoader.moarvm
19:25 timotimo weird.
19:26 timotimo https://gist.github.com/timo/9670fcf6868861577e4c
19:26 timotimo 290607 16K -rw-r--r-- 1 timo timo 15K Feb 15 08:00 src/vm/moar/stage0/ModuleLoader.moarvm
19:26 timotimo shouldn't it find that?
19:29 timotimo it's trying only in ./
19:29 timotimo and then it immediately bails out
19:29 timotimo weird.
19:31 timotimo was there any changes to libpath recently?
19:32 FROGGS I've not seen any
19:32 timotimo can you reproduce my problem? are there .moarvm files in nqp's root that you can delete to make it b0rk?
19:41 roadrunner_ joined #perl6
19:41 timotimo oh, interesting
19:41 timotimo the first entry to lib_path is a null pointer, only the second one is actually the correct path to the stage0
19:44 timotimo it gets set correctly in the main at least ...
19:47 dalek roast: 5f9f92c | larry++ | S03-metaops/ (2 files):
19:47 dalek roast: test that Zop= and Xop= work
19:47 dalek roast: review: https://github.com/perl6/roast/commit/5f9f92cbee
19:48 dalek rakudo/nom: 6247a8c | larry++ | src/core/metaops.pm:
19:48 dalek rakudo/nom: fix Zop=
19:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6247a8cd1d
19:48 FROGGS timotimo: even when I delete all nqp/*.moarvm, it does not break
19:49 timotimo strange.
19:49 TimToady r: my @a = 1,2,3; @a Z+= 2,4,6; say @a
19:49 camelia rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«1 2 3␤»
19:52 timotimo i don't understand how the null byte gets prepended to the libpath list
19:52 lizmat $ perl6 -e 'my @a = 1,2,3; @a Z+= 2,4,6; say @a'
19:52 lizmat 3 6 9
19:53 FROGGS the last element should be NULL
19:53 lizmat TimToady++
19:53 water joined #perl6
19:54 timotimo (gdb) print tc->instance->lib_path
19:54 timotimo $4 = {0x0, 0x7fffffffe0c2 "src/vm/moar/stage0", 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
19:54 lizmat_ joined #perl6
19:54 Alina-malina joined #perl6
19:55 FROGGS :/
19:58 [Coke] lizmat: hio!
19:59 lizmat [Coke] o/
20:03 timotimo the watchpoint is kind of taking a while
20:04 tgt joined #perl6
20:05 dalek joined #perl6
20:07 masak wow, I hadn't realized Perl 6 ranks #5 on RC: http://rosettacode.org/wiki/Rosetta_Code/Rank_languages_by_popularity
20:07 masak TimToady++ others++
20:08 TimToady grondilu++ in particular
20:09 TimToady shaped arrays and gui support will give us a lot more :)
20:09 timotimo oh yes
20:09 FROGGS libSDL2 \o/
20:09 FROGGS (and Qt for timotimo)
20:10 timotimo i'd love that, but i wouldn't count on it.
20:11 FROGGS yeah, I have no time either
20:11 FROGGS ETOOMANYSTUFFTODOALREADY
20:12 Alina-malina joined #perl6
20:14 raiph joined #perl6
20:15 * masak finds http://rosettacode.org/wiki/Twelve_statements#Perl_6 and laughs
20:15 masak extra funny that we declare (and fill up) the @ugly array, but then don't use it for anything :P
20:16 timotimo oh, those tests are pretty
20:16 goldliz joined #perl6
20:17 pnu joined #perl6
20:18 timotimo actually
20:19 timotimo setting a watchpoint to the location of lib_path makes gdb unkillable for some reason
20:20 jnthn The docs clearly say that's an invincibilty potion :P
20:21 yoleaux joined #perl6
20:25 timotimo this debugging is going nowhere
20:25 timotimo i don't really see anything in the code where the change to the lib_path may happen
20:26 timotimo and trying to watchpoint it or something ... not going to help :|
20:26 arnsholt joined #perl6
20:26 jnthn timotimo: I think it's meant to stay the same beyond startup...
20:27 timotimo me, too
20:27 woolfy joined #perl6
20:27 kivutar joined #perl6
20:28 timotimo *somehow* the libpath ends up going somewhere else and i have no clue how
20:28 timotimo is something corrupting the memory? valgrind didn't show anything, but that doesn't have to mean anything here
20:29 masak oh wow, this is horrible: http://stackoverflow.com/questions/11695110/why-is-this-program-valid-i-was-trying-to-create-a-syntax-error :)
20:30 kurahaupo_mobile timotimo: the address for libpath isn't somehow in gdb's own address space is it?
20:30 timotimo that would be *very* weird; but it could explain the behavior of the unkillable gdb
20:31 LLamaRider joined #perl6
20:32 FROGGS masak: another thing, how would *you* parse this line? open FH '>', 'foo.bar'
20:32 jnthn masak: That's beautiful! :)
20:32 * timotimo is not a big fan of indirect method notation the way perl5 has it
20:32 FROGGS v5 did: open(FH('>', 'foo.bar')) ó.ò
20:34 FROGGS and well, I parse it now that way too :/
20:35 masak FROGGS: argh
20:36 kurahaupo_mobile oh yay, the adjacency operator rears its extremely ugly head again
20:36 FROGGS masak: and it is kinda painful to implement these bareword filehandle "properly"
20:38 masak FROGGS: I can imagine.
20:40 timotimo "No more reverse-execution history." :(
20:40 masak someone might want to write an excellent answer to http://perlmonks.org/?node_id=1077103
20:48 jnthn timotimo: What're you trying to debug, ooc?
20:49 timotimo i can't build nqp any more, because it's not finding the ModuleLoader.moarvm, as it's not looking at the stage0 dir, because the lib_path array ends up having the stage0 path in its element 1, element 0 being a null pointer, so it doesn't even look there
20:50 jnthn wtf...
20:50 jnthn Since when?
20:50 timotimo haven't tried building on my desktop for a while now.
20:53 timotimo aaw man :|
20:54 timotimo i added a couple of 0s to the end of the instruction limit and it didn't help much
20:55 dalek rakudo/nom: 44a4661 | larry++ | src/core/LoL.pm:
20:55 dalek rakudo/nom: fix bare Z to match cleaner Zop algo
20:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/44a4661e88
21:01 timotimo oh great
21:02 timotimo --optimize=0 "fixed" it
21:03 timotimo this is a little bit worrying
21:17 dayangkun joined #perl6
21:20 klapperl joined #perl6
21:23 virtualsue joined #perl6
21:27 wooden_ joined #perl6
21:28 wooden_ joined #perl6
21:28 timotimo my gcc is too old to have address sanitization
21:29 [Sno] joined #perl6
21:41 dmol joined #perl6
21:47 timotimo now i'm trying on my laptop, but i'ven't got any output from asan :\
21:56 rylinaux joined #perl6
22:13 LLamaRider joined #perl6
22:15 jnthn sleep...and hopefully tuits tomorrow evening :) &
22:16 FROGGS sleep well
22:17 timotimo good night jnthn! :)
22:28 kaare__ joined #perl6
22:34 treehug8_ joined #perl6
22:42 pippo left #perl6
23:01 cognominal joined #perl6
23:03 skids joined #perl6
23:09 tgt joined #perl6
23:39 BenGoldberg joined #perl6
23:49 bjz joined #perl6
23:59 tgt joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo