»ö« 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.
00:02 eternaleye joined 00:03 lizmat left 00:05 FROGGS joined 00:08 lizmat joined 00:18 FROGGS left 00:20 raiph left 00:28 Rotwang left 00:32 raiph joined 00:38 FROGGS joined, celesta joined
celesta ahoi #perl6 00:38
00:47 Vlavv joined 00:49 FROGGS left
celesta if i write a compiler with parrot, can i use it from a perl 6 program? 00:57
jnthn airport & 00:58
00:58 pmurias left
JimmyZ celesta: you may want with MoarVM if you want to use it from a Perl 6 program 01:01
celesta JimmyZ: thanks, i will look into it 01:02
JimmyZ np 01:03
01:05 raiph left
BenGoldberg .ud coffee 01:18
yoleaux The best drink ever... glory...What Columbians grow and export in an attempt to make the world think that they are not the world's leading cocaine exporter.Drug used by hackers and studentssimply it m
preflex yoleaux: you have 2 new messages. '/msg preflex messages' to read them.
BenGoldberg .ud MY COFFEE 01:19
yoleaux a phrase used by the weak minded to excuse themselves for being a complete dipshit until they have had a sufficient fix of caffeine.
BenGoldberg .ud where is my coffee 01:20
yoleaux ENOTFOUND
01:28 celesta left 01:30 raiph joined 01:41 jeff_s1 joined 01:42 fgomez left
BenGoldberg nqp: say( nqp::getcomp('nqp').backend.name ) 01:47
camelia nqp: OUTPUT«parrot␤»
BenGoldberg nqp-jvm: say( nqp::getcomp('nqp').backend.name )
camelia nqp-jvm: OUTPUT«jvm␤»
BenGoldberg r: say( nqp::getcomp('nqp').backend.name ) 01:49
camelia rakudo 495602: OUTPUT«Null PMC access in find_method('backend')␤ in block at /tmp/VyuTmDqc8R:1␤␤»
BenGoldberg r: say( nqp::getcomp('perl6').backend.name )
camelia rakudo 495602: OUTPUT«parrot␤»
BenGoldberg star: say( nqp::getcomp('perl6').backend.name )
camelia star 2013.02: OUTPUT«No such method 'backend' for invocant of type 'Perl6::Compiler'␤ in block at /tmp/3m4Xdxz6Xh:1␤␤»
BenGoldberg star: say( nqp::getcomp('perl6') )
camelia star 2013.02: OUTPUT«No such method 'gist' for invocant of type 'Perl6::Compiler'␤ in sub say at src/gen/CORE.setting:7602␤ in block at /tmp/2cU6DxYUdW:1␤␤»
BenGoldberg star: print( nqp::getcomp('perl6') )
camelia star 2013.02: OUTPUT«Nominal type check failed for parameter '$got'; expected Any but got Perl6::Compiler instead␤ in method REIFY at src/gen/CORE.setting:6370␤ in method reify at src/gen/CORE.setting:5505␤ in method gimme at src/gen/CORE.setting:5882␤ in method print at src/gen/COR…
BenGoldberg is confused
How is a Perl6::Compiler object not an Any object? 01:50
nom: nqp::getcomp('perl6').backend.name.say 01:51
camelia rakudo 495602: OUTPUT«parrot␤»
BenGoldberg b: nqp::getcomp('perl6').backend.name.say
camelia b 922500: OUTPUT«Cannot find sub nqp::getcomp␤ in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
JimmyZ BenGoldberg: NQP is not Perl 6 01:55
01:55 raiph left 02:01 FROGGS joined 02:10 FROGGS left 02:12 FROGGS joined 02:17 raiph joined 02:31 FROGGS left 02:37 raiph left 02:44 raiph joined 03:05 raiph left 03:11 wtw joined 03:35 preflex_ joined, ChanServ sets mode: +v preflex_ 03:36 preflex_ is now known as preflex
grondilu rn: my %h = <foo foo bar> Z=> <2 2 1>; .value /= 3 for %h; say %h 05:00
camelia rakudo 495602: OUTPUT«("foo" => "2", "bar" => "1").hash␤» 05:01
..niecza v24-88-g1f87209: OUTPUT«{"bar" => <1/3>, "foo" => <2/3>}␤»
grondilu niecza is right here, isn't it?
rn: my $pair = foo => 1; .value /= 10 given $pair; say $pair 05:02
camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/EEk7inVJFQ line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ at /home/p6eval/niecza/li…
..rakudo 495602: OUTPUT«"foo" => 0.1␤»
05:08 jaldhar joined
grondilu std: my $x = 1, $x + 3 05:09
camelia std c2215f0: OUTPUT«ok 00:00 44m␤» 05:10
grondilu rn: say join ":", my $x = 1, $x + 3
camelia rakudo 495602, niecza v24-88-g1f87209: OUTPUT«1:4␤»
grondilu cool, I didn't know I could do that
05:32 BenGoldberg left 05:44 gladys_27_indone joined 05:45 gladys_27_indone is now known as Gladys_27_frm_In
Gladys_27_frm_In hiii 05:46
05:48 zakalwe left, zakalwe joined, zakalwe left, zakalwe joined, crab2313 joined 05:49 Gladys_27_frm_In is now known as Bella_Swan_love_
Bella_Swan_love_ hyyy 05:50
oii
05:51 Bella_Swan_love_ is now known as Bella_Love_Rober
Bella_Love_Rober iii 05:52
05:52 Bella_Love_Rober left 05:54 kaare_ joined
grondilu How many of you guys will be in Kiev? 05:55
sorear heh. that's been a while
sorear will not be in Kiev this month
moritz grondilu: act.yapc.eu/ye2013/talk/4925 the list of attendees should be a pretty complete list of #perl6 folks going to Kiev :-) 06:01
grondilu will act.yapc.eu/ye2013/talk/4912 be filmed? 06:05
(and/or act.yapc.eu/ye2013/talk/4926) 06:06
TimToady is in Kiev right now...
yoleaux 6 Aug 2013 10:25Z <FROGGS> TimToady: should the name of a slang be lowercase in general? like in use A:from<perl5>, use B:from<java>, eval( "\t\s\n", :lang<bf> ) ? I think the name of the slang is about the language, not the interpreter/binary, and should there be like Perl5, Java, C, ...
sorear o/ TimToady 06:07
grondilu won't be in Kiev so he hopes most conferences will be recorded. 06:10
06:13 dmol joined
ingy hi TimToady 06:14
06:32 woolfy joined 06:37 dmol left
jnthn o/ from Frankfurt airport 06:46
jnthn took a few attempts to get the wifi captcha and now feels very robotic
06:48 kaare_ left 06:55 FROGGS joined
FROGGS o/ 06:56
jnthn o/ FROGGS 06:57
FROGGS jnthn: still awake? O.o 06:58
jnthn FROGGS: At Frankfurt airport waiting for connection and slide-hacking-ish :) 06:59
FROGGS ahh, hehe 07:00
FROGGS hopes there will be live streams, but doubts it
ohh, IO::Async::File is nice 07:02
is this a common feature of other languages?
jnthn Well, I guess our async slurp is like the .Net ReadToEndAsync 07:03
But not sure it has an equivalent of the lines channel thing.
ooh, I should go find the gate, now they've said which one my flight has...
bbl
FROGGS see ya
.tell celesta if you would write your compiler in nqp, yuo would have parrot, JVM and MoarVM as backends... 07:04
yoleaux FROGGS: I'll pass your message to celesta.
sorear o/ FROGGS, jnthn 07:05
FROGGS hi sorear 07:06
jnthn o/ sorear 07:14
jnthn found his gate :)
07:51 _jaldhar joined, jaldhar left 07:53 crab2313_ joined 07:54 crab2313 left
tadzik o/ from WAW 08:35
dalek rlito: 3f3ac31 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - fix 'print BLOCK LIST'
08:38
sorear o/ tadzik 08:39
08:47 xinming left
tadzik sorear! o/ 08:48
the airport situation is quite hilarous
there are two flights departing to Kiev, at the same time (modulo 5 minutes), by two different airlines, and they're at gates next to each other 08:49
I think every single passenger from either flight is confused
08:51 xinming joined
tadzik to make it funnier, there are two other flights to Ukraine, also in neighbouring gates, also started boarding about now 08:52
FROGGS hehe, aisline trolls 08:54
airline*
tadzik also, they seem to be calling some people from my flight to the gate ASAP, but they didn't open the gate for the rest of us yet 08:55
...also, airport security riding segways looks quite funny
FROGGS U.S.-sized security guys? 08:57
tadzik hehe, no
FROGGS hmmm, would be funnier :o) 08:58
tadzik US is a bit country, almst the entire continent. I don't think you can fit it on a segway
FROGGS hehe
>.<
tadzik Ha! "Boarding" 08:59
FROGGS maybe I mean U.S.-shaped :o)
tadzik more like Boaring
FROGGS jnthn: about async slurping, how would the syntax look like? "test.csv".slurp.lines>>.parse_csv_line ? 09:05
09:09 spider-mario joined
FROGGS hmmm, when thinking about that threads stuf... I could potentially calculate the fees at $work for several employees at once 09:09
that would speed it up a lot, the machine has 16 cores 09:10
(if the code wouldnt be more than 16 times slower than the current P5 code)
09:25 thou left
dalek rlito: 8370a18 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - parsing rules for sort()
09:37
10:02 crab2313_ left 10:12 Woodi left, Woodi joined 10:16 Rotwang joined
dalek rlito: a147cf5 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - grammar - tweak Apply node
10:21
timotimo i wish to see a few livestreams as well 10:27
i only realize now they startbin two days rather than today 10:38
FROGGS yeah, the hackathon usually is before and after the conference days 10:39
timotimo: so expect many messages from dalek :o)
10:45 pmurias joined
timotimo yup, looked at the schedule before i wrote that :) 10:48
11:02 crab2313 joined
dalek rlito: d129472 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - grammar - parsing rules for map() and sort()
11:04
rlito: ee9baec | (Flavio S. Glock)++ | / (3 files):
Perlito5 - grammar - use Apply.special_arg
11:13
11:13 ggoebel joined 11:20 ggoebel left
FROGGS $ time perl6 -e 'my @a = ^100_000; my Mu $rpa := nqp::hyper_MT(@a, @a, "nqp_bigint_add", Array, Int); say "done"' 11:20
11:20 lizmat left
FROGGS 100000 11:20
done
real0m8.241s
user0m16.416s
11:21 Rotwang left
FROGGS (I love it :o) 11:21
bbl
11:21 FROGGS left, woolfy left 11:23 lizmat joined, Rotwang joined
dalek rlito: abcb270 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - use Apply.special_arg
11:34
timotimo cool beans, froggs :) 11:35
11:35 FROGGS[mobile] joined 11:38 woolfy joined 11:45 domidumont joined 11:48 Rotwang left 11:57 domidumont left, crab2313 left 11:58 domidumont joined 12:06 Rotwang joined 12:07 Rotwang left
dalek rlito: b1779df | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - #line
12:07
timotimo is flavio glock attending yapc:eu, too? 12:32
12:33 cognominal left 12:35 crab2313 joined
FROGGS[mobile] from reading his commits I'd guess so 12:41
12:42 bruges joined 12:43 vk___ joined
timotimo how do you get that from the commits? o_O 12:43
12:43 Maddingu1 joined
timotimo i finally started working on poison information gathering 12:44
12:45 tadzik1 joined 12:47 Rotwang joined 12:48 birdwindupbird joined, Rotwang left 12:50 exodist_ joined
FROGGS[mobile] His commit rate increased dramatically 12:51
12:51 Rotwang joined
FROGGS[mobile] (conference driven developement that is) 12:51
12:52 domidumont left
timotimo feels like it has been increasing for a while now. but yeah, maybe he is indeed at the conference hacking away happily :) 12:53
kind of bummed he's not working on improving the perlito6 piece, but you can't have everything ;) 12:54
why the hell am i getting "Missing or wrong version of dependency 'src/stage2/QRegex.nqp'" when i try to run nqp? 12:55
oooh 12:56
i had an nqp running somewhere and that kept "make install" from replacing some files
m(
12:59 colomon joined, crab2313 left 13:08 Rotwang left 13:10 Rotwang joined
timotimo wat. how in the world did i break rakudo now?! 13:14
r: my $b = sub($arg) { say $arg }
camelia rakudo 495602: OUTPUT«===SORRY!=== Error while compiling /tmp/lCgMtuzG60␤Variable '$arg' is not declared␤at /tmp/lCgMtuzG60:1␤------> my $b = sub($arg⏏) { say $arg }␤ expecting any of:␤ postfix␤»
timotimo i'm pretty sure this worked before
it does work with an additional space after sub, that explains it! 13:15
i was calling "sub" instead of creating one
lizmat r: my $b = -> $argc { say $arg }; say $b; $b("foo") 13:16
camelia rakudo 495602: OUTPUT«===SORRY!=== Error while compiling /tmp/0H_RnlTQd2␤Variable '$arg' is not declared␤at /tmp/0H_RnlTQd2:1␤------> my $b = -> $argc { say $arg⏏ }; say $b; $b("foo")␤ expecting any of:␤ postfix␤»
lizmat r: my $b = -> $arg { say $arg }; say $b; $b("foo")
camelia rakudo 495602: OUTPUT«Block.new()␤foo␤»
lizmat why use sub?
timotimo heyo lizmat :) 13:30
i took that code from a test case that my code made to fail
oh make ~_~
lizmat ok, I was just wondering
timotimo i just got the setting compiled, thinking "yay!" and saved my extra debugging info to Optimizer.nqp and then make went on to say "hey, optimizer.nqp changed! let me compile all that stuff over again!"
lizmat is recovering from an almost heatstroke while strolling outside for an hour 13:31
timotimo time to run some spectests \o/ 13:34
got a little ahead of yourselft here? hope you'll recover soon, lizmat :)
lizmat aircoed room helps millions :-) 13:35
13:37 jaffa4 joined
timotimo huh. how do i tell the spectest run to use --optimize=3? 13:37
jaffa4 hi
is anyone in kiev?
benabik It has a population of a couple million, so I hope someone is there. 13:38
timotimo a whole bunch of #perl6 folk are in kiev 13:39
jaffa4 yes, but it is not evident who
timotimo i know that froggs, tadzik, diakopter, jnthn, timtoady and moritz are (or are going to be) in kiev for yapc::eu 13:40
can i rely on every occurence of OUTER to be accompanied by a nqp::who? 13:46
13:49 jaffa4 left
timotimo hm, nqp::who is probably what gets generated whenever there is a :: 13:50
r: my $a = "what?"; sub foo { sub bar { OUTER::OUTER::<$a> = "hi" }; bar }; foo; say $a 13:53
camelia rakudo 495602: OUTPUT«hi␤»
timotimo r: my $a = "what?"; sub foo { sub bar { my $foo = "OUTER"; OUTER::{$foo}::<$a> = "hi" }; bar }; foo; say $a
camelia rakudo 495602: OUTPUT«===SORRY!=== Error while compiling /tmp/_NFzzDsZB8␤Two terms in a row␤at /tmp/_NFzzDsZB8:1␤------> b bar { my $foo = "OUTER"; OUTER::{$foo}⏏::<$a> = "hi" }; bar }; foo; say $a␤ expecting any of:␤ postfix␤ statem…
timotimo r: my $a = "what?"; sub foo { sub bar { my $foo = "OUTER"; OUTER::{$foo}<$a> = "hi" }; bar }; foo; say $a
camelia rakudo 495602: OUTPUT«Cannot modify an immutable value␤ in sub infix:<=> at src/gen/CORE.setting:14821␤ in block at src/gen/CORE.setting:2146␤ in sub bar at /tmp/9OxPlmIvYj:1␤ in sub foo at /tmp/9OxPlmIvYj:1␤ in block at /tmp/9OxPlmIvYj:1␤␤»
timotimo r: my $a = "what?"; sub foo { sub bar { my $foo = "OUTER"; OUTER::{$foo}.WHO<$a> = "hi" }; bar }; foo; say $a 13:54
camelia rakudo 495602: OUTPUT«hi␤»
timotimo that's pretty bad!
if an OUTER is used *anywhere*, i can just pack up and leave. forever. 13:55
dalek ast: 1bb9bd2 | (Elizabeth Mattijsen)++ | S32-scalar/perl.t:
Add some tests for scalar roundtripping
13:56
timotimo which is of course not that bad, because i the current state is that this optimization is never attempted at all 13:57
dalek kudo/nom: b03cc1c | (Elizabeth Mattijsen)++ | t/spectest.data:
Also run new scalar tests
GlitchMr jvm: say 42 14:00
Can I eval Rakudo JVM code?
timotimo not on the bot :( 14:01
do you want me to go ahead and do that? i can compile a current jakudo for you
GlitchMr Well, I would like to experiment somewhat with Rakudo JVM 14:02
But I cannot manage to run it
timotimo if you promise to be nice, i'll give you a shell with a working jakudo 14:03
GlitchMr No problem, :-)
I'm not some random abuser
I would like to have it working on my computer, but whatever. 14:04
TimToady
.oO(he's a very specific abuser?)
timotimo maybe i can help you about installing it, though
what kind of trouble are you having?
GlitchMr Well, actually, I'm on Windows right now, so well...
timotimo TimToady: in general, those are almost the only ones you really have to worry about
virtualbox can help
GlitchMr I know 14:05
I'm usually on Linux
Anyway, when I tried to install it in Linux, I had problem with configuring NQP for JVM
JimmyZ what's problem with windows?
TimToady it's pretty certain to be possible to run it on Windows, given some of our developers do so on Windowss 14:06
GlitchMr (I'm currently not in home, so well)
timotimo wait. this is java. i could just give you my jar files, couldn't i?
GlitchMr Possibly...
I'm not in home, so I wouldn't rather install Rakudo JVM right now.
I wanted to experiment with it using bot. 14:07
timotimo right :|
GlitchMr I probably could install it on my server, but I'm not sure whatever it would work with Sun JVM.
It's already difficult enough to write Perl 6 changes article when you aren't in home ;-) 14:08
(at least GitHub has text editor) 14:09
timotimo does "sun jvm" mean "the jvm version that was current before oracle took over sun"?
diakopter probably just means oracle jvm 14:10
GlitchMr Actually, I meant IBM JVM
I fail
diakopter oracle jvm installs easily on most linuxes 14:11
GlitchMr (I really fail)
diakopter oracle-java7-installer on ubuntu
GlitchMr My server has really low ammounts of memory, and Oracle JVM simply fails to run "Hello, world!".
timotimo "really low amounts of memory" == "no jakudo fun" 14:12
i'm having some trouble compiling jakudo myself, though
GlitchMr I guess it makes sense.
timotimo segfault in my jvm \o/
diakopter hah
GlitchMr 256MB of RAM. Enough to run Minecraft server, but that's about it.
timotimo r: my $a = "what?"; sub foo { OUTER::<$a> := "hi" }; foo; say $a; $a = "boop" say $a; 14:13
camelia rakudo b03cc1: OUTPUT«===SORRY!=== Error while compiling /tmp/RnoCD1Aux4␤Two terms in a row␤at /tmp/RnoCD1Aux4:1␤------> $a> := "hi" }; foo; say $a; $a = "boop" ⏏say $a;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or met…
timotimo r: my $a = "what?"; sub foo { OUTER::<$a> := "hi" }; foo; say $a; $a = "boop"; say $a;
camelia rakudo b03cc1: OUTPUT«hi␤Cannot modify an immutable value␤ in block at /tmp/bfIOkzJoub:1␤␤»
timotimo mhm, so an usage of OUTER could also imply a BIND poison ...
GlitchMr (I hope Niecza isn't dead, I haven't seen updates in it for a long time) 14:16
timotimo setting compile time \o/ 14:17
14:28 xilo joined
timotimo hmm, getting sundry test failures 14:29
r: class Foo { has $blah }; my Foo $f .= new; $foo.blah++; 14:31
camelia rakudo b03cc1: OUTPUT«===SORRY!=== Error while compiling /tmp/H0GJhKGpS0␤Variable '$foo' is not declared␤at /tmp/H0GJhKGpS0:1␤------> s $blah }; my Foo $f .= new; $foo.blah++⏏;␤ expecting any of:␤ method arguments␤ postfix␤»…
synopsebot Link: perlcabal.org/syn/S0.html#line_1
timotimo r: class Foo { has $blah }; my Foo $f .= new; $f.blah++; 14:32
camelia rakudo b03cc1: OUTPUT«No such method 'blah' for invocant of type 'Foo'␤ in block at /tmp/7igApd85RD:1␤␤»
timotimo r: class Foo { has $.blah }; my Foo $f .= new; $f.blah++;
camelia rakudo b03cc1: OUTPUT«Cannot assign to a readonly variable or a value␤ in sub postfix:<++> at src/gen/CORE.setting:2184␤ in sub postfix:<++> at src/gen/CORE.setting:2182␤ in block at /tmp/RpDpAUoMRT:1␤␤»
timotimo locally ... that seems to pass
but my optimization isn't changing the stuff 14:33
one failure is there even when i disable the optimizer completely, the other failures seem to be matching output against known stuff where my debug output interferes 14:35
14:38 Psyche^_ joined 14:42 Psyche^ left 14:55 colomon left 14:59 rindolf joined
lizmat r: say Int(1).perl # TimToady: shouldn't that be "Int(1)" ? 15:00
camelia rakudo b03cc1: OUTPUT«1␤»
timotimo huh, why? 15:01
it's the same thing as "1"
except for the Want mechanism in between
lizmat r: my Int @a=1; say @a.perl 15:02
camelia rakudo b03cc1: OUTPUT«Array[Int].new(1)␤»
lizmat here the type info is preserved
why isn't it with scalars ?
r: my Int $a=1; say $a.perl
camelia rakudo b03cc1: OUTPUT«1␤»
TimToady r: say 1.WHAT 15:03
camelia rakudo b03cc1: OUTPUT«(Int)␤»
TimToady looks like 1 is already an Int, so why convert it to one? 15:04
the purpose of .perl is to produce valid Perl 6 code, not to reproduce every possible bit of information you might annotate it with...
lizmat but the idea is that you should be able to roundtrip 15:05
r: my Int @a=1; say @a.perl.eval.perl.say
camelia rakudo b03cc1: OUTPUT«Array[Int].new(1)␤True␤»
lizmat r: my Int @a=1; say @a.perl.eval.perl 15:06
camelia rakudo b03cc1: OUTPUT«Array[Int].new(1)␤»
lizmat in this case it is preserved
JimmyZ r: say Str(1).perl
camelia rakudo b03cc1: OUTPUT«"1"␤»
lizmat r: my Int $a=1; say $a.perl.eval.perl
camelia rakudo b03cc1: OUTPUT«1␤» 15:07
lizmat afk&
timotimo building rakudo for a benchmark run 15:11
i was wondering why private method call inlining is level 3 and upwards, jnthn? is there some issue with it that makes it unfit for production use? 15:12
lizmat TimToady: and wouldn't the roundtripping capability mean that you *would* need to reproduce every possible bit of information you might annotate it with? 15:13
really afk&
timotimo it's the difference between reproducing a value or a container
the Int you're refering to is part of the container, not the value, afaict 15:14
so the round trip equivalent would be $a.perl => "my Int $a = 1"
15:15 kst` joined
TimToady r: my Int $a=1; say VAR($a).perl 15:15
camelia rakudo b03cc1: OUTPUT«===SORRY!=== Error while compiling /tmp/rx6srdrqjQ␤Undeclared name:␤ VAR used at line 1␤␤»
TimToady remember that $a automatically derefs
15:22 FROGGS[mobile] left, FROGGS[mobile] joined
FROGGS[mobile] Hi TimToady 15:22
TimToady: is the from adverb of the use statement about languages or interpreter binaries? 15:23
So is it :from<Perl5> or is it lowercase always? 15:24
timotimo i'm not sure if the microbenchmarks in our benchmark suite will get any faster with my changes :|
FROGGS[mobile] :/ 15:25
TimToady FROGGS[mobile]: I'm fine with uppercase
FROGGS[mobile] TimToady: awesome 15:26
jnthn: see? :o) 15:27
15:27 ajr joined 15:28 ajr is now known as Guest22611
[Coke] watches an interview with TimToady and learns stuff. 15:28
timotimo is that new?
15:29 rindolf left, Guest22611 is now known as ajr_ 15:30 rindolf joined
TimToady should watch it to see if he learns stuff... 15:30
mst I keep trying that with my own videos but I can't stand the sound of my own voice when it's second hand 15:31
weird given how much I enjoy it normally :D
[Coke] Published on June 29, 2013
timotimo mst: you need some really good speakers to really appreciate the volume of your voice :) 15:34
FROGGS[mobile] sad that only a few videos from yapcna are online 15:39
timotimo yeah; there's not many things that make me more sad than to hear there is no recording of a talk i was interested in 15:41
if there's no good camera in there, at least have the decency to prop up a smartphone camera or something :(
mst there was streaming of most tracks 15:42
FROGGS[mobile] well, everything got recorded
mst I'm not sure why the videos haven't been processed
this is a regular problem actually
timotimo OK
mst videos get recorded but then never processed into something that gets uploaded 15:43
timotimo is there going to be streams and/or recordings of yacp::eu?
mst I've thrown volunteers at it repeatedly and that doesn't seem to help
I really don't understand what makes the problem so intransigent
FROGGS[mobile] on wednesday I turned on one camera at 11am, so before that it didnt record the speakers 15:44
was a bit misorganized in austin
timotimo wow, i must be measuring this wrong 15:50
t.h8.lv/p6bench/with_storeunchecked.html - the revision i'm comparing against is pretty old. i don't think my changes can plausibly have that effect 15:51
diakopter mst: this year, if the livestream was interrupted even once while transmitting, it "corrupted" the video file as stored on livestreams' servers, so they werent downloadable directly; they had to be streamed to be exported (which I was able to do for a ouple of the days before livestream deleted them or someone else who obtained the account password deleted them) 15:52
timotimo i'm going to build and measure a very new rakudo against my changes now.
mst diakopter: what?
diakopter: so we don't even have the original raw video?
diakopter mst: we didn't record them locally; were depending on livestream
mst and they disappeared off livestream's systems before you could get them back locally 15:53
diakopter well, todd's trying to get them back
no clue how well that's going or where it stands
last I heard was a week or two ago
mst sighs
timotimo ;_; 15:54
diakopter I have 2 day-rooms worth, no clue which days or rooms, in .mp4
some enormous number of gigs, if someone wants to download them and process them and see if they include talks that aren't uploaded already that'd be nice
I offered them to todd weeks ago; no reply
he got pissed at me b/c as soon as I noticed videos were deleted I changed the account password in case some human was deleting them 15:56
I felt I had the right to since I paid for the accounts and felt reponsible for giving out the password
FROGGS[mobile] Sure
Can I download the mp4 from somewhere? 15:57
diakopter sure, i'll privmsg you
FROGGS[mobile] Can you email it?
timotimo has a fairly new cpu in his desktop, but alas no intel quicksync :( 15:58
FROGGS[mobile] Quicksync?
timotimo some built-in video encoding stuff on their cpus or gpus or something 15:59
FROGGS[mobile] Ahh
16:03 woolfy left 16:04 lizmat left 16:06 crab2313 joined 16:14 woolfy joined 16:15 lizmat joined 16:20 woolfy left 16:22 crab2313 left
timotimo i'm imagining the speedup came when jnthn implemented compile-time inlining for calls with optional parameters rather than my optimisation 16:24
16:24 lizmat left
timotimo but i'd be very happy if it turns out that my stuff improved speed, too 16:24
16:26 lizmat joined
timotimo just as i feared, when i compare against a newer revision, the differences go away 16:30
oh well. better come up with some better optimisations! 16:31
16:35 woolfy joined
FROGGS[mobile] ó.ò 16:38
16:50 cognominal joined
dalek rlito: 9e2b1b7 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - optimize
16:52
17:08 birdwindupbird left 17:10 FROGGS joined 17:34 jaffa4 joined
timotimo d'oh 17:49
my changes ... they do nothing :(
we must invent new benchmarks that show that my changes have beneficial effects! 17:52
17:55 jaffa4 left 18:07 ssutch joined
timotimo japhb_: my optimisations now turn p6store into p6storeunchecked in a couple of cases and there's *no* difference in the benchmarks at all :( 18:18
japhb_: in other news, the "latest-stuff" branch is all i worked on 18:19
18:20 colomon joined
timotimo japhb_: but that's not the branch i'm pull-requesting 18:21
feel free to close the pull request; it's probably also necessary to pick and choose changes i made; some of them are probably bogus; there's at least a bunch too much debug output in timeall.
ingy I present you with the Perl 6 Bash Command of the Day: 18:24
git clone --recursive [email@hidden.address] (cd git-hub; make install); for repo in `git hub repos perl6 -ar`; do echo git clone `git hub repo $repo -r | grep ^ssh_url | cut -f2`; done
get all of perl6 in one line!
timotimo jnthn: it would be very kind if you could quickly jot down the correct p6storeunchecked for rakudo-jvm. i don't think i can figure it out without asking you for the solution line-by-line ;) 18:26
18:32 mtk joined
moritz has arrived in Kiev 18:32
18:36 colomon left 18:38 rindolf left
timotimo looking forward to some great work being done :) 18:40
are there any focus points for you, Moritz?
except your slides ;) 18:41
moritz timotimo: meeting people in meat space 18:44
timotimo that is certainly a good activity 18:45
grondilu I'm reading the MoarVM code. What's with all the structure names beginning with underscore. I've asked on #programming and they told me it's useful only when structures are recursive. That is, instead of typedef struct _Foo { int whatever; } Foo, one could just write typedef struct { int whatever } Foo Wouldn't it be clearer? 18:46
grondilu forgot a question mark and a semi-colon, but you get the idea 18:47
timotimo doesn't see the underscore there 18:48
ingy, do you have plans to fix testml and yaml for p6 in the future?. 18:49
the last time i looked at yestml for p6 it disagreed with the testml spec 18:50
afk 18:51
18:55 not_gerd joined
not_gerd grondilu: yes, some of the conventions used by moarvm are a bit strange 18:57
leading underscores are actually reserved for the language implementation (compiler builtins, libc) 18:59
eg new C language keyword start with an underscore (_Bool, _Noreturn, _Complex,...), so you shouldn't use them in user code 19:00
19:04 preflex left 19:05 preflex joined, ChanServ sets mode: +v preflex 19:17 woolfy left 19:18 lizmat left
grondilu not_gerd: well, a neat exercice in Perl6 would be to write a program that translates this into an other convention. 19:22
not_gerd see gist.github.com/gerdr/6201767 for how I'd do it 19:23
19:26 Rotwang left 19:27 lizmat joined
diakopter grondilu its so all the raw structs are cobsistent and all the typedefs to ones withiut underscores mean pointers tto them 19:27
stuoid phkne
stupid phone
keyboard
grondilu diakopter: yeah I get it helps being consistent but it's kind of confusing, especially when in some parts of the program you see the _MVM version used where MVM would be just fine. 19:28
also, doesn't it use more memory (in the symbol table or something) for no reason? 19:29
diakopter if they actually would work, then they're simply fossils from some refactpring
not_gerd diakopter: you can forward-declare the typedef names
eg add the typedef to the first lines of 6model.h
diakopter refactoring of the .h order I mean 19:30
not_gerd then, you don't need the struct in the rest of the file
grondilu not_gerd: your code looks cool but kind of a hack. It's tough to understand.
diakopter yes I discovered that
not_gerd grondilu: forward declarations are a well-known C idiom
you don'T need to see a type's definition to use derived pointers, only it's name
diakopter feel free to add a .h with just the forward declarations 19:31
grondilu not_gerd: can you show me a recursive struct with forward declaration, I failed making one.
diakopter there are some in a few places already in my branches
well, locally
grondilu like: typedef struct foo foo; struct foo { foo next; } // <- does not work 19:32
oops
diakopter Well the name sboukd be different
not_gerd gist.github.com/gerdr/768564c7282f2bc7a48b
grondilu: your example misses the * 19:33
geekosaur that wouldn't work anyway, how does a struct contain itself? struct pointer should work
grondilu not_gerd: that does not compile (I tried gcc -c youfile.c): error: unknown type name ‘node’ + warning: useless storage class specifier in empty declaration 19:35
not_gerd forgot to give the typedef a name 19:36
see updated gist
19:42 Rotwang joined
grondilu not_gerd: yeah it would be clearer to use this kind of forward declaration for recursive structures. 19:45
because all these underscores are confusing, imho.
and it would make type declarations shorter. 19:46
ingy timotimo: certainly. I plan to be spending more time on p6 in the near future 19:52
ingy adds {testml,yaml}.pm6 to the stack 19:53
timotimo cool 19:55
20:10 bruges left 20:12 bruges joined
timotimo i don't feel like p6storeunchecked has any difference in performance from p6store at all whatsoever 20:15
i must have done the mapping wrong or something.
ingy timotimo: what's that? :) 20:16
moritz timotimo: try to use a custom subtype that's very expensive to check
timotimo oh, that's a good idea 20:17
i am having trouble setting up a subtype ... 20:19
r: subtype Frob of Int where sleep 1; my Frob $a = 10;
camelia rakudo b03cc1: OUTPUT«===SORRY!=== Error while compiling /tmp/vHXzv7vyBA␤Two terms in a row␤at /tmp/vHXzv7vyBA:1␤------> subtype Frob of Int ⏏where sleep 1; my Frob $a = 10;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or…
timotimo i thought it was done like that. 20:21
oooh
sub*set*
r: sleep 1
camelia rakudo b03cc1: ( no output )
timotimo r: subset Frob of Int where sleep 1; my Frob $a = 10; 20:22
camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤ in sub sleep at src/gen/CORE.setting:731␤ in block at /tmp/PKEJJXJWxG:1␤␤»
timotimo o_O
locally i just get could not found sub sleep
oh my. that comes from the optimizer. that's not a good sign.
FROGGS r: say sleep 1 20:23
camelia rakudo b03cc1: OUTPUT«1␤»
FROGGS r: say sleep 5 20:24
camelia rakudo b03cc1: OUTPUT«5␤»
FROGGS okay
TimToady r: subset Frob of Int where so sleep 1; my Frob $a = 10; 20:25
camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤ in sub sleep at src/gen/CORE.setting:731␤ in block at /tmp/C24wEkZ1cb:1␤␤»
timotimo ouch :) 20:26
oh 20:33
could it be that when i try to nqp::istype($some_value, $restriction_on_a_type) it could run the subtype restriction during compilation? 20:34
that would be highly unfortunate :)
moritz r: subset Frob of Int where { so sleep 1 }; my Frob $ = 10 20:35
camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤ in sub sleep at src/gen/CORE.setting:731␤ in block at /tmp/Tusx3q7kW_:1␤␤»
moritz r: subset Frob of Int where { sleep 1 }; my Frob $ = 10
camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤ in sub sleep at src/gen/CORE.setting:731␤ in block at /tmp/JYTqM95MsT:1␤␤»
moritz r: sleep 1
camelia rakudo b03cc1: ( no output )
timotimo r: subset Frob of Int where { nqp::sleep(1) }; my Frob $ = 10; 20:40
camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤ in block at /tmp/1TEPZKhQTY:1␤␤»
timotimo maybe it needs to be boxed for that to work? 20:41
r: subset Frob of Int where { nqp::box_i(nqp::sleep(1), 'Int') }; my Frob $ = 10;
camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤ in block at /tmp/ZqpERdweoZ:1␤␤»
timotimo r: subset Frob of Int where { so nqp::sleep(1) }; my Frob $ = 10;
camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤ in block at /tmp/BZkCjdJcnL:1␤␤»
timotimo r: subset Frob of Int where { True }; my Frob $ = 10;
camelia rakudo b03cc1: ( no output )
timotimo r: subset Frob of Int where { 1 + 1; 2 }; my Frob $ = 10; 20:42
camelia rakudo b03cc1: ( no output )
timotimo hm.
20:45 ajr_ left 20:55 not_gerd left
timotimo i can probably introspect a thing to figure out if it's a subset by asking its HOW 21:00
21:08 ssutch left
pmurias timotimo: re optimiser you are doing you optimalisations on the QAST->QAST level? 21:26
timotimo ^H^Hyes
21:29 thou joined
timotimo were you going to tell me this is a terrible idea? :) 21:29
or were you going to cheer because it'd work on the js backend as well? 21:30
grondilu rn: printf "%u", 2**32 21:40
camelia niecza v24-88-g1f87209: OUTPUT«4294967296»
..rakudo b03cc1: OUTPUT«0»
grondilu rakudo is right here, isn't it? 21:41
r: run printf "%u" 4294967296
camelia rakudo b03cc1: OUTPUT«===SORRY!=== Error while compiling /tmp/8OkyFn292v␤Two terms in a row␤at /tmp/8OkyFn292v:1␤------> run printf "%u" ⏏4294967296␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ state…
timotimo what is run? 21:42
grondilu r: say qx{printf "%u" 4294967296}
camelia rakudo b03cc1: OUTPUT«qx, qqx is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in sub QX at src/RESTRICTED.setting:9␤ in block at /tmp/VT9bIiKu21:1␤␤»
dalek kudo/hyper_threaded: 71f8958 | (Tobias Leich)++ | src/ (2 files):
first working threaded @a >>+<< @b

There are still some quirks that need to be refactored nicely. I just hope that this could be the base for parallel operations on parrot backend.
21:43
grondilu rn: printf "%u", 2**64 21:44
camelia rakudo b03cc1: OUTPUT«0»
..niecza v24-88-g1f87209: OUTPUT«18446744073709551616»
21:44 ssutch joined
grondilu rn: printf "%u", 2**100 21:44
camelia rakudo b03cc1: OUTPUT«0»
..niecza v24-88-g1f87209: OUTPUT«1267650600228229401496703205376»
grondilu I guess niecza assumes %u means unsigned big integer 21:45
dalek Heuristic branch merge: pushed 44 commits to rakudo/hyper_threaded by FROGGS
pmurias timotimo: the things below QAST (like JAST) don't seem very to do transformations on 21:51
timotimo: and we definitely want to have things like constant folding 21:52
timotimo don't seem very ... what?
pmurias * easy
timotimo agreed
fwiw, constant folding is already implemented
pmurias have you been able to do any significant optimalisations? 21:53
timotimo me personally ... just one
there's an optimisation that turns simple junctions into short-ciruit ors
if $x == -1 | 0 | 1 <- same thing as $x == -1 || $x == 0 || $x == 1 21:54
nqp: say(1 !=:= NQPMu)
camelia nqp: OUTPUT«Confused at line 2, near "say(1 !=:="␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo nqp: say(1 =!= NQPMu)
camelia nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near "!= NQPMu)"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo nqp: say(1 !=== NQPMu)
camelia nqp: OUTPUT«Confused at line 2, near "say(1 !==="␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo how do i negate =:=? 21:55
nqp: say(1 =:= NQPMu)
camelia nqp: OUTPUT«0␤»
pmurias reads NQP::Grammar
FROGGS nqp: say( !(1 =:= NQPMu) )
camelia nqp: OUTPUT«1␤»
FROGGS :o)
timotimo that's what i did now
also, guten abend froggs :)
FROGGS *g*
hi 21:56
pmurias timotimo: nqp doesn't seem to have metaops 21:57
timotimo well, i thought there was a negation of =:= 21:58
pmurias isn't there something wrong with =:= 22:00
timotimo i'm having some difficulty figuring out if the $container-descriptor.of is a subset
what's wrong with it?
you think it should be =^.^= instead?
pmurias timotimo: I'm trying to remember 22:01
22:02 spider-mario left
FROGGS I dont see a negation for =:= 22:02
hmmm, my branch brakes @a >>+>> 1 22:03
timotimo breaks or brakes?
FROGGS breaks
pmurias nqp: say(nqp::eqaddr("foo","foo"))
camelia nqp: OUTPUT«0␤»
FROGGS (I can't guarantee the order of the chars while hacking on threads)
pmurias nqp: say("foo" =:= "foo")
camelia nqp: OUTPUT«0␤»
timotimo :D 22:04
yeah no i can *not* get this to work >_<
FROGGS pmurias: well, these are two different containers, no?
or storage locations or whatever
timotimo yeah, they are 22:05
pmurias that depends
timotimo i'm trying something entirely else though :) 22:06
pmurias r: say("foo" =:= "foo")
camelia rakudo b03cc1: OUTPUT«True␤»
FROGGS yeah, they could be the same, but I think they dont have to
pmurias in Perl6 they have to
FROGGS why *have to* ? 22:07
timotimo that's weird 22:08
pmurias because those are identical things
timotimo er ... okay?
i thought =:= is "bound to the same container"
FROGGS its content is identical
r: my $a = "foo"; say $a =:= "foo"
camelia rakudo b03cc1: OUTPUT«False␤»
FROGGS still identical values 22:09
pmurias you are comparing the $a container with a "foo" string
we don't distinguish different "foo" strings
FROGGS r: my $a = "foo"; my $b = "foo"; say "foo" =:= "foo" 22:10
camelia rakudo b03cc1: OUTPUT«True␤»
FROGGS r: my $a = "foo"; my $b = "foo"; say $a =:= $b
camelia rakudo b03cc1: OUTPUT«False␤»
pmurias r: my $a := "foo"; my $b := "foo"; say $a =:= $b;
camelia rakudo b03cc1: OUTPUT«True␤»
FROGGS sure
pmurias nqp: my $a := "foo"; my $b := "foo"; say($a =:= $b); 22:11
camelia nqp: OUTPUT«0␤»
FROGGS so literal things in a unit have just one container
s/things/strings/
but still: why *have to* ?
timotimo i cannot self.find_lexical('Perl6::Metamodel::SubsetHOW'), 'Metamodel::SubsetHOW' or 'SubsetHOW' 22:12
FROGGS for me it just sounds like an implementation detail, rather than a rule/fact/spec
timotimo and =:= Perl6::Metamodel::SubsetHOW doesn't seem to help at all
pmurias FROGGS: I feel we shouldn't distinguish "foo" and "foo" 22:13
timotimo but then =:= becomes a whole lot more expensive
FROGGS pmurias: but that is about the value
pmurias timotimo: no actually it becomes cheaper
FROGGS timotimo: do you meant to use find_symbol ?
timotimo er ... yes, i do 22:14
pmurias timotimo: the reason that in nqp ("foo" =:= "foo") == 0 is that we don't keep a constant table
timotimo no, i don't
pmurias and in nqp =:= basically compares memory addresses 22:15
timotimo that's still not helping me get this problem sorted out :)
pmurias timotimo: what's your problem?
timotimo my optimizer is trying to see if, when there's a p6store, the container on the right is compatible to the container on the left 22:16
i've used the ContainerDescriptor.of value for that 22:17
unfortunately, nqp::istype($foo, $bar) will execute the closure of $bar if it's a subset type
and since it'd be executed in the context of the optimizer, things from the setting are unavailable and i don't want to be executing these closures anyway
so i'm trying to see if it has the SubsetHOW, but i cannot figure out how to do that
pmurias can you check for ClassHOW or RoleHOW? 22:19
timotimo oh, i think i know what to do 22:20
pmurias so when the users use a custom DoCrazyStuffWhileTypeCheckingHOW things don't break 22:22
timotimo yay, i made it work 22:23
.WHAT was the key to victory
er, no, i spoke too soon
pmurias why can't use use find_lexical? 22:25
22:25 colomon joined
FROGGS maybe it doesnt work for longnames? 22:26
pmurias doesn't look like it does
so just looking finding Perl6 using find_lexical and extracting stuff from there should work? 22:28
timotimo ... huh? 22:30
it turns out the right way to do it is to .WHAT.HOW =:= Perl6::Metamodel::ClassHOW
now i need to check if that will give True for proper classes.
nah, that doesn't seem to help >_< 22:31
22:32 FROGGS left
timotimo i don't know what to do now :| 22:32
pmurias timotimo: if you use .WHAT.HOW =:= Perl6::Metamodel::ClassHOW you are comparing the ClassHOW in the setting of the compiler vs the ClassHOW in the setting of the program 22:36
22:37 crab2313 joined
timotimo oh 22:37
but i couldn't get the setting-internal one with any subset of the longname 22:38
i'm going home ... get some sleep. i'm super tired :| 22:41
pmurias likely a good idea ;) 22:42
timotimo yes. i don't think i can get this to work just by repeatedly banging my head against it 22:43
on the other hand, i can push the WIP up on github and hope jnthn has a brief look at it
jnthn: if you read this, the branch name is "analyze_poison" on github.com/timo/rakudo ; see the last commit 22:45
have a good time everybody!
22:56 crab2313 left 23:03 pmurias left, BenGoldberg joined, woolfy joined 23:25 dmol joined 23:39 fridim_ joined 23:43 dmol left 23:54 grondilu left 23:58 FROGGS joined