Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-08-10

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:02 eternaleye joined #perl6
00:05 FROGGS joined #perl6
00:08 lizmat joined #perl6
00:32 raiph joined #perl6
00:38 FROGGS joined #perl6
00:38 celesta joined #perl6
00:38 celesta ahoi #perl6
00:47 Vlavv joined #perl6
00:57 celesta if i write a compiler with parrot, can i use it from a perl 6 program?
00:58 jnthn airport &
01:01 JimmyZ celesta: you may want with MoarVM if you want to use it from a Perl 6 program
01:02 celesta JimmyZ: thanks, i will look into it
01:03 JimmyZ np
01:18 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
01:18 preflex yoleaux: you have 2 new messages. '/msg preflex messages' to read them.
01:19 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.
01:20 BenGoldberg .ud where is my coffee
01:20 yoleaux ENOTFOUND
01:30 raiph joined #perl6
01:41 jeff_s1 joined #perl6
01:47 BenGoldberg nqp: say( nqp::getcomp('nqp').backend.name )
01:47 camelia nqp: OUTPUT«parrot␤»
01:47 BenGoldberg nqp-jvm: say( nqp::getcomp('nqp').backend.name )
01:47 camelia nqp-jvm: OUTPUT«jvm␤»
01:49 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␤␤»
01:49 BenGoldberg r: say( nqp::getcomp('perl6').backend.name )
01:49 camelia rakudo 495602: OUTPUT«parrot␤»
01:49 BenGoldberg star: say( nqp::getcomp('perl6').backend.name )
01:49 camelia star 2013.02: OUTPUT«No such method 'backend' for invocant of type 'Perl6::Compiler'␤  in block  at /tmp/3m4Xdxz6Xh:1␤␤»
01:49 BenGoldberg star: say( nqp::getcomp('perl6') )
01:49 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␤␤»
01:49 BenGoldberg star: print( nqp::getcomp('perl6') )
01:49 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…
01:49 * BenGoldberg is confused
01:50 BenGoldberg How is a Perl6::Compiler object not an Any object?
01:51 BenGoldberg nom: nqp::getcomp('perl6').backend.name.say
01:51 camelia rakudo 495602: OUTPUT«parrot␤»
01:51 BenGoldberg b: nqp::getcomp('perl6').backend.name.say
01:51 camelia b 922500: OUTPUT«Cannot find sub nqp::getcomp␤  in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
01:55 JimmyZ BenGoldberg: NQP is not Perl 6
02:01 FROGGS joined #perl6
02:12 FROGGS joined #perl6
02:17 raiph joined #perl6
02:44 raiph joined #perl6
03:11 wtw joined #perl6
03:35 preflex_ joined #perl6
05:00 grondilu rn: my %h = <foo foo bar> Z=> <2 2 1>; .value /= 3 for %h; say %h
05:01 camelia rakudo 495602: OUTPUT«("foo" => "2", "bar" => "1").hash␤»
05:01 camelia ..niecza v24-88-g1f87209: OUTPUT«{"bar" => <1/3>, "foo" => <2/3>}␤»
05:01 grondilu niecza is right here, isn't it?
05:02 grondilu 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…
05:02 camelia ..rakudo 495602: OUTPUT«"foo" => 0.1␤»
05:08 jaldhar joined #perl6
05:09 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
05:10 camelia rakudo 495602, niecza v24-88-g1f87209: OUTPUT«1:4␤»
05:10 grondilu cool, I didn't know I could do that
05:44 gladys_27_indone joined #perl6
05:46 Gladys_27_frm_In hiii
05:48 zakalwe joined #perl6
05:48 zakalwe joined #perl6
05:48 crab2313 joined #perl6
05:50 Bella_Swan_love_ hyyy
05:50 Bella_Swan_love_ oii
05:52 Bella_Love_Rober iii
05:54 kaare_ joined #perl6
05:55 grondilu How many of you guys will be in Kiev?
05:55 sorear heh.  that's been a while
05:55 * sorear will not be in Kiev this month
06:01 moritz grondilu: http://act.yapc.eu/ye2013/talk/4925 the list of attendees should be a pretty complete list of #perl6 folks going to Kiev :-)
06:05 grondilu will http://act.yapc.eu/ye2013/talk/4912 be filmed?
06:06 grondilu (and/or http://act.yapc.eu/ye2013/talk/4926)
06:06 * TimToady is in Kiev right now...
06:06 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, ...
06:07 sorear o/ TimToady
06:10 * grondilu won't be in Kiev so he hopes most conferences will be recorded.
06:13 dmol joined #perl6
06:14 ingy hi TimToady
06:32 woolfy joined #perl6
06:46 jnthn o/ from Frankfurt airport
06:46 * jnthn took a few attempts to get the wifi captcha and now feels very robotic
06:55 FROGGS joined #perl6
06:56 FROGGS o/
06:57 jnthn o/ FROGGS
06:58 FROGGS jnthn: still awake? O.o
06:59 jnthn FROGGS: At Frankfurt airport waiting for connection and slide-hacking-ish :)
07:00 FROGGS ahh, hehe
07:00 * FROGGS hopes there will be live streams, but doubts it
07:02 FROGGS ohh, IO::Async::File is nice
07:02 FROGGS is this a common feature of other languages?
07:03 jnthn Well, I guess our async slurp is like the .Net ReadToEndAsync
07:03 jnthn But not sure it has an equivalent of the lines channel thing.
07:03 jnthn ooh, I should go find the gate, now they've said which one my flight has...
07:03 jnthn bbl
07:03 FROGGS see ya
07:04 FROGGS .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.
07:05 sorear o/ FROGGS, jnthn
07:06 FROGGS hi sorear
07:14 jnthn o/ sorear
07:14 * jnthn found his gate :)
07:51 _jaldhar joined #perl6
07:53 crab2313_ joined #perl6
08:35 tadzik o/ from WAW
08:38 dalek Perlito: 3f3ac31 | (Flavio S. Glock)++ | / (4 files):
08:38 dalek Perlito: Perlito5 - grammar - fix 'print BLOCK LIST'
08:38 dalek Perlito: review: https://github.com/fglock/Perlito/commit/3f3ac31e78
08:39 sorear o/ tadzik
08:48 tadzik sorear! o/
08:48 tadzik the airport situation is quite hilarous
08:49 tadzik 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 tadzik I think every single passenger from either flight is confused
08:51 xinming joined #perl6
08:52 tadzik to make it funnier, there are two other flights to Ukraine, also in neighbouring gates, also started boarding about now
08:54 FROGGS hehe, aisline trolls
08:54 FROGGS airline*
08:55 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 tadzik ...also, airport security riding segways looks quite funny
08:57 FROGGS U.S.-sized security guys?
08:57 tadzik hehe, no
08:58 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
08:58 FROGGS hehe
08:58 FROGGS >.<
08:59 tadzik Ha! "Boarding"
08:59 FROGGS maybe I mean U.S.-shaped :o)
08:59 tadzik more like Boaring
09:05 FROGGS jnthn: about async slurping, how would the syntax look like? "test.csv".slurp.lines>>.parse_csv_line ?
09:09 spider-mario joined #perl6
09:09 FROGGS hmmm, when thinking about that threads stuf... I could potentially calculate the fees at $work for several employees at once
09:10 FROGGS that would speed it up a lot, the machine has 16 cores
09:10 FROGGS (if the code wouldnt be more than 16 times slower than the current P5 code)
09:37 dalek Perlito: 8370a18 | (Flavio S. Glock)++ | / (4 files):
09:37 dalek Perlito: Perlito5 - grammar - parsing rules for sort()
09:37 dalek Perlito: review: https://github.com/fglock/Perlito/commit/8370a18ce9
10:12 Woodi joined #perl6
10:16 Rotwang joined #perl6
10:21 dalek Perlito: a147cf5 | (Flavio S. Glock)++ | / (5 files):
10:21 dalek Perlito: Perlito5 - grammar - tweak Apply node
10:21 dalek Perlito: review: https://github.com/fglock/Perlito/commit/a147cf5301
10:27 timotimo i wish to see a few livestreams as well
10:38 timotimo i only realize now they startbin two days rather than today
10:39 FROGGS yeah, the hackathon usually is before and after the conference days
10:39 FROGGS timotimo: so expect many messages from dalek :o)
10:45 pmurias joined #perl6
10:48 timotimo yup, looked at the schedule before i wrote that :)
11:02 crab2313 joined #perl6
11:04 dalek Perlito: d129472 | (Flavio S. Glock)++ | / (3 files):
11:04 dalek Perlito: Perlito5 - grammar - parsing rules for map() and sort()
11:04 dalek Perlito: review: https://github.com/fglock/Perlito/commit/d12947286a
11:13 dalek Perlito: ee9baec | (Flavio S. Glock)++ | / (3 files):
11:13 dalek Perlito: Perlito5 - grammar - use Apply.special_arg
11:13 dalek Perlito: review: https://github.com/fglock/Perlito/commit/ee9baec0f2
11:13 ggoebel joined #perl6
11:20 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 FROGGS 100000
11:20 FROGGS done
11:20 FROGGS real0m8.241s
11:20 FROGGS user0m16.416s
11:21 FROGGS (I love it :o)
11:21 FROGGS bbl
11:23 lizmat joined #perl6
11:23 Rotwang joined #perl6
11:34 dalek Perlito: abcb270 | (Flavio S. Glock)++ | / (4 files):
11:34 dalek Perlito: Perlito5 - grammar - use Apply.special_arg
11:34 dalek Perlito: review: https://github.com/fglock/Perlito/commit/abcb2709ac
11:35 timotimo cool beans, froggs :)
11:35 FROGGS[mobile] joined #perl6
11:38 woolfy joined #perl6
11:45 domidumont joined #perl6
11:58 domidumont joined #perl6
12:06 Rotwang joined #perl6
12:07 dalek Perlito: b1779df | (Flavio S. Glock)++ | / (4 files):
12:07 dalek Perlito: Perlito5 - grammar - #line
12:07 dalek Perlito: review: https://github.com/fglock/Perlito/commit/b1779dfa23
12:32 timotimo is flavio glock attending yapc:eu, too?
12:35 crab2313 joined #perl6
12:41 FROGGS[mobile] from reading his commits I'd guess so
12:42 bruges joined #perl6
12:43 vk___ joined #perl6
12:43 timotimo how do you get that from the commits? o_O
12:43 Maddingu1 joined #perl6
12:44 timotimo i finally started working on poison information gathering
12:45 tadzik1 joined #perl6
12:47 Rotwang joined #perl6
12:48 birdwindupbird joined #perl6
12:50 exodist_ joined #perl6
12:51 FROGGS[mobile] His commit rate increased dramatically
12:51 Rotwang joined #perl6
12:51 FROGGS[mobile] (conference driven developement that is)
12:53 timotimo feels like it has been increasing for a while now. but yeah, maybe he is indeed at the conference hacking away happily :)
12:54 timotimo kind of bummed he's not working on improving the perlito6 piece, but you can't have everything ;)
12:55 timotimo why the hell am i getting "Missing or wrong version of dependency 'src/stage2/QRegex.nqp'" when i try to run nqp?
12:56 timotimo oooh
12:56 timotimo i had an nqp running somewhere and that kept "make install" from replacing some files
12:56 timotimo m(
12:59 colomon joined #perl6
13:10 Rotwang joined #perl6
13:14 timotimo wat. how in the world did i break rakudo now?!
13:14 timotimo r: my $b = sub($arg) { say $arg }
13:14 camelia rakudo 495602: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/lCgMtuzG60â�¤Variable '$arg' is not declaredâ�¤at /tmp/lCgMtuzG60:1â�¤------> [32mmy $b = sub($arg[33mâ��[31m) { say $arg }[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
13:14 timotimo i'm pretty sure this worked before
13:15 timotimo it does work with an additional space after sub, that explains it!
13:15 timotimo i was calling "sub" instead of creating one
13:16 lizmat r: my $b = -> $argc { say $arg }; say $b; $b("foo")
13:16 camelia rakudo 495602: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/0H_RnlTQd2â�¤Variable '$arg' is not declaredâ�¤at /tmp/0H_RnlTQd2:1â�¤------> [32mmy $b = -> $argc { say $arg[33mâ��[31m }; say $b; $b("foo")[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
13:16 lizmat r: my $b = -> $arg { say $arg }; say $b; $b("foo")
13:16 camelia rakudo 495602: OUTPUT«Block.new()␤foo␤»
13:16 lizmat why use sub?
13:30 timotimo heyo lizmat :)
13:30 timotimo i took that code from a test case that my code made to fail
13:30 timotimo oh make ~_~
13:30 lizmat ok, I was just wondering
13:30 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!"
13:31 * lizmat is recovering from an almost heatstroke while strolling outside for an hour
13:34 timotimo time to run some spectests \o/
13:34 timotimo got a little ahead of yourselft here? hope you'll recover soon, lizmat :)
13:35 lizmat aircoed room helps millions  :-)
13:37 jaffa4 joined #perl6
13:37 timotimo huh. how do i tell the spectest run to use --optimize=3?
13:37 jaffa4 hi
13:37 jaffa4 is anyone in kiev?
13:38 benabik It has a population of a couple million, so I hope someone is there.
13:39 timotimo a whole bunch of #perl6 folk are in kiev
13:39 jaffa4 yes, but it is not evident who
13:40 timotimo i know that froggs, tadzik, diakopter, jnthn, timtoady and moritz are (or are going to be) in kiev for yapc::eu
13:46 timotimo can i rely on every occurence of OUTER to be accompanied by a nqp::who?
13:50 timotimo hm, nqp::who is probably what gets generated whenever there is a ::
13:53 timotimo r: my $a = "what?"; sub foo { sub bar { OUTER::OUTER::<$a> = "hi" }; bar }; foo; say $a
13:53 camelia rakudo 495602: OUTPUT«hi␤»
13:53 timotimo r: my $a = "what?"; sub foo { sub bar { my $foo = "OUTER"; OUTER::{$foo}::<$a> = "hi" }; bar }; foo; say $a
13:53 camelia rakudo 495602: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_NFzzDsZB8â�¤Two terms in a rowâ�¤at /tmp/_NFzzDsZB8:1â�¤------> [32mb bar { my $foo = "OUTER"; OUTER::{$foo}[33mâ��[31m::<$a> = "hi" }; bar }; foo; say $a[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statem…
13:53 timotimo r: my $a = "what?"; sub foo { sub bar { my $foo = "OUTER"; OUTER::{$foo}<$a> = "hi" }; bar }; foo; say $a
13:53 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␤␤»
13:54 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␤»
13:54 timotimo that's pretty bad!
13:55 timotimo if an OUTER is used *anywhere*, i can just pack up and leave. forever.
13:56 dalek roast: 1bb9bd2 | (Elizabeth Mattijsen)++ | S32-scalar/perl.t:
13:56 dalek roast: Add some tests for scalar roundtripping
13:56 dalek roast: review: https://github.com/perl6/roast/commit/1bb9bd25f6
13:57 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 rakudo/nom: b03cc1c | (Elizabeth Mattijsen)++ | t/spectest.data:
13:57 dalek rakudo/nom: Also run new scalar tests
13:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b03cc1c06b
14:00 GlitchMr jvm: say 42
14:00 GlitchMr Can I eval Rakudo JVM code?
14:01 timotimo not on the bot :(
14:01 timotimo do you want me to go ahead and do that? i can compile a current jakudo for you
14:02 GlitchMr Well, I would like to experiment somewhat with Rakudo JVM
14:02 GlitchMr But I cannot manage to run it
14:03 timotimo if you promise to be nice, i'll give you a shell with a working jakudo
14:03 GlitchMr No problem, :-)
14:03 GlitchMr I'm not some random abuser
14:04 GlitchMr I would like to have it working on my computer, but whatever.
14:04 TimToady .oO(he's a very specific abuser?)
14:04 timotimo maybe i can help you about installing it, though
14:04 timotimo what kind of trouble are you having?
14:04 GlitchMr Well, actually, I'm on Windows right now, so well...
14:04 timotimo TimToady: in general, those are almost the only ones you really have to worry about
14:04 timotimo virtualbox can help
14:05 GlitchMr I know
14:05 GlitchMr I'm usually on Linux
14:05 GlitchMr Anyway, when I tried to install it in Linux, I had problem with configuring NQP for JVM
14:05 JimmyZ what's problem with windows?
14:06 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)
14:06 timotimo wait. this is java. i could just give you my jar files, couldn't i?
14:06 GlitchMr Possibly...
14:06 GlitchMr I'm not in home, so I wouldn't rather install Rakudo JVM right now.
14:07 GlitchMr I wanted to experiment with it using bot.
14:07 timotimo right :|
14:07 GlitchMr I probably could install it on my server, but I'm not sure whatever it would work with Sun JVM.
14:08 GlitchMr It's already difficult enough to write Perl 6 changes article when you aren't in home ;-)
14:09 GlitchMr (at least GitHub has text editor)
14:09 timotimo does "sun jvm" mean "the jvm version that was current before oracle took over sun"?
14:10 diakopter probably just means oracle jvm
14:10 GlitchMr Actually, I meant IBM JVM
14:10 GlitchMr I fail
14:11 diakopter oracle jvm installs easily on most linuxes
14:11 GlitchMr (I really fail)
14:11 diakopter oracle-java7-installer on ubuntu
14:11 GlitchMr My server has really low ammounts of memory, and Oracle JVM simply fails to run "Hello, world!".
14:12 timotimo "really low amounts of memory" == "no jakudo fun"
14:12 timotimo i'm having some trouble compiling jakudo myself, though
14:12 GlitchMr I guess it makes sense.
14:12 timotimo segfault in my jvm \o/
14:12 diakopter hah
14:12 GlitchMr 256MB of RAM. Enough to run Minecraft server, but that's about it.
14:13 timotimo r: my $a = "what?"; sub foo { OUTER::<$a> := "hi" }; foo; say $a; $a = "boop" say $a;
14:13 camelia rakudo b03cc1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/RnoCD1Aux4â�¤Two terms in a rowâ�¤at /tmp/RnoCD1Aux4:1â�¤------> [32m$a> := "hi" }; foo; say $a; $a = "boop" [33mâ��[31msay $a;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or met…
14:13 timotimo r: my $a = "what?"; sub foo { OUTER::<$a> := "hi" }; foo; say $a; $a = "boop"; say $a;
14:13 camelia rakudo b03cc1: OUTPUT«hi␤Cannot modify an immutable value␤  in block  at /tmp/bfIOkzJoub:1␤␤»
14:13 timotimo mhm, so an usage of OUTER could also imply a BIND poison ...
14:16 GlitchMr (I hope Niecza isn't dead, I haven't seen updates in it for a long time)
14:17 timotimo setting compile time \o/
14:28 xilo joined #perl6
14:29 timotimo hmm, getting sundry test failures
14:31 timotimo r: class Foo { has $blah }; my Foo $f .= new; $foo.blah++;
14:31 camelia rakudo b03cc1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/H0GJhKGpS0â�¤Variable '$foo' is not declaredâ�¤at /tmp/H0GJhKGpS0:1â�¤------> [32ms $blah }; my Foo $f .= new; $foo.blah++[33mâ��[31m;[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤        postfixâ�¤Â»â€¦
14:31 synopsebot Link: http://perlcabal.org/syn/S0.html#line_1
14:32 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␤␤»
14:32 timotimo r: class Foo { has $.blah }; my Foo $f .= new; $f.blah++;
14:32 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␤␤»
14:32 timotimo locally ... that seems to pass
14:33 timotimo but my optimization isn't changing the stuff
14:35 timotimo 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:38 Psyche^_ joined #perl6
14:59 rindolf joined #perl6
15:00 lizmat r: say Int(1).perl # TimToady: shouldn't that be "Int(1)" ?
15:00 camelia rakudo b03cc1: OUTPUT«1␤»
15:01 timotimo huh, why?
15:01 timotimo it's the same thing as "1"
15:01 timotimo except for the Want mechanism in between
15:02 lizmat r: my Int @a=1; say @a.perl
15:02 camelia rakudo b03cc1: OUTPUT«Array[Int].new(1)␤»
15:02 lizmat here the type info is preserved
15:02 lizmat why isn't it with scalars ?
15:02 lizmat r: my Int $a=1; say $a.perl
15:02 camelia rakudo b03cc1: OUTPUT«1␤»
15:03 TimToady r: say 1.WHAT
15:03 camelia rakudo b03cc1: OUTPUT«(Int)␤»
15:04 TimToady looks like 1 is already an Int, so why convert it to one?
15:04 TimToady the purpose of .perl is to produce valid Perl 6 code, not to reproduce every possible bit of information you might annotate it with...
15:05 lizmat but the idea is that you should be able to roundtrip
15:05 lizmat r: my Int @a=1; say @a.perl.eval.perl.say
15:05 camelia rakudo b03cc1: OUTPUT«Array[Int].new(1)␤True␤»
15:05 lizmat r: my Int @a=1; say @a.perl.eval.perl
15:06 camelia rakudo b03cc1: OUTPUT«Array[Int].new(1)␤»
15:06 lizmat in this case it is preserved
15:06 JimmyZ r: say Str(1).perl
15:06 camelia rakudo b03cc1: OUTPUT«"1"␤»
15:06 lizmat r: my Int $a=1; say $a.perl.eval.perl
15:06 camelia rakudo b03cc1: OUTPUT«1␤»
15:07 lizmat afk&
15:11 timotimo building rakudo for a benchmark run
15:12 timotimo 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:13 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 lizmat really afk&
15:13 timotimo it's the difference between reproducing a value or a container
15:14 timotimo the Int you're refering to is part of the container, not the value, afaict
15:14 timotimo so the round trip equivalent would be $a.perl => "my Int $a = 1"
15:15 kst` joined #perl6
15:15 TimToady r: my Int $a=1; say VAR($a).perl
15:15 camelia rakudo b03cc1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/rx6srdrqjQâ�¤Undeclared name:â�¤    VAR used at line 1â�¤â�¤Â»
15:15 TimToady remember that $a automatically derefs
15:22 FROGGS[mobile] joined #perl6
15:22 FROGGS[mobile] Hi TimToady
15:23 FROGGS[mobile] TimToady: is the from adverb of the use statement about languages or interpreter binaries?
15:24 FROGGS[mobile] 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 :|
15:25 FROGGS[mobile] :/
15:25 TimToady FROGGS[mobile]: I'm fine with uppercase
15:26 FROGGS[mobile] TimToady: awesome
15:27 FROGGS[mobile] jnthn: see? :o)
15:27 ajr joined #perl6
15:28 * [Coke] watches an interview with TimToady and learns stuff.
15:28 timotimo is that new?
15:30 rindolf joined #perl6
15:30 * TimToady should watch it to see if he learns stuff...
15:31 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 mst weird given how much I enjoy it normally :D
15:31 [Coke] Published on June 29, 2013
15:34 timotimo mst: you need some really good speakers to really appreciate the volume of your voice :)
15:39 FROGGS[mobile] sad that only a few videos from yapcna are online
15:41 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 timotimo if there's no good camera in there, at least have the decency to prop up a smartphone camera or something :(
15:42 mst there was streaming of most tracks
15:42 FROGGS[mobile] well, everything got recorded
15:42 mst I'm not sure why the videos haven't been processed
15:42 mst this is a regular problem actually
15:42 timotimo OK
15:43 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?
15:43 mst I've thrown volunteers at it repeatedly and that doesn't seem to help
15:43 mst I really don't understand what makes the problem so intransigent
15:44 FROGGS[mobile] on wednesday I turned on one camera at 11am, so before that it didnt record the speakers
15:44 FROGGS[mobile] was a bit misorganized in austin
15:50 timotimo wow, i must be measuring this wrong
15:51 timotimo http://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.
15:52 mst diakopter: what?
15:52 mst diakopter: so we don't even have the original raw video?
15:52 diakopter mst: we didn't record them locally; were depending on livestream
15:53 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
15:53 diakopter no clue how well that's going or where it stands
15:53 diakopter last I heard was a week or two ago
15:53 * mst sighs
15:54 diakopter I have 2 day-rooms worth, no clue which days or rooms, in .mp4
15:54 timotimo ;_;
15:54 diakopter 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
15:54 diakopter I offered them to todd weeks ago; no reply
15:56 diakopter 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 diakopter I felt I had the right to since I paid for the accounts and felt reponsible for giving out the password
15:56 FROGGS[mobile] Sure
15:57 FROGGS[mobile] Can I download the mp4 from somewhere?
15:57 diakopter sure, i'll privmsg you
15:57 FROGGS[mobile] Can you email it?
15:58 * timotimo has a fairly new cpu in his desktop, but alas no intel quicksync :(
15:58 FROGGS[mobile] Quicksync?
15:59 timotimo some built-in video encoding stuff on their cpus or gpus or something
15:59 FROGGS[mobile] Ahh
16:06 crab2313 joined #perl6
16:14 woolfy joined #perl6
16:15 lizmat joined #perl6
16:24 timotimo i'm imagining the speedup came when jnthn implemented compile-time inlining for calls with optional parameters rather than my optimisation
16:24 timotimo but i'd be very happy if it turns out that my stuff improved speed, too
16:26 lizmat joined #perl6
16:30 timotimo just as i feared, when i compare against a newer revision, the differences go away
16:31 timotimo oh well. better come up with some better optimisations!
16:35 woolfy joined #perl6
16:38 FROGGS[mobile] ó.ò
16:50 cognominal joined #perl6
16:52 dalek Perlito: 9e2b1b7 | (Flavio S. Glock)++ | / (4 files):
16:52 dalek Perlito: Perlito5 - grammar - optimize
16:52 dalek Perlito: review: https://github.com/fglock/Perlito/commit/9e2b1b7c90
17:10 FROGGS joined #perl6
17:34 jaffa4 joined #perl6
17:49 timotimo d'oh
17:49 timotimo my changes ... they do nothing :(
17:52 timotimo we must invent new benchmarks that show that my changes have beneficial effects!
18:07 ssutch joined #perl6
18:18 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:19 timotimo japhb_: in other news, the "latest-stuff" branch is all i worked on
18:20 colomon joined #perl6
18:21 timotimo japhb_: but that's not the branch i'm pull-requesting
18:21 timotimo 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.
18:24 ingy I present you with the Perl 6 Bash Command of the Day:
18:24 ingy git clone --recursive git@github.com:ingydotnet/git-hub; (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
18:24 ingy get all of perl6 in one line!
18:26 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:32 mtk joined #perl6
18:32 * moritz has arrived in Kiev
18:40 timotimo looking forward to some great work being done :)
18:40 timotimo are there any focus points for you, Moritz?
18:41 timotimo except your slides ;)
18:44 moritz timotimo: meeting people in meat space
18:45 timotimo that is certainly a good activity
18:46 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:47 * grondilu forgot a question mark and a semi-colon, but you get the idea
18:48 * timotimo doesn't see the underscore there
18:49 timotimo ingy, do you have plans to fix testml and yaml for p6 in the future?.
18:50 timotimo the last time i looked at yestml for p6 it disagreed with the testml spec
18:51 timotimo afk
18:55 not_gerd joined #perl6
18:57 not_gerd grondilu: yes, some of the conventions used by moarvm are a bit strange
18:59 not_gerd leading underscores are actually reserved for the language implementation (compiler builtins, libc)
19:00 not_gerd eg new C language keyword start with an underscore (_Bool, _Noreturn, _Complex,...), so you shouldn't use them in user code
19:05 preflex joined #perl6
19:22 grondilu not_gerd: well, a neat exercice in Perl6 would be to write a program that translates this into an other convention.
19:23 not_gerd see https://gist.github.com/gerdr/6201767 for how I'd do it
19:27 lizmat joined #perl6
19:27 diakopter grondilu its so all the raw structs are cobsistent and all the typedefs to ones withiut underscores mean pointers tto them
19:27 diakopter stuoid phkne
19:27 diakopter stupid phone
19:27 diakopter keyboard
19:28 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:29 grondilu 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
19:29 not_gerd diakopter: you can forward-declare the typedef names
19:29 not_gerd eg add the typedef to the first lines of 6model.h
19:30 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
19:30 grondilu not_gerd: your code looks cool but kind of a hack.  It's tough to understand.
19:30 diakopter yes I discovered that
19:30 not_gerd grondilu: forward declarations are a well-known C idiom
19:30 not_gerd you don'T need to see a type's definition to use derived pointers, only it's name
19:31 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.
19:31 diakopter there are some in a few places already in my branches
19:31 diakopter well, locally
19:32 grondilu like:  typedef struct foo foo; struct foo { foo next; }  // <- does not work
19:32 grondilu oops
19:32 diakopter Well the name sboukd be different
19:32 not_gerd https://gist.github.com/gerdr/768564c7282f2bc7a48b
19:33 not_gerd grondilu: your example misses the *
19:33 geekosaur that wouldn't work anyway, how does a struct contain itself? struct pointer should work
19:35 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:36 not_gerd forgot to give the typedef a name
19:36 not_gerd see updated gist
19:42 Rotwang joined #perl6
19:45 grondilu not_gerd: yeah it would be clearer to use this kind of forward declaration for recursive structures.
19:45 grondilu because all these underscores are confusing, imho.
19:46 grondilu and it would make type declarations shorter.
19:52 ingy timotimo: certainly. I plan to be spending more time on p6 in the near future
19:53 * ingy adds {testml,yaml}.pm6 to the stack
19:55 timotimo cool
20:12 bruges joined #perl6
20:15 timotimo i don't feel like p6storeunchecked has any difference in performance from p6store at all whatsoever
20:15 timotimo i must have done the mapping wrong or something.
20:16 ingy timotimo: what's that? :)
20:16 moritz timotimo: try to use a custom subtype that's very expensive to check
20:17 timotimo oh, that's a good idea
20:19 timotimo i am having trouble setting up a subtype ...
20:19 timotimo r: subtype Frob of Int where sleep 1; my Frob $a = 10;
20:19 camelia rakudo b03cc1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/vHXzv7vyBAâ�¤Two terms in a rowâ�¤at /tmp/vHXzv7vyBA:1â�¤------> [32msubtype Frob of Int [33mâ��[31mwhere sleep 1; my Frob $a = 10;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or…
20:21 timotimo i thought it was done like that.
20:21 timotimo oooh
20:21 timotimo sub*set*
20:21 timotimo r: sleep 1
20:21 camelia rakudo b03cc1:  ( no output )
20:22 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␤␤»
20:22 timotimo o_O
20:22 timotimo locally i just get could not found sub sleep
20:22 timotimo oh my. that comes from the optimizer. that's not a good sign.
20:23 FROGGS r: say sleep 1
20:23 camelia rakudo b03cc1: OUTPUT«1␤»
20:24 FROGGS r: say sleep 5
20:24 camelia rakudo b03cc1: OUTPUT«5␤»
20:24 FROGGS okay
20:25 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␤␤»
20:26 timotimo ouch :)
20:33 timotimo oh
20:34 timotimo 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 timotimo that would be highly unfortunate :)
20:35 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␤␤»
20:35 moritz r: subset Frob of Int where { 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/JYTqM95MsT:1␤␤»
20:35 moritz r: sleep 1
20:35 camelia rakudo b03cc1:  ( no output )
20:40 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␤␤»
20:41 timotimo maybe it needs to be boxed for that to work?
20:41 timotimo r: subset Frob of Int where { nqp::box_i(nqp::sleep(1), 'Int') }; my Frob $ = 10;
20:41 camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤  in block  at /tmp/ZqpERdweoZ:1␤␤»
20:41 timotimo r: subset Frob of Int where { so nqp::sleep(1) }; my Frob $ = 10;
20:41 camelia rakudo b03cc1: OUTPUT«Null PMC access in get_bool()␤  in block  at /tmp/BZkCjdJcnL:1␤␤»
20:41 timotimo r: subset Frob of Int where { True }; my Frob $ = 10;
20:41 camelia rakudo b03cc1:  ( no output )
20:41 timotimo r: subset Frob of Int where { 1 + 1; 2 }; my Frob $ = 10;
20:42 camelia rakudo b03cc1:  ( no output )
20:42 timotimo hm.
20:55 not_gerd left #perl6
21:00 timotimo i can probably introspect a thing to figure out if it's a subset by asking its HOW
21:26 pmurias timotimo: re optimiser you are doing you optimalisations on the QAST->QAST level?
21:26 timotimo yes
21:29 thou joined #perl6
21:29 timotimo were you going to tell me this is a terrible idea? :)
21:30 timotimo or were you going to cheer because it'd work on the js backend as well?
21:40 grondilu rn: printf "%u", 2**32
21:40 camelia niecza v24-88-g1f87209: OUTPUT«4294967296»
21:40 camelia ..rakudo b03cc1: OUTPUT«0»
21:41 grondilu rakudo is right here, isn't it?
21:41 grondilu r: run printf "%u" 4294967296
21:41 camelia rakudo b03cc1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8OkyFn292vâ�¤Two terms in a rowâ�¤at /tmp/8OkyFn292v:1â�¤------> [32mrun printf "%u" [33mâ��[31m4294967296[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        state…
21:42 timotimo what is run?
21:42 grondilu r: say qx{printf "%u" 4294967296}
21:42 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␤␤»
21:43 dalek rakudo/hyper_threaded: 71f8958 | (Tobias Leich)++ | src/ (2 files):
21:43 dalek rakudo/hyper_threaded: first working threaded @a >>+<< @b
21:43 dalek rakudo/hyper_threaded:
21:43 dalek rakudo/hyper_threaded: There are still some quirks that need to be refactored nicely. I just
21:43 dalek rakudo/hyper_threaded: hope that this could be the base for parallel operations on parrot backend.
21:43 dalek rakudo/hyper_threaded: review: https://github.com/rakudo/rakudo/commit/71f8958169
21:44 grondilu rn: printf "%u", 2**64
21:44 camelia rakudo b03cc1: OUTPUT«0»
21:44 camelia ..niecza v24-88-g1f87209: OUTPUT«18446744073709551616»
21:44 ssutch joined #perl6
21:44 grondilu rn: printf "%u", 2**100
21:44 camelia rakudo b03cc1: OUTPUT«0»
21:44 camelia ..niecza v24-88-g1f87209: OUTPUT«1267650600228229401496703205376»
21:45 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
21:51 pmurias timotimo: the things below QAST (like JAST) don't seem very to do transformations on
21:52 pmurias timotimo: and we definitely want to have things like constant folding
21:52 timotimo don't seem very ... what?
21:52 pmurias * easy
21:52 timotimo agreed
21:52 timotimo fwiw, constant folding is already implemented
21:53 pmurias have you been able to do any significant optimalisations?
21:53 timotimo me personally ... just one
21:53 timotimo there's an optimisation that turns simple junctions into short-ciruit ors
21:54 timotimo if $x == -1 | 0 | 1  <- same thing as $x == -1 || $x == 0 || $x == 1
21:54 timotimo nqp: say(1 !=:= NQPMu)
21:54 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)␤»
21:54 timotimo nqp: say(1 =!= NQPMu)
21:54 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)␤»
21:54 timotimo nqp: say(1 !=== NQPMu)
21:54 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)␤»
21:55 timotimo how do i negate =:=?
21:55 timotimo nqp: say(1 =:= NQPMu)
21:55 camelia nqp: OUTPUT«0␤»
21:55 * pmurias reads NQP::Grammar
21:55 FROGGS nqp: say( !(1 =:= NQPMu) )
21:55 camelia nqp: OUTPUT«1␤»
21:55 FROGGS :o)
21:55 timotimo that's what i did now
21:55 timotimo also, guten abend froggs :)
21:55 FROGGS *g*
21:56 FROGGS hi
21:57 pmurias timotimo: nqp doesn't seem to have metaops
21:58 timotimo well, i thought there was a negation of =:=
22:00 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
22:00 timotimo what's wrong with it?
22:00 timotimo you think it should be =^.^= instead?
22:01 pmurias timotimo: I'm trying to remember
22:02 FROGGS I dont see a negation for =:=
22:03 FROGGS hmmm, my branch brakes @a >>+>> 1
22:03 timotimo breaks or brakes?
22:03 FROGGS breaks
22:03 pmurias nqp: say(nqp::eqaddr("foo","foo"))
22:03 camelia nqp: OUTPUT«0␤»
22:03 FROGGS (I can't guarantee the order of the chars while hacking on threads)
22:03 pmurias nqp: say("foo" =:= "foo")
22:03 camelia nqp: OUTPUT«0␤»
22:04 timotimo :D
22:04 timotimo yeah no i can *not* get this to work >_<
22:04 FROGGS pmurias: well, these are two different containers, no?
22:04 FROGGS or storage locations or whatever
22:05 timotimo yeah, they are
22:05 pmurias that depends
22:06 timotimo i'm trying something entirely else though :)
22:06 pmurias r: say("foo" =:= "foo")
22:06 camelia rakudo b03cc1: OUTPUT«True␤»
22:06 FROGGS yeah, they could be the same, but I think they dont have to
22:06 pmurias in Perl6 they have to
22:07 FROGGS why *have to* ?
22:08 timotimo that's weird
22:08 pmurias because those are identical things
22:08 timotimo er ... okay?
22:08 FROGGS its content is identical
22:08 timotimo i thought =:= is "bound to the same container"
22:08 FROGGS r: my $a = "foo"; say $a =:= "foo"
22:08 camelia rakudo b03cc1: OUTPUT«False␤»
22:09 FROGGS still identical values
22:09 pmurias you are comparing the $a container with a "foo" string
22:09 pmurias we don't distinguish different "foo" strings
22:10 FROGGS r: my $a = "foo"; my $b = "foo"; say "foo" =:= "foo"
22:10 camelia rakudo b03cc1: OUTPUT«True␤»
22:10 FROGGS r: my $a = "foo"; my $b = "foo"; say $a =:= $b
22:10 camelia rakudo b03cc1: OUTPUT«False␤»
22:10 pmurias r: my $a := "foo"; my $b := "foo"; say $a =:= $b;
22:10 camelia rakudo b03cc1: OUTPUT«True␤»
22:10 FROGGS sure
22:11 pmurias nqp: my $a := "foo"; my $b := "foo"; say($a =:= $b);
22:11 camelia nqp: OUTPUT«0␤»
22:11 FROGGS so literal things in a unit have just one container
22:11 FROGGS s/things/strings/
22:11 FROGGS but still: why *have to* ?
22:12 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
22:12 timotimo and =:= Perl6::Metamodel::SubsetHOW doesn't seem to help at all
22:12 pmurias FROGGS: I feel we shouldn't distinguish "foo" and "foo"
22:13 timotimo but then =:= becomes a whole lot more expensive
22:13 FROGGS pmurias: but that is about the value
22:13 pmurias timotimo: no actually it becomes cheaper
22:13 FROGGS timotimo: do you meant to use find_symbol ?
22:14 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
22:14 timotimo no, i don't
22:15 pmurias and in nqp =:= basically compares memory addresses
22:15 timotimo that's still not helping me get this problem sorted out :)
22:15 pmurias timotimo: what's your problem?
22:16 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:17 timotimo i've used the ContainerDescriptor.of value for that
22:17 timotimo unfortunately, nqp::istype($foo, $bar) will execute the closure of $bar if it's a subset type
22:17 timotimo 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
22:17 timotimo so i'm trying to see if it has the SubsetHOW, but i cannot figure out how to do that
22:19 pmurias can you check for ClassHOW or RoleHOW?
22:20 timotimo oh, i think i know what to do
22:22 pmurias so when the users use a custom DoCrazyStuffWhileTypeCheckingHOW things don't break
22:23 timotimo yay, i made it work
22:23 timotimo .WHAT was the key to victory
22:23 timotimo er, no, i spoke too soon
22:25 pmurias why can't use use find_lexical?
22:25 colomon joined #perl6
22:26 FROGGS maybe it doesnt work for longnames?
22:26 pmurias doesn't look like it does
22:28 pmurias so just looking finding Perl6 using find_lexical and extracting stuff from there should work?
22:30 timotimo ... huh?
22:30 timotimo it turns out the right way to do it is to .WHAT.HOW =:= Perl6::Metamodel::ClassHOW
22:30 timotimo now i need to check if that will give True for proper classes.
22:31 timotimo nah, that doesn't seem to help >_<
22:32 timotimo i don't know what to do now :|
22:36 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:37 crab2313 joined #perl6
22:37 timotimo oh
22:38 timotimo but i couldn't get the setting-internal one with any subset of the longname
22:41 timotimo i'm going home ... get some sleep. i'm super tired :|
22:42 pmurias likely a good idea ;)
22:43 timotimo yes. i don't think i can get this to work just by repeatedly banging my head against it
22:43 timotimo on the other hand, i can push the WIP up on github and hope jnthn has a brief look at it
22:45 timotimo jnthn: if you read this, the branch name is "analyze_poison" on github.com/timo/rakudo ; see the last commit
22:45 timotimo have a good time everybody!
23:03 BenGoldberg joined #perl6
23:03 woolfy joined #perl6
23:25 dmol joined #perl6
23:39 fridim_ joined #perl6
23:58 FROGGS joined #perl6

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

Perl 6 | Reference Documentation | Rakudo