»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
timotimo | gnite #perl6 | 00:02 | |
00:07
stevan_ left
00:19
kivutar left
00:27
adabsurdum joined
00:38
__thou left
|
|||
TimToady | m: say 'A'.&uniprop-bool('Any') | 00:40 | |
camelia | rakudo-moar b6fed1: OUTPUT«True» | ||
TimToady | m: say 'A'.&uniprop-int('Any') | ||
camelia | rakudo-moar b6fed1: OUTPUT«1» | ||
TimToady | \o/ no more segv | ||
00:41
spider-mario left
00:42
adabsurdum left,
adabsurdum joined
|
|||
TimToady | FROGGS++ for a great deal of help solving the 32-bit issue | 00:43 | |
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» | ||
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» | ||
colomon | moar works on 32-bit machines now? | ||
TimToady | well, better than it did | ||
we spent most of the day running it down to a missing declaratoin in a .h file | |||
00:48
__thou joined
|
|||
TimToady | so of course C defaulted MVMint64 to int, which works fine on a 64-bit machine | 00:48 | |
on a 32-bit machine...not so much... | |||
my brother-in-law just wandered into the room and complained about the missing link to S15.html :) | 00:52 | ||
colomon | FROGGS++ TimToady++ | 00:53 | |
00:53
__thou left
|
|||
colomon wonders if he should be trying out moar on the Raspberry Pi | 00:53 | ||
01:04
stevan_ joined
|
|||
BenGoldberg | m: say Buf.new("«==»".encode("utf-8")).decode("latin-1") | 01:04 | |
camelia | rakudo-moar b6fed1: OUTPUT«Â«==»» | ||
JimmyZ | p: lazy my $s = time; | 01:08 | |
camelia | ( no output ) | ||
TimToady | BenGoldberg: that's what I ended up doing earlier | ||
though I perhaps had an unnecessary [] | 01:09 | ||
JimmyZ | p: lazy my $s = time; say time - $s; | ||
camelia | rakudo-parrot b6fed1: OUTPUT«0» | ||
JimmyZ | p: lazy my $s = time;sleep 2; say time - $s; | ||
TimToady | lazy has nothing to do with phases | ||
camelia | rakudo-parrot b6fed1: OUTPUT«2» | ||
TimToady | and it won't delay scalar evaluation | ||
there might be some spec fossils that think so, though | 01:10 | ||
JimmyZ | I want the 'lazy statment', like scala language one | ||
:) | 01:11 | ||
I think it's useful | |||
TimToady | you want a thunk that calls itself on first FETCH | ||
so you don't have to use .() :) | |||
JimmyZ | yeah | 01:12 | |
TimToady | otoh, one {} and one () is not a lot of extra characters to type :) | ||
and pretty good documentation too | |||
and English words are so...imperialistic... :) | 01:13 | ||
01:14
woosley joined
|
|||
JimmyZ | so there are some code that can be add one { } in the core.setting that makes startup time faster? | 01:14 | |
TimToady | interesting idea | 01:15 | |
could even load in definitions from disk | |||
JimmyZ | p: class A { has $.a = one { time } }; A.new.a; | 01:16 | |
camelia | ( no output ) | ||
TimToady | well, you'd really want a thunk, not a { }, since you don't want to add an extra lexical scope | ||
JimmyZ | p: class A { has $.a = one { time } }; say A.new.a; | ||
camelia | rakudo-parrot b6fed1: OUTPUT«one(Block.new())» | ||
JimmyZ | how do I write it as a thunk? | 01:17 | |
p: class A { has $.a = one(time) }; say A.new.a; | |||
camelia | rakudo-parrot b6fed1: OUTPUT«one(1394068674)» | ||
BenGoldberg | Like think, but with a u | ||
TimToady | has initializers are automatically a thunk | ||
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))» | ||
BenGoldberg | Surely one(foo) (with parens) is the superposition? | ||
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; | ||
camelia | rakudo-parrot b6fed1: OUTPUT«===SORRY!=== Error while compiling /tmp/XKCmDsLX4GUndeclared routine: once used at line 1. Did you mean '&one'?» | ||
TimToady | not as a function, it's a statment prefix | ||
so omit parens | |||
JimmyZ | p: class A { has $.a = once time }; my $b = A.new.a; sleep 3 ; say A.new.a - $b; | ||
camelia | rakudo-parrot b6fed1: OUTPUT«0» | 01:20 | |
TimToady | yeah, like that | ||
BenGoldberg | . o O (one upon a time) | ||
s/one/once/ | |||
JimmyZ | so Add some once to the core.setting can make startup faster, I think | ||
TimToady | only if they are in a thunk that is not always called | 01:21 | |
JimmyZ | yeah | ||
TimToady | once doesn't wait until first FETCH | ||
if so the calculation would happen above when you do the -, not when you do the first .new | |||
BenGoldberg | It's a bit more like a singleton computation, innit? | ||
TimToady | but once might help in some spots | ||
it's the basis of state variable initialization | 01:22 | ||
it used to be called START, in fact | |||
BenGoldberg | p: for (1..5) { say once time; sleep 1 } | 01:23 | |
camelia | rakudo-parrot b6fed1: OUTPUT«13940689851394068985139406898513940689851394068985» | ||
TimToady | we un-uppercased it because it is not called at a funny time, as phasers are | ||
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:1use of uninitialized value of type Any in numeric context in block at /tmp/26fDVSWb5V:10» | ||
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» | ||
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» | ||
JimmyZ | hmm, I think start() can make $!a get the time | 01:31 | |
TimToady | r: my $x = Proxy.new: FETCH => { once say "HERE" } | 01:34 | |
camelia | rakudo-jvm b6fed1: OUTPUT«(timeout)» | 01:35 | |
..rakudo-parrot b6fed1, rakudo-moar b6fed1: OUTPUT«HERE» | |||
TimToady | why is FETCH being called? | ||
or is it? | |||
r: my $x = Proxy.new: FETCH => { if 0 { once say "HERE" } } | 01:36 | ||
camelia | ( no output ) | ||
TimToady | r: my $x := Proxy.new: FETCH => { once say "HERE" } | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE» | ||
JimmyZ | TimToady: I see some code somethink like 'my &lastcall := -> { ... }', is it init at startup time? | ||
TimToady | r: my \x = Proxy.new: FETCH => { once say "HERE" } | 01:37 | |
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE» | ||
TimToady | why is FETCH being called?!? | ||
my always runs at run time | |||
but the ... is delayed by the closure | 01:38 | ||
so lastcall will not be available before that statement runs | |||
our is supposed to run at INIT time | |||
01:39
adabsurdum left,
kurahaupo__ joined
01:41
kurahaupo_mobile left
|
|||
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» | ||
TimToady | r: constant x = Proxy.new: FETCH => { once say "HERE" } | 01:42 | |
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERE» | ||
TimToady | n: constant x = Proxy.new: FETCH => { once say "HERE" } | 01:43 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Undeclared routine: 'once' used at line 1Unhandled 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_…» | ||
TimToady | n: constant x = Proxy.new: FETCH => { START say "HERE" } | ||
camelia | ( no output ) | ||
TimToady | n: constant x = Proxy.new: FETCH => { START say "HERE" }; say x | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«HERE(Nil)» | ||
TimToady | r: constant x = Proxy.new: FETCH => { START say "HERE" }; say x | ||
camelia | rakudo-moar b6fed1: OUTPUT«HEREHEREHERE===SORRY!===Cannot invoke null object» | ||
..rakudo-jvm b6fed1: OUTPUT«HEREHEREHERE===SORRY!===java.lang.NullPointerException» | |||
..rakudo-parrot b6fed1: OUTPUT«HEREHEREHERE===SORRY!===Could not find sub &START» | |||
TimToady | wow | 01:44 | |
r: constant x = Proxy.new: FETCH => { once say "HERE" }; say x | |||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERETrue» | ||
TimToady | r: constant x = Proxy.new: FETCH => { once say "HERE" }; sleep 3; say x | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«HERETrue» | ||
TimToady | r: constant x = Proxy.new: FETCH => { once say time }; say time; sleep 3; say x | 01:45 | |
camelia | rakudo-moar b6fed1: OUTPUT«13940703191394070319True» | ||
..rakudo-parrot b6fed1: OUTPUT«13940703111394070311True» | |||
..rakudo-jvm b6fed1: OUTPUT«13940703151394070315True» | |||
JimmyZ | p: once { my $time = time; PROCESS::<$TIME> := $time; }; say time ; sleep 3; say PROCESS::<$TIME>; # how do I make it working ? | ||
camelia | rakudo-parrot b6fed1: OUTPUT«13940703251394070325» | ||
TimToady | something is FETCHing prematurely in rakudo, perhaps trying to do a type check? | 01:46 | |
[Coke] | daily run still not done... | 01:53 | |
JimmyZ | lazy val t = System.currentTimeMillis; println(System.currentTimeMillis); Thread.sleep(1000); println(t); Thread.sleep(1000); println(t); | 01:54 | |
outputs: | |||
1394070745944 | |||
1394070746946 | |||
I still don't know how to make it working by rakudo | |||
TimToady | r: constant x = Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 3; say x; say "DONE" | 01:59 | |
camelia | rakudo-moar b6fed1: OUTPUT«HEREHEREHERESTARTHEREHEREHEREHEREHEREHEREHERETrueDONE» | ||
..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«HEREHEREHERESTARTHEREHEREHEREHEREHEREHERETrueDONE» | |||
TimToady | gee, how many times can we call something to get one value? | ||
r: my \x = Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 3; say x; say "DONE" | 02:00 | ||
camelia | rakudo-moar b6fed1: OUTPUT«STARTHEREHEREHEREHEREHEREHEREHERETrueDONE» | ||
..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«STARTHEREHEREHEREHEREHEREHERETrueDONE» | |||
TimToady | I'd think it should say "HERE" once, not six or seven times... | 02:01 | |
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`? | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«STARTHERE in block at /tmp/tmpfile:1» | ||
02:03
pdcawley left
|
|||
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» | ||
..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» | |||
..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» | |||
TimToady | actually, all those HEREs are coming after the sleep 3 | 02:07 | |
r: my \x = Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 1; say x + 1; say "DONE" | 02:08 | ||
camelia | rakudo-moar b6fed1: OUTPUT«STARTHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHERE2DONE» | 02:09 | |
..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«STARTHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHERE2DONE» | |||
TimToady | there's a riot | ||
how can x+1 possibly be fetching 29 times?!?!?!?! | |||
is it refetching the value on every attempt to bind? | 02:10 | ||
I think I see a way to speed up rakudo... | |||
JimmyZ | :P | 02:11 | |
JimmyZ maybe see a way to speed up rakudo startup | 02:12 | ||
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» | ||
..rakudo-parrot b6fed1: OUTPUT«(signal SEGV)1» | |||
jercos | erm. | ||
dalek | rl6-roast-data: 24d5427 | coke++ | / (4 files): today (automated commit) |
02:15 | |
02:16
xenoterracide joined
|
|||
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«HERESTART2DONE» | ||
TimToady | that just does it once, but before START, huh | 02:18 | |
r: my $x := Proxy.new: FETCH => { say "HERE" }; say "START"; sleep 1; say $x + 1; say "DONE" | |||
camelia | rakudo-moar b6fed1: OUTPUT«STARTHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHERE2DONE» | ||
..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«STARTHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHEREHERE2DONE» | |||
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" | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«STARTHEREMIDDLE2DONE» | ||
02:21
grondilu left
02:22
pdcawley joined,
FROGGS_ joined
|
|||
TimToady suspects Proxy FETCHes are pessimized over normal ones... | 02:22 | ||
02:25
Sqirrel left
02:26
FROGGS left,
woosley left,
woosley joined
02:27
xenoterracide_ joined,
xenoterracide left
02:29
klapperl joined
02:32
klapperl_ left
02:33
xenoterracide_ left
02:41
xenoterracide_ joined
02:43
Sqirrel joined
02:55
xinming left
03:02
adabsurdum joined,
adabsurdum is now known as hoverboard,
hoverboard left,
hoverboard joined
03:04
hoverboard is now known as adabsurdum
03:12
unclefester2 joined
|
|||
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
03:17
Pleiades` left,
Colby` joined,
Colby` is now known as Pleiades`
03:18
unclefester2 left
04:00
jnap left
04:21
fridim__ left
04:30
jnap joined
04:31
pdcawley left
04:34
jnap left
04:35
pdcawley joined
04:45
xenoterracide_ is now known as xenoterracide
04:57
woosley1 joined
04:59
woosley left
05:17
adabsurdum left
05:25
[Sno] left
05:27
adabsurdum joined,
adabsurdum is now known as Guest24938
05:30
Guest24938 left,
Guest24938 joined,
Guest24938 is now known as hoverboard
05:31
jnap joined
|
|||
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«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> "; $a ~~ /<digit>\,/; say $a.split(/\,/)⏏' # expected output: 2 3 expe…» | ||
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Confused at /tmp/tmpfile line 1:------> "; $a ~~ /<digit>\,/; say $a.split(/\,/)⏏' # expected output: 2 3Parse failed» | |||
lue | rn: my $a = "1,2,3"; $a ~~ /<digit>\,/; say $a.split(/\,/) # expected output: 2 3 | ||
05:35
jnap left
|
|||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1, niecza v24-109-g48a8de3: OUTPUT«1 2 3» | 05:35 | |
lue | Oh, I misread. I thought split had an implicit :p, but rather it's a :c | 05:36 | |
Still doesn't change that I should be getting "2 3" out of that though. | 05:38 | ||
TimToady | where did you get that factoid? | 05:39 | |
I don't recognize it | |||
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 | ||
meaning each application starts scanning where the previous left off | 05:41 | ||
I don't think it means it pays attention to previous matchew | 05:42 | ||
*es | |||
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. | ||
TimToady | I think implicit there meant internal | ||
05:45
kurahaupo_mobile joined,
kurahaupo__ left
|
|||
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:46 | |
BenGoldberg | Is there any particular defined behavior for 'sort', if the sort function passed to it gives unstable results? | 05:47 | |
TimToady | well, hopefully it won't coredump, but we probably can't guarantee anything beyond that | 05:48 | |
BenGoldberg | Ok. | ||
So the fact that with this: | 05:49 | ||
rn: print sort { Order((state $ = 1) *= -1) }, 'JPuesrtl ahnaoctkheerr, '.comb | |||
camelia | niecza v24-109-g48a8de3: OUTPUT«JPuesrtl ahnaoctkheerr, » | ||
..rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«Just another Perl hacker,» | |||
BenGoldberg | niecza simply returns its input unmodified, and without emitting a warning, is ok? | ||
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 :) | ||
TimToady | stealth flying butt monkeys | 05:52 | |
BenGoldberg | r: say "Flying \c[MONKEY]" | 05:54 | |
camelia | rakudo-jvm b6fed1: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnrecognized character name MONKEYat /tmp/tmpfile:1------> say "Flying \c[MONKEY⏏]"» | ||
..rakudo-parrot b6fed1, rakudo-moar b6fed1: OUTPUT«Flying 🐒» | |||
BenGoldberg | nr: my $i = 0; my $x := Proxy.new: FETCH => { print "(",++$i,")"; '!' }; print "<"; print $x ~ '?'; say ">" | 05:59 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«(1)<(2)(3)!?>» | 06:00 | |
..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«<(1)(2)(3)(4)!?>» | |||
..rakudo-moar b6fed1: OUTPUT«<(1)(2)(3)(4)(5)(6)(7)!?>» | |||
BenGoldberg | nr: my $i = 0; my $x := Proxy.new: FETCH => { print "(",++$i,")"; 42 }; print "<"; print $x + 11; say ">" | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«(1)<(2)53>» | ||
..rakudo-parrot b6fed1, rakudo-jvm b6fed1: OUTPUT«<(1)(2)(3)(4)53>» | |||
..rakudo-moar b6fed1: OUTPUT«<(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)53>» | |||
BenGoldberg | nr: my $i = 0; my $x := Proxy.new: FETCH => { print "(",++$i,")"; 42 }; print "<"; print $x; say ">" | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«<(1)(2)42>» | ||
..niecza v24-109-g48a8de3: OUTPUT«(1)<(2)(3)(4)(5)(6)42>» | |||
BenGoldberg | Most peculiar. | 06:01 | |
06:06
BenGoldberg left
06:13
dayangkun left
06:27
dayangkun joined
06:29
[Sno] joined
06:30
pdcawley left
06:31
bjz left,
jnap joined
06:32
pdcawley joined
06:35
jnap left
06:39
kaleem joined
06:56
denis_boyun joined
06:58
FROGGS_ left
07:07
dmol joined
07:22
FROGGS joined
07:27
sqirrel_ joined
07:32
jnap joined
07:36
hoverboard left,
jnap left
07:49
darutoko joined
07:55
dmol left
07:56
dmol joined
08:02
sqirrel_ left
08:10
Rotwang joined,
zakharyas joined
08:13
dmol left
08:17
dmol joined
08:25
Rotwang left
08:30
arnsholt left
08:31
colomon left
08:32
kbaker joined
08:49
denis_boyun left
08:52
kbaker left
08:54
fhelmberger joined
|
|||
lizmat reads p6weekly.wordpress.com/2014/03/03/c...9-of-2014/ and wonders whether flatmap shouldn't be specced | 08:54 | ||
08:59
dakkar joined
09:04
kbaker joined
09:11
pippo joined
09:12
kbaker left
09:16
virtualsue joined
|
|||
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
10:06
kbaker joined
10:24
rindolf joined
10:25
arnsholt joined
|
|||
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: www.google-melange.com/gsoc/homepag...e/gsoc2014 | 10:30 | |
moritz already signed up | |||
10:33
woosley1 left
10:38
spider-mario joined
|
|||
tadzik | signing up | 10:52 | |
10:54
arnsholt left
|
|||
tadzik | I filed some request | 11:00 | |
moritz | tadzik: please join #soc-help on irc.perl.org | 11:06 | |
11:11
arnsholt joined
11:37
itz__ joined
11:39
itz left
11:40
itz_ left,
itz_ joined
11:41
scumdog joined
11:44
bjz joined
11:54
kaleem left,
kaleem joined
11:55
colomon joined
12:03
brrt joined
|
|||
brrt | hi #perl5 | 12:03 | |
#perl6 | |||
such typo | |||
FROGGS | *g* | 12:05 | |
hi brrt | |||
brrt | hi Froggrs | ||
typo time again | |||
12:11
daniel-s_ left
12:12
daniel-s_ joined
12:42
arnsholt left
12:43
xinming left
|
|||
colomon | Froggers! | 12:45 | |
12:48
xinming joined
13:01
cognominal left,
cognominal joined
13:10
fhelmberger left
13:13
zakharyas left,
skids left
13:18
dmol left
13:23
zakharyas joined
13:25
telex left
13:26
telex joined
13:39
fhelmberger joined
|
|||
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 | |
… anybody got an idea on how to sort students? | |||
mind that the majority of students do not all take the exact same courses | |||
13:43
kaare__ left,
kaleem left
13:45
xinming left
|
|||
moritz | make a ranking for each course, and then for each student do an average of all the rankings | 13:45 | |
13:45
pecastro left
|
|||
moritz | (percentual rankings, that is) | 13:45 | |
13:45
xinming joined
|
|||
brrt | moritz - that is probably my solution, too | 13:50 | |
…. but it is not so obvious to defend | |||
(for a math-deficient person like myself, at least) | 13:51 | ||
moritz | well, there are two obvious other approaches | 13:52 | |
one is to give out points per course, and sum them up | |||
brrt | in the netherlands, that is actually the 'default' approach | ||
moritz | but that just gives the most laborous students the advantage, not the actually best ones | ||
brrt | exactly | 13:53 | |
and there is another problem | |||
the whole point of the percentile rankings was that marks / grades differ too much per course / professor | |||
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
virtualsue left
|
|||
brrt | one solution i used on another ranking problem is rank scoring (i.e. - mario kart) | 13:55 | |
13:55
pecastro joined
|
|||
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 | |
but the main motivation of that solution was that the 'competitions' in question where uncomparable | |||
i have another solution of which i was fond until late yesterday evening | 13:58 | ||
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 | ||
…. wait there is a problem with that | |||
moritz | I also thought of some kind of topological ordering | 14:00 | |
but I'm afraid it usually won't exist | |||
brrt | … yeah, thats basically my point too | ||
:-) | |||
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 | ||
but what about 'incomparable' students? | |||
moritz | but only if the two students actually had overlapping courses | ||
brrt | right | ||
so you'd first have to divide them into 'comparable' set | 14:02 | ||
s | |||
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 | ||
such a partition won't exist, usually | 14:03 | ||
brrt | ….. usually or generally? | 14:04 | |
14:05
guru joined,
guru is now known as Guest69755
|
|||
brrt | sorted by percentile average seems the best approach to me | 14:05 | |
14:05
Guest69755 is now known as ajr_
|
|||
moritz | both, probably | 14:07 | |
[Coke] | FROGGS: already signed up. | ||
brrt | there is another problem though | 14:10 | |
what about stragglers - like myself :-) | |||
i have relatively high grades but i will receive my degree years after most students of my yeargroup | |||
moritz | you'll collect other experiences, which you can boast with and use for getting hired | 14:11 | |
du happen to want to learn German, and program Perl and/or Python (and a bit of JS) in Bavaria? | 14:12 | ||
s/du/do/ | |||
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 | ||
haha that is true | |||
timotimo | moritz is hiring? :) | 14:13 | |
moritz | timotimo: well, my employer is hiring :-) | ||
brrt | well……. actually….. i'd like too, but i'm .. ahum… being approached at multiple sites to go work with / for them / study further | ||
moritz | brrt: I know that situation, no hard feelings :-) | ||
brrt | which i guess is natural considering the current developer climate but makes it very hard for me to choose anything | 14:14 | |
but yeah, otherwise it'd sound pretty good :-) | |||
moritz | (the offer goes to any perl programmer, not just brrt; sadly we're doing perl 5.14, not perl 6) | 14:16 | |
14:18
jnap joined
|
|||
JimmyZ | :) | 14:19 | |
14:38
dmol joined
14:39
xinming left
14:41
brrt left,
brrt joined
14:45
LLamaRider joined
|
|||
[Coke] | wait, I can get a job programming in perl!? | 14:51 | |
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
zakharyas left
|
|||
slavik1 | seriously ... we do | 14:52 | |
jnap | not so bad, lots of places still 5.10 or earlier | ||
14:53
zakharyas joined
|
|||
jnap | when I left shutterstock most of their money making code was 5.8.8 on mod_perl1 | 14:53 | |
14:53
zakharyas left,
zakharyas joined
14:55
virtualsue joined
14:56
pmurias joined
|
|||
timotimo | to be fair, i don't know anything about the 5 series :P | 14:58 | |
JimmyZ almost too | 14:59 | ||
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? | ||
JimmyZ never heard it | |||
LLamaRider same | 15:01 | ||
FROGGS | perhaps Coke made a Joke? | 15:02 | |
JimmyZ | Jerl 6? | ||
rjbs | expected for Jhristmas. | ||
brother | code.google.com/p/jerl/ | 15:03 | |
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 | ||
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 | ||
just….. why | |||
timotimo | well, it had to be *some* collation | 15:06 | |
brrt | :'-( | ||
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 | ||
pmurias | what is the performance of nqp-moar compared to nqp-parrot? | ||
FROGGS | well, there is latin1_general, no? | ||
brother | brrt: the main mysql founders was swedish... | 15:07 | |
FROGGS | pmurias: nqp-moar is faster | ||
timotimo | t.h8.lv/p6bench/2014-02-22-nqp.html | ||
brrt | pmurias - probably benchmark-specific, but i've heard good things about nqp-moar | ||
that is not a reason | |||
brother | |||
:-D | |||
FROGGS | pmurias: twice as fast as parrot in most cases, but it is slower when it comes to string operations | ||
brrt | i'm dutch, i'm certainly not forcing everybody … wait dutch is just latin1 | ||
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 | ||
FROGGS | timotimo: ah, cool | ||
timotimo | t.h8.lv/p6bench/2014-02-25-flatten_fastpath.html - rakudo instead of nqp, but still interesting maybe? | ||
FROGGS | pmurias: when you have time, can you outline the state of rakudo-js? | 15:09 | |
pmurias | FROGGS: just started on making it use the nqp build system so that it can be migrated to the nqp repo | 15:10 | |
s/started/started working/ | |||
FROGGS | pmurias: that would be awesome! | ||
timotimo | yay! :) | ||
FROGGS | (and it would mean that others can fix things too) | ||
++pmurias | 15:11 | ||
15:23
__thou joined
|
|||
pmurias | what's the right format for a dalek commit hook? | 15:33 | |
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? | ||
dalek | p-js: 94dc21b | (Pawel Murias)++ | / (3 files): Run a settingless 'nqp::say("Hello World")' with a system installed nqp-p. |
||
p-js: cb4dfc5 | (Pawel Murias)++ | gen/js/stage1/ (2 files): Add .gitignore to create required dirs. |
|||
pmurias | moritz: it works ;) | ||
moritz | pmurias: which version did you chose? | 15:35 | |
pmurias: please update the file in Mu :-) | |||
pmurias | moritz: I used the default form one | ||
masak | aloha, #perl6 | 15:51 | |
LLamaRider | o/ masak | ||
15:51
treehug88 joined
|
|||
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» | ||
..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» | |||
..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…» | |||
..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» | |||
masak | perl6: my $a = 0; ++(++$a) | 15:52 | |
camelia | ( no output ) | ||
..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» | |||
..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» | |||
..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» | |||
masak | niecza: my $a = 0; ++(++$a); say $a | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«2» | ||
masak | who's "right", Niecza or Rakudo? | ||
FROGGS | I was to say Niecza | 15:53 | |
masak | is it spec'd at all whether prefix:<++> yields an lvalue? | ||
FROGGS | but now... | ||
pmurias | if I want to use a stage0 nqp-p to build my stage1 nqp-js where should I build the nqp.pbc? | 15:54 | |
as the parrot stage0 nqp executable might be only in pir form if parrot is not being built | 15:55 | ||
15:55
kaleem joined
|
|||
FROGGS | masak: I can't find anything about lvalueness of that | 15:58 | |
15:59
jnap left
|
|||
pmurias | masak: is there a reason why it shouldn't be lvalue? | 15:59 | |
FROGGS | pmurias: is !$foo and lvalue? | 16:00 | |
lizmat | FROGGS: don't you mean $!foo ? | 16:02 | |
cause !$foo certainly is not an lvalue in my book :-) | |||
fwiw: $ perl -e '++(++$a)' | 16:03 | ||
Can't modify preincrement (++) in preincrement (++) | |||
16:06
guru joined,
ajr_ left,
guru is now known as Guest66772,
Guest66772 is now known as ajr_
16:08
benabik joined
16:11
grondilu joined
|
|||
grondilu | r: class A { has $x; multi method new(:$y) { self.new: :x(-$y) } }; say A.new(:y(1)); | 16:12 | |
16:12
jnap joined
|
|||
camelia | rakudo-jvm b6fed1: OUTPUT«use of uninitialized value of type Any in numeric contextuse of uninitialized value of type Any in numeric contextuse of uninitialized value of type Any in numeric contextuse of uninitialized value of type Any in numeric contextuse of uninitiali…» | 16:12 | |
..rakudo-parrot b6fed1: OUTPUT«(timeout)use of uninitialized value of type Any in numeric context in method new at /tmp/tmpfile:1use of uninitialized value of type Any in numeric context in method new at /tmp/tmpfile:1use of uninitialized value of type Any in numeric con…» | |||
..rakudo-moar b6fed1: OUTPUT«(timeout)use of uninitialized value of type Any in numeric contextuse of uninitialized value of type Any in numeric contextuse of uninitialized value of type Any in numeric contextuse of uninitialized value of type Any in numeric contextuse of …» | |||
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(...)» | ||
FROGGS | lizmat: no, it was just another example of the case of ++$foo | 16:14 | |
16:14
xragnar is now known as Guest53785,
xragnar_ joined,
Guest53785 left,
xragnar_ is now known as xragnar
16:19
jnap left
16:22
jnap joined,
isacloud_ is now known as isacloud
|
|||
rindolf | Hi all. | 16:24 | |
pastie.org/8884041 - perl Configure.pl gives me this - I already did git clean -dxf - why am I getting this? | 16:25 | ||
16:27
[Sno] left
|
|||
dalek | p-js: 2edd966 | (Pawel Murias)++ | / (26 files): Copy over the runtime. Add some instructions to the README. |
16:30 | |
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 | ||
FROGGS: perl-5.18.2-4.mga5 | |||
timotimo | git clean will not clean the checked out "submodules" | 16:33 | |
actually not submodules | |||
FROGGS | rindolf: can you check: perl-5.18.2-4.mga5 -E 'say $^X' | ||
rindolf: and perhaps also perl-5.18.2-4.mga5 -V | |||
rindolf | FROGGS: that's the package name. | ||
FROGGS: it's not the executable. | |||
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 | ||
rindolf | timotimo: ah, OK. | ||
timotimo | worst case, remove the parrot folder completely, to force a clean reinstall | ||
brrt off, thanks moritz for helpful advice :-) | 16:38 | ||
16:38
brrt left
16:39
btyler joined,
zakharyas left
16:40
skids joined
16:44
molaf left
|
|||
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
|
|||
TimToady | so how is ++$a different from $a += 1 ? | 16:46 | |
$a++ has to clone the old value, of course, so need not apply | 16:48 | ||
lizmat | fwiw: $ perl -E '($a += 1) += 2; say $a' | ||
3 | |||
more accurately: $ perl -E 'my $a=1; say ($a += 2) += 3' | 16:49 | ||
Can't modify say in addition (+) at -e line 1, at EOF | |||
hmmm | |||
TimToady | say () means say() in p5 | ||
say +() | |||
PerlJam | yeah, you need a + | ||
TimToady | what a dump language | 16:50 | |
*dumb | |||
FROGGS | *g* | ||
TimToady | what a dump language designer :) | ||
when you need workarounds like that, it's like like baking the WAT right in | |||
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! :) | ||
TimToady | r: say so True; | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«True» | ||
16:52
sqirrel_ joined
|
|||
FROGGS | ohh noes! a sqirrel_!! | 16:52 | |
FROGGS hides | |||
16:52
FROGGS left
|
|||
TimToady | you're in trouble now | 16:52 | |
heh, he really did hide | 16:53 | ||
[Coke] | pmurias++ making progress! | ||
16:56
kaleem left
|
|||
[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
|
|||
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? | ||
TimToady | [Coke]: what would you propose to replace it with? | 17:03 | |
jnthn | o/ | 17:04 | |
rurban_: We stopped using Parrot's NCI. :) | |||
rurban_ | And of course I'll bring back in t - cstrings for nci. Ah I remember, you switched to dyncall | ||
Lobsinger was really insane, I understand better now, thanks | 17:05 | ||
jnthn | I'm not sure calling folks insane helps much, but... :P | ||
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 | ||
lizmat | oo( insanity is in the eye of the beholder ) | 17:07 | |
pmurias | rurban_: you are reviving parrot? | ||
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. | ||
TimToady | "Smile when you say that." --The Virginian | ||
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 | |
TimToady: I'm sure specific paths can be improved. | |||
TimToady | jnthn: yes, I was later recalling that you'd mentioned something about FETCH being pessimal compared to the normal case | ||
which seems rightish | 17:09 | ||
rurban_ | pmurias: Yes. Undo most of damage I see | 17:10 | |
jnthn | TimToady: Yeah. While I'd expect various FETCH calls, the number we saw did seem a bit excessive, though. :) | 17:11 | |
TimToady: I can probably guess some of the reasons... :) | |||
pmurias | rurban_: don't you have your own p2 vm? | ||
17:11
fhelmberger_ joined
|
|||
jnthn | TimToady: decont doesn't show up as a hotpath though, in any profiles I've seen. | 17:11 | |
rurban_ | pmurias: As I see no way forward with moarvm for scalable threading, jit and compat pbc | 17:12 | |
17:12
ajr_ left
|
|||
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
fhelmberger left
|
|||
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:14 | |
rurban_ | Really? I thought you ditched the arch-compat (endianness) in the bytecode | 17:15 | |
jnthn | Oh, *that* kinda compat | ||
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
|
|||
jnthn | We could of course do the other thing too... | 17:16 | |
TimToady | worst case is you keep two stage0's to distrib | ||
jnthn | It's really not a difficult problem. | 17:17 | |
It's a simple matter of programming that it's blindingly obvious falls below various other things at the moment. | |||
rurban_ | I see. little-endian on all, and only big-endian needs to do some transforms | ||
TimToady | and the Internet picked the opposite convention, is all :) | 17:18 | |
jnthn | I encounter a lot more LE machines than BE ones ;) | ||
rurban_ | The parrot bytecode policy was really only a people problem. So beware :) | ||
17:19
hoverboard left
|
|||
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 | ||
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. | ||
rurban_ | BE machines are usually the small ones (mips, arm) | ||
tadzik | heh, ironic :) | 17:22 | |
rurban_ | But not much used so far, and the dont have enough memory for perl6 besides java | ||
tadzik | you'd think they're compensating for something | ||
TimToady | eggs that come the wrong end from the egg factory? | ||
benabik | ARM's in pretty big machines these days. | ||
xfix | PDP-11 uses 2143. I think this is reasonable. | 17:23 | |
PerlJam | aren't some ARMs endian-switchable? | ||
xfix | Yes | 17:24 | |
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:26 | ||
17:27
FROGGS joined
|
|||
xfix | Also, ARM being small? These days, phones have lots of RAM. | 17:28 | |
Besides, people even make ARM servers. | |||
17:28
fhelmberger_ left
17:29
jnap left
|
|||
FROGGS | I totally should get my hands on an arm server | 17:29 | |
xfix | It's used everywhere, except for desktops and servers. | 17:30 | |
And both desktops and servers using ARM exist. | |||
ARM is not something that can be ignored. | |||
17:31
dmol left
17:34
benabik left
|
|||
rurban_ | but most big ARMs nowadays can do both ways, BE and LE | 17:34 | |
17:42
bluescreen10 joined
|
|||
pmurias | rurban_: is there anything in moarvm's design you think will block it from having a jit? | 17:45 | |
rurban_ | haven't looked yet, but most likely none. jit's are pretty easy. what you cannot jit just do c-like call. | 17:47 | |
unroll all ops in memory and only optimize the fast cases | 17:48 | ||
I'll bring back the parrot jit also soon | 17:49 | ||
moarvm got too fast lately :) | |||
pmurias | so your main problem with moarvm is the threading? | 17:51 | |
17:51
dakkar left
17:52
benabik joined
17:58
hoverboard joined
|
|||
[Coke] | TimToady: fc isn't specced, I'm sking if we should add it. | 18:01 | |
18:01
sorear joined
|
|||
[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» | ||
..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
|
|||
TimToady | [Coke]: is specced in S32-setting-library/Str.pod | 18:03 | |
[Coke] | TimToady: well, it helps if you look in the right S32 pod file, I find! | 18:04 | |
(I had switched to container at some point.) | |||
ok, well, there's some LHF, mebbe, that's it nYI. | |||
TimToady++ | |||
18:06
bluescreen10 left
|
|||
masak | FROGGS: two reasons for prefix:<++> *not* being an lvalue (that I can think of): (a) performance, (b) foolish consistency with postfix:<++> | 18:08 | |
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 | ||
"...oh :/" | |||
TimToady | seems to me it would be faster *not* to decont ++$a | ||
masak | FROGGS: shoulda tried it in Niecza :) | 18:10 | |
jnthn | I don't really think the consistency is foolish here | ||
But yeah, it'd be faster not to. | |||
By a miniscule amount. | |||
TimToady | the foolish inconsistency is with $a += 1 | 18:11 | |
[Coke] wonders how much of his time on perl6 is spent saying "Why not X" "but we already X" "Oh". :) | 18:12 | ||
18:12
Alina-malina left,
rindolf left
|
|||
TimToady | grep is your friend | 18:12 | |
18:14
sqirrel_ left
|
|||
TimToady wonders how difficult it would be to get ucd2c.pl to also do ucd2p6 | 18:16 | ||
18:17
Alina-malina joined
|
|||
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 | |
18:17
rindolf joined
|
|||
TimToady | otherwise we're pulling in 2.5MB for each version of Unicod | 18:19 | |
which is kinda like Unicode, but swims in the ocean | |||
jercos | just don't drop the bass | 18:20 | |
TimToady | no, crank up the bass | ||
jercos | I believe the term is "reel in" | ||
18:20
denisboyun joined
18:21
pdennis joined
|
|||
TimToady | you're thinking of Chicken Reel | 18:21 | |
jercos | I certainly am now | ||
TimToady | :D | ||
18:27
LLamaRider left
18:29
denis_boyun__ joined
18:30
denisboyun left
18:32
benabik left
18:41
bjz left
18:44
pmurias left
18:45
pdennis left
18:52
Rotwang joined,
kbaker left
18:59
darutoko left
19:02
treehug88 left
|
|||
TimToady | hmm, is there any way to not decont the return value from a Block that corresponds to return-rw for a Routine? | 19:03 | |
r: { leave 42 }().say | 19:04 | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared routine: leave used at line 1» | ||
jnthn | TimToady: Those don't decont, afaik | ||
TimToady | hmm, Z+= is telling me otherwise, but I'll keep whacking on it | ||
could be something else | |||
maybe list assignment | 19:05 | ||
jnthn | r: my $a = 42; say nqp::iscont(-> { $a }.()) | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«1» | ||
jnthn | dinner & | 19:06 | |
19:06
treehug88 joined
19:08
[Sno] joined
19:10
Alina-malina left
19:15
vincent22 joined
19:16
[Sno] left
19:18
Alina-malina joined
19:22
pecastro left
|
|||
timotimo | huh. i can't make -j4 install nqp any more :o | 19:23 | |
not sure if it's just a dependency problem with the -j4 | |||
will take a bit of time to figure that out | 19:24 | ||
FROGGS | timotimo: do you build all backends? | ||
timotimo | yes | ||
it's doing jvm first at the moment | |||
FROGGS | is it broken for all of them, or only for a single one? | ||
timotimo | so i'll have to wait for it to reach moar with -j1 to see if it still works | ||
only for moar; it fails to find ModuleLoader.moarvm | |||
weird. | 19:25 | ||
gist.github.com/timo/9670fcf6868861577e4c | 19:26 | ||
290607 16K -rw-r--r-- 1 timo timo 15K Feb 15 08:00 src/vm/moar/stage0/ModuleLoader.moarvm | |||
shouldn't it find that? | |||
it's trying only in ./ | 19:29 | ||
and then it immediately bails out | |||
weird. | |||
was there any changes to libpath recently? | 19:31 | ||
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:34
hoverboard is now known as lost,
lost is now known as hoverboard
19:41
roadrunner_ joined
|
|||
timotimo | oh, interesting | 19:41 | |
the first entry to lib_path is a null pointer, only the second one is actually the correct path to the stage0 | |||
19:43
roadrunner_ left
|
|||
timotimo | it gets set correctly in the main at least ... | 19:44 | |
dalek | ast: 5f9f92c | larry++ | S03-metaops/ (2 files): test that Zop= and Xop= work |
19:47 | |
kudo/nom: 6247a8c | larry++ | src/core/metaops.pm: fix Zop= |
19:48 | ||
FROGGS | timotimo: even when I delete all nqp/*.moarvm, it does not break | ||
timotimo | strange. | 19:49 | |
TimToady | r: my @a = 1,2,3; @a Z+= 2,4,6; say @a | ||
camelia | rakudo-parrot b6fed1, rakudo-jvm b6fed1, rakudo-moar b6fed1: OUTPUT«1 2 3» | ||
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' | ||
3 6 9 | |||
FROGGS | the last element should be NULL | 19:53 | |
lizmat | TimToady++ | ||
19:53
water joined
19:54
Alina-malina left
|
|||
timotimo | (gdb) print tc->instance->lib_path | 19:54 | |
$4 = {0x0, 0x7fffffffe0c2 "src/vm/moar/stage0", 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} | |||
19:54
lizmat_ joined,
Alina-malina joined
|
|||
FROGGS | :/ | 19:55 | |
19:57
hoverboard left,
water is now known as hoverboard,
Alina-malina left
19:58
lizmat_ is now known as lizmat
|
|||
[Coke] | lizmat: hio! | 19:59 | |
lizmat | [Coke] o/ | ||
timotimo | the watchpoint is kind of taking a while | 20:03 | |
20:03
virtualsue left
20:04
tgt joined
20:05
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
masak | wow, I hadn't realized Perl 6 ranks #5 on RC: rosettacode.org/wiki/Rosetta_Code/R...popularity | 20:07 | |
TimToady++ others++ | |||
TimToady | grondilu++ in particular | 20:08 | |
shaped arrays and gui support will give us a lot more :) | 20:09 | ||
timotimo | oh yes | ||
FROGGS | libSDL2 \o/ | ||
(and Qt for timotimo) | |||
timotimo | i'd love that, but i wouldn't count on it. | 20:10 | |
FROGGS | yeah, I have no time either | 20:11 | |
ETOOMANYSTUFFTODOALREADY | |||
20:12
Alina-malina joined
20:14
raiph joined
|
|||
masak finds rosettacode.org/wiki/Twelve_statements#Perl_6 and laughs | 20:15 | ||
extra funny that we declare (and fill up) the @ugly array, but then don't use it for anything :P | |||
timotimo | oh, those tests are pretty | 20:16 | |
20:16
goldliz joined
20:17
yoleaux left,
pnu joined
|
|||
timotimo | actually | 20:18 | |
setting a watchpoint to the location of lib_path makes gdb unkillable for some reason | 20:19 | ||
jnthn | The docs clearly say that's an invincibilty potion :P | 20:20 | |
20:21
yoleaux joined,
ChanServ sets mode: +v yoleaux
20:24
grep0r left
|
|||
timotimo | this debugging is going nowhere | 20:25 | |
i don't really see anything in the code where the change to the lib_path may happen | |||
and trying to watchpoint it or something ... not going to help :| | 20:26 | ||
20:26
arnsholt joined
|
|||
jnthn | timotimo: I think it's meant to stay the same beyond startup... | 20:26 | |
20:27
goldliz left
|
|||
timotimo | me, too | 20:27 | |
20:27
woolfy joined,
kivutar joined
|
|||
timotimo | *somehow* the libpath ends up going somewhere else and i have no clue how | 20:28 | |
is something corrupting the memory? valgrind didn't show anything, but that doesn't have to mean anything here | |||
masak | oh wow, this is horrible: stackoverflow.com/questions/1169511...ntax-error :) | 20:29 | |
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
|
|||
FROGGS | masak: another thing, how would *you* parse this line? open FH '>', 'foo.bar' | 20:32 | |
jnthn | masak: That's beautiful! :) | ||
timotimo is not a big fan of indirect method notation the way perl5 has it | |||
FROGGS | v5 did: open(FH('>', 'foo.bar')) ó.ò | ||
and well, I parse it now that way too :/ | 20:34 | ||
masak | FROGGS: argh | 20:35 | |
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:37
vincent22 left
|
|||
masak | FROGGS: I can imagine. | 20:38 | |
timotimo | "No more reverse-execution history." :( | 20:40 | |
masak | someone might want to write an excellent answer to perlmonks.org/?node_id=1077103 | ||
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 | ||
jnthn | wtf... | 20:50 | |
Since when? | |||
timotimo | haven't tried building on my desktop for a while now. | ||
aaw man :| | 20:53 | ||
i added a couple of 0s to the end of the instruction limit and it didn't help much | 20:54 | ||
dalek | kudo/nom: 44a4661 | larry++ | src/core/LoL.pm: fix bare Z to match cleaner Zop algo |
20:55 | |
20:57
kurahaupo_mobile is now known as lurahaupo
20:58
lurahaupo is now known as kurahaupo
21:00
bluescreen100 left
|
|||
timotimo | oh great | 21:01 | |
--optimize=0 "fixed" it | 21:02 | ||
21:02
dayangkun left
|
|||
timotimo | this is a little bit worrying | 21:03 | |
21:15
skids left
21:17
dayangkun joined
21:19
klapperl left
21:20
klapperl joined
21:23
virtualsue joined
21:27
wooden_ joined
21:28
wooden_ left,
wooden_ joined
|
|||
timotimo | my gcc is too old to have address sanitization | 21:28 | |
21:29
wooden left,
[Sno] joined
21:41
LLamaRider left,
dmol joined
|
|||
timotimo | now i'm trying on my laptop, but i'ven't got any output from asan :\ | 21:47 | |
21:56
rylinaux joined
22:03
Rotwang left
22:10
perigrin_ is now known as perigrin
22:11
tgt left
22:12
xenoterracide left
22:13
LLamaRider joined
22:14
panchiniak left
|
|||
jnthn | sleep...and hopefully tuits tomorrow evening :) & | 22:15 | |
FROGGS | sleep well | 22:16 | |
timotimo | good night jnthn! :) | 22:17 | |
22:24
virtualsue left
22:28
kaare__ joined
22:34
treehug8_ joined
22:37
treehug88 left
22:42
pippo left
23:00
cognominal left
23:01
cognominal joined,
raiph left
23:03
skids joined,
treehug8_ left
23:09
tgt joined
23:12
LLamaRider left
23:14
tgt left
23:16
kivutar left
23:24
denis_boyun__ left
23:39
BenGoldberg joined
23:48
rindolf left
23:49
bjz joined,
skids left
23:50
dmol left
23:57
kurahaupo left
23:59
tgt joined
|