Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-04-17

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:36 ingy TimToady: yo!
00:36 ingy TimToady: my perl script just counted that you have 872 commits to rosettacode
00:44 ingy TimToady: you are the 25th most prolific contributor!
00:54 thou joined #perl6
01:05 anuby joined #perl6
01:09 hypolin joined #perl6
01:29 Psyche^ joined #perl6
01:47 labster joined #perl6
02:01 thou joined #perl6
02:02 dalek roast: 2fcdbe2 | (Brent Laabs)++ | S32-io/io-path.t:
02:02 dalek roast: add||change tests for new IO::Path spec
02:02 dalek roast: review: https://github.com/perl6/roast/commit/2fcdbe2ae1
02:02 dalek roast: 022a969 | (Brent Laabs)++ | S (5 files):
02:02 dalek roast: Merge branch 'master' of github.com:perl6/roast
02:02 dalek roast: review: https://github.com/perl6/roast/commit/022a9699c2
02:07 lustlife joined #perl6
02:17 hypolin joined #perl6
02:38 labster *sigh* one of these days, I'm going to have to learn how to use git.
02:50 hypolin joined #perl6
02:54 hypolin joined #perl6
02:56 hypolin joined #perl6
02:56 preflex joined #perl6
02:57 hypolin joined #perl6
03:10 fgomez joined #perl6
03:24 * [Coke] finds a gather/take bug.
03:26 adu_ joined #perl6
03:34 dalek roast: ef15dae | coke++ | S04-statements/gather.t:
03:34 dalek roast: open a ticket for RT #117635
03:34 dalek roast: review: https://github.com/perl6/roast/commit/ef15dae4e9
03:38 * [Coke] ponders digging into GatherIter, and quickly just punts to pmichaud.
03:44 dalek rakudo/nom: 4109be8 | coke++ | INSTALL.txt:
03:44 dalek rakudo/nom: RT #76828 - document memory build requirements.
03:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4109be8905
03:52 rhinux_ joined #perl6
04:06 cognominal joined #perl6
04:12 SHH-2 joined #perl6
04:14 SHH-2 hello :)
04:41 diakopter hi
04:50 colomon joined #perl6
05:20 yoleaux joined #perl6
05:48 crab2313 joined #perl6
05:52 FROGGS joined #perl6
05:53 frdmn joined #perl6
05:53 FROGGS morning
05:56 diakopter hi
05:57 domidumont joined #perl6
06:10 rindolf joined #perl6
06:12 rindolf left #perl6
06:17 DQP joined #perl6
06:18 Heather joined #perl6
06:32 domidumont joined #perl6
07:08 baest joined #perl6
07:17 fgomez joined #perl6
07:19 hoelzro morning #perl6
07:20 Heather left #perl6
07:20 FROGGS morning hoelzro
07:21 denisboyun_ joined #perl6
07:31 labster hello
07:42 FROGGS hi labster
07:44 labster FROGGS o/
07:47 [0xF] joined #perl6
07:48 [0xF] Hello, is there anyone to answer a few beginner's questions about perl6 ?
07:48 FROGGS [0xF]: ask
07:48 tadzik sure :)
07:49 * FROGGS .oO( BOOOM! the first-level monster grows to his full height! )
07:49 [0xF] 1. I've seen code such as my $i := 0; $i := $i + 1; How is it different from = and ++ ?
07:49 [0xF] I mean my $i = 0; $i++
07:49 FROGGS [0xF]: := is binding, is it possible that you've seen that in nqp code?
07:50 FROGGS nqp only support binding
07:50 kurahaupo joined #perl6
07:50 FROGGS *supports
07:50 [0xF] probably yes
07:51 [0xF] but it's also valid perl6?
07:51 FROGGS r: my $i := 0; $i := $i + 1
07:51 camelia rakudo 4109be:  ( no output )
07:51 tadzik it is
07:51 FROGGS r: my $i := 0; $i++ # boom
07:51 camelia rakudo 4109be: OUTPUT«Cannot modify an immutable value␤  in sub postfix:<++> at src/gen/CORE.setting:3284␤  in sub postfix:<++> at src/gen/CORE.setting:1772␤  in block  at /tmp/25Y7aHkgJv:1␤␤»
07:51 tadzik it just binds the value to the variable name, without a container for it
07:51 ilbot6 joined #perl6
07:51 FROGGS [0xF]: my boom example shows the difference between assignment
07:52 arnsholt It's worth noting that "my int $x = 0; $x++" won't work either in Rakudo, ATM
07:52 tadzik I thought someone wrote a nice blog post explaining all that recently. Wasn't that moritz++?
07:53 [0xF] arnsholt: it works for me
07:53 [0xF] s/int/Int/
07:53 arnsholt Yeah, with Int it'll work
07:53 FROGGS ya, was moritz
07:53 [0xF] tadzik: url please
07:53 arnsholt r: my int $x = 0; $x++;
07:53 camelia rakudo 4109be: OUTPUT«Cannot modify an immutable value␤  in sub postfix:<++> at src/gen/CORE.setting:3284␤  in sub postfix:<++> at src/gen/CORE.setting:1772␤  in block  at /tmp/I7rYW7Ds_A:1␤␤»
07:53 tadzik I can never find anything on his website
07:54 moritz I did?
07:54 * moritz can't remember writing it
07:54 ilbot6 joined #perl6
07:54 arnsholt int is a native type, and there's a bug (involving containers) with the modifying ops and natives
07:55 tadzik ah, there we go. Wasn't a blog post
07:55 tadzik [0xF]: http://doc.perl6.org/language/containers
07:55 [0xF] thx
07:56 [0xF] question #2: sub foo(Int $x is copy) { $x = 5; } f(1); # Cannot assign to a non-container
07:56 tadzik r: sub foo(Int $x is copy) { $x = 5; } f(1);
07:56 camelia rakudo 4109be: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/MQCImBVir3:1�------> [32msub foo(Int $x is copy) { $x = 5; } [33m�[31mf(1);[0m�    expecting any of:�        postfix�        statement end�        statement modifier�        statement modifier loop�     …
07:56 tadzik r: sub foo(Int $x is copy) { $x = 5; }; f(1);
07:56 camelia rakudo 4109be: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:�    f used at line 1��»
07:56 tadzik r: sub foo(Int $x is copy) { $x = 5; }; foo(1);
07:56 moritz [0xF]: looks like a bug to me
07:56 camelia rakudo 4109be: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/eHvKDUJqEz:1␤␤»
07:56 tadzik r: sub foo($x is copy) { $x = 5; }; foo(1);
07:56 camelia rakudo 4109be: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/dVXgjNPmEy:1␤␤»
07:56 moritz n: sub foo(Int $x is copy) { $x = 5; }; foo(1);
07:56 camelia niecza v24-37-gf9c8fc2:  ( no output )
07:57 moritz the 'is copy' should make sure there's always a container
07:57 tadzik yeah
07:58 tadzik [0xF]: btw, are you the [0xF] from Warsaw.pm?
07:58 [0xF] yep
07:58 drbean joined #perl6
07:59 tadzik ha, sounded familiar :)
07:59 FROGGS r: sub foo($x is rw) { $x = 5; }; foo(1);
07:59 camelia rakudo 4109be: OUTPUT«Cannot modify an immutable value␤  in sub foo at /tmp/5lAMHJsqSN:1␤  in block  at /tmp/5lAMHJsqSN:1␤␤»
07:59 [0xF] see you in the evening
07:59 tadzik yeah
07:59 FROGGS r: sub foo($x is rw) { $x = 5; }; my $a = 1; foo($a);
07:59 camelia rakudo 4109be:  ( no output )
07:59 FROGGS r: sub foo($x is copy) { $x = 5; }; my $a = 1; foo($a);
07:59 camelia rakudo 4109be:  ( no output )
07:59 moritz so, where's masak++ when we need him? :-)
07:59 FROGGS *g*
07:59 FROGGS ENOMASAK
08:00 * moritz submits rakudobug
08:01 [0xF] r: print 5.WHAT
08:01 camelia rakudo 4109be: OUTPUT«use of uninitialized variable $v of type Int in string context  in block  at /tmp/M_46EUJ2vV:1␤␤»
08:01 FROGGS uhh
08:01 [0xF] n: print 5.WHAT
08:01 camelia niecza v24-37-gf9c8fc2: OUTPUT«Int()»
08:02 [0xF] another bug?
08:02 FROGGS ya
08:02 moritz r: print 5.^name
08:02 tadzik yeah
08:02 camelia rakudo 4109be: OUTPUT«Int»
08:02 moritz no bug
08:02 tadzik oh
08:02 moritz say uses .gist, print uses .Str
08:02 [0xF] r: say 5.WHAT
08:02 tadzik WHAT gives you a type object
08:02 camelia rakudo 4109be: OUTPUT«(Int)␤»
08:02 FROGGS it should never expose internal variables... and it should do the right thing :o)
08:02 berekuk joined #perl6
08:03 moritz yes, mentioning $v is RONG
08:03 moritz I think we should remove the reporting of variable names in warnings altogether
08:03 moritz there's always a way that internal variables can leak through
08:03 FROGGS :/
08:05 diakopter moritz++
08:06 [0xF] question #4: my @a=(1,2) vs my @a=[1,2] vs my $a=(1,2) vs my $a=[1,2] - please explain differences if any
08:07 tadzik @a is an array with two elements, 1 and 2
08:07 tadzik @a = [1,2] is an array with one element, being an array of two elements
08:08 moritz $a = (1, 2) # $a is a Parcel with two elements
08:08 moritz $a = [1, 2]; # $a is an Array of two elements inside a scalar container
08:09 [0xF] so it's basically same as in perl5 except for $a=(1,2)
08:10 [0xF] and a Parcel is akin to an array of fixed size?
08:11 hoelzro a Parcel has a named component as well, iirc
08:11 moritz hoelzro: no, that's a capture
08:11 hoelzro ah, ok
08:11 hoelzro my mistgake
08:11 hoelzro *mistake
08:12 moritz [0xF]: http://doc.perl6.org/language/containers#Scalar+Containers+and+Listy+Things
08:12 [0xF] moritz++
08:13 [0xF] question #5: sample constructor that supports inheritance?
08:14 moritz the default .new is perfect for that.
08:14 [0xF] what if I want to do something in the constructor?
08:15 moritz [0xF]: is there a reason not do in BUILD?
08:15 [0xF] BUILD?
08:16 moritz you can add a submethod BUILD, which is run during object construction
08:16 moritz parent methods' BUILD first, then subclasses
08:16 moritz [0xF]: see for example http://perlgeek.de/blog-en/perl-6/object-construction-and-initialization.html
08:17 [0xF] moritz++
08:19 [0xF] question #6: how do I define a static method? class Foo { INSERT-CODE-HERE } Foo.bar()
08:20 moritz [0xF]: just write a method that doesn't use an attribute
08:21 [0xF] r: class Foo { method bar() { say 42; } } Foo.bar();
08:21 camelia rakudo 4109be: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/WGPYGCkmnn:1�------> [32mclass Foo { method bar() { say 42; } } [33m�[31mFoo.bar();[0m�    expecting any of:�        postfix�        statement end�        statement modifier�        statement modifier lo…
08:22 FROGGS r: class Foo { method bar() { say 42; } }; Foo.bar();
08:22 camelia rakudo 4109be: OUTPUT«42␤»
08:23 [0xF] semicolon after class is so c++-ish ;)
08:23 tadzik well, use two lines then :)
08:23 tadzik r: class Foo { method bar() { say 42; } } ␤ Foo.bar();
08:23 [0xF] FROGGS++
08:23 camelia rakudo 4109be: OUTPUT«42␤»
08:24 moritz a } followed by a newline implies a semicolon
08:24 labster ... a fact which caused me bugs as of late, both before and after it was fixed.
08:24 tadzik .u ␤
08:24 yoleaux U+2424 SYMBOL FOR NEWLINE [So] (␤)
08:26 labster moritz, FROGGS: I've been thinking about the direction to take IO::Path here:  https://gist.github.com/labster/3172215191d6fc5acc23  I'm curious if either of you have any thoughts on this.
08:27 * FROGGS reads
08:27 [0xF] question #7: is $object.$!attr valid syntax?
08:27 moritz [0xF]: no.
08:27 [0xF] what I should write instead?
08:28 moritz you don't access another object's private attributes.
08:28 labster [0xF]: $object.attr  for accessing $.attr.  Make a public attribute.
08:29 moritz what labster++ said
08:29 moritz labster: sorry, I don't have the mental capacity right now to digest your gist. I'll try to remember it later today, or feel free to nag me again
08:29 * labster was afraid of that.
08:29 moritz labster: fwiw in rakudo I've already removed the File/Path distinction
08:30 labster essentially it boils down to "how many subclasses do we want running around for paths"
08:30 moritz labster: it turned out to be too much work to always create objects of the right type, with too little benefit
08:30 [0xF] You mean private is restricted to self, not any instance of this class?
08:31 moritz correct. But you can call private methods of the same class with $obj!Classname::method() (iirc)
08:31 [0xF] that's strange
08:31 labster moritz: Okay.  That's sort of the same conclusion that I came to.  It's still specced though.
08:32 moritz labster: then feel free to throw out that part of the spec
08:33 [0xF] r: class Foo { has $.m; method foo(Foo $f) { $f.$.m = 42; } }; Foo.foo();
08:33 camelia rakudo 4109be: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in method foo at /tmp/av_Zcd8UyL:1␤  in block  at /tmp/av_Zcd8UyL:1␤␤»
08:33 [0xF] r: class Foo { has $.m; method foo(Foo $f) { $f.$.m = 42; } }; Foo.foo(Foo.new());
08:33 camelia rakudo 4109be: OUTPUT«Cannot look up attributes in a type object␤  in method m at src/gen/CORE.setting:1961␤  in method foo at /tmp/W8gMFWgusf:1␤  in block  at /tmp/W8gMFWgusf:1␤␤»
08:33 [0xF] hm?
08:34 labster But I am thinking that subclasses for handling different OS-groups might be the right idea, much like how File::Spec defaults to the current OS but all of its work is handled by subclasses.
08:35 sorear [0xF]: $f.$.m is wrong, $f.$!m is wrong
08:35 sorear [0xF]: the only correct syntax is $f.m
08:35 labster r: class Foo { has $.m; method foo { self.m = 42; } };  Foo.foo();
08:35 camelia rakudo 4109be: OUTPUT«Cannot look up attributes in a type object␤  in method m at src/gen/CORE.setting:1961␤  in method foo at /tmp/1m1nwc2ntr:1␤  in block  at /tmp/1m1nwc2ntr:1␤␤»
08:35 [0xF] r: class Foo { has $.m is rw; method foo(Foo $f) { $f.m = 42; } }; Foo.foo(Foo.new());
08:35 camelia rakudo 4109be:  ( no output )
08:36 [0xF] sorear++
08:36 labster r: class Foo { has $.m; method foo { self.m = 42; } };  Foo.new.foo();
08:36 camelia rakudo 4109be: OUTPUT«Cannot assign to a readonly variable or a value␤  in method foo at /tmp/HUlCCNbJ6a:1␤  in block  at /tmp/HUlCCNbJ6a:1␤␤»
08:36 labster I fail today
08:36 FROGGS labster: I'd say go ahead, I really do like what you are doing
08:37 FROGGS r: class Foo { has $.m; method foo { $!m = 42; } };  Foo.new.foo();
08:37 camelia rakudo 4109be:  ( no output )
08:37 tadzik [0xF]: thing is, attributes themselves are never visible outside of the class body. You always use accessor methods
08:38 tadzik $. is just $! but also generating a (public) method
08:38 [0xF] tadzik: I asked about using the attribute of the same class, just different instance. That's how private works in Java and C#
08:39 sorear you don't.
08:39 tadzik it does? I dind't know
08:39 tadzik but yeah, it doesn't work this way in Perl 6
08:39 daxim joined #perl6
08:40 [0xF] now I know that
08:40 sorear in C# there's an assumption that all instances of a class trust all other instances of the same class
08:40 Arindam joined #perl6
08:40 labster All of this is a long yak-shaving expedition for porting my web script from P5.  Which is probably should have used Path::Class in the first place for portability, but didn't.  Though I decided paths should be even more DWIM in Perl 6.
08:40 moritz sorear, [0xF]: makes sense, IMHO
08:41 sorear I don't think I've ever actually seen the design rationale for this bit of Perl 6 articulated ... maybe I should reread the Apocalypses
08:41 Arindam I have a quesiton .. perl is such a awesome language .. why is it not making it's mark in current days of Ruby and Node
08:41 moritz the problem is that we don't have the same kind of static type informatoin as C# and Java have
08:41 [0xF] moritz: I see
08:42 sorear Arindam: contingent history.  you might as well ask why it rains in one city and not another when both have a 50% forecast
08:42 [0xF] moritz: but method (Foo $foo) clearly knows that $foo is Foo, doesn't it?
08:43 moritz [0xF]: but what if $foo isn't typed as Foo, but still contains a Foo?
08:43 sorear Type annotations are invisible to name resolution
08:43 [0xF] moritz: good point
08:43 sorear at one point niecza allowed attribute access using the $foo!Foo::y syntax
08:44 sorear this was a misunderstanding on my part and I think it's been removed
08:44 labster Arindam: Perl 5 still has a ton of users, but it's not like the old days when there weren't a lot of choices in scripting languages.  Perl 5 is currently hard to improve internally, and Perl 6 is not "done" in enough people's eyes.  So people see other languages as more exciting because of the bigger changes, even when what we're doing here is pretty exciting.
08:45 sorear anyways, the goal of Perl 6 has always been to make a language that people will still be using in 20-30 years
08:45 moritz sorear: that syntax is meant for private methods, afaict
08:45 sorear moritz: indeed.
08:46 sorear we've focused more on futureproofing and less on the immediate shiny
08:46 sorear the immediate shiny we do have is largely there *because* it has futureproofing value
08:46 sorear multiple dispatch is a proven way to make stuff extensible
08:46 labster Because we've been down the road of not futureproofing already.
08:47 [0xF] Arindam: It took about 20 years for Haskell to become trendy. Perl 6 might come same path. And the yesterday-trendy Ruby clearly borrows much from Perl 5.
08:49 labster sorear: It's more making a language that people will *want to use* in 20-30 years.
08:50 Arindam I love perl to my heart .. but when I try to use it for Web using Catalyst or something .. I get a lot of burns, most of them come from the fact that not lot of people consider perl as a serious web language .. the is same is not true for Rails
08:50 dakkar joined #perl6
08:51 sorear Arindam: how does the opinions of other people cause you burns?
08:51 [0xF] Arindam: http://www.paulgraham.com/icad.html
08:52 Arindam well I don't get to learn or get help whenever I need .. i can google around for rails for all possibles errors that might happen .. all sorts of cool libraries and books around
08:52 tadzik Arindam: build awesome stuff, show them, shut their mouths
08:52 tadzik always works
08:52 Arindam I agree
08:55 labster I agree that we need more documentation, but I'll work on that.
08:56 * labster is not sure that being needing to look up lots of error messages is a good thing for a language.
08:57 hoelzro heh
09:01 berekuk joined #perl6
09:02 sorear man perldiag
09:02 sorear every perl error message is in there
09:02 sorear sleep&
09:03 hoelzro one thing that keeps me sticking with Perl is that the documentation always includes a *lot* of examples
09:03 hoelzro imo, it's easier to pick up a new library and getting going with it
09:09 labster S32: role IO { };  The base role only tags that this is an C<IO> object for more generic purposes. It doesn't specify any methods or attributes.
09:09 labster Huh.  That is not how it is implemented in Rakudo or Niecza.
09:09 moritz yes, I know
09:10 moritz the plan was as follows: there are two ways to work with files. One is through filenames (prone to race conditions), one is through file handles (only works with sufficient privs)
09:10 FROGGS <labster> Huh.  That is not how it is implemented in Rakudo or Niecza. <--- that is some sort of rule that will apply for ages
09:11 moritz so $filename.path should return an IO::Path, and $filename.open or $filename.IO will return an IO::Handle or so
09:12 moritz so the plan was to migrate IO to IO::Handle or so
09:12 moritz but I never got around to it
09:12 labster Still the plan?
09:16 moritz yes
09:16 moritz I hate it that file handles have such an unspecific type 'IO'
09:16 kresike joined #perl6
09:17 kresike hello all you happy perl6 people
09:17 dalek rakudo/nom: 24532ac | (Brent Laabs)++ | src/core/IO.pm:
09:17 dalek rakudo/nom: inch IO::Path closer to the recent spec changes (path, volume, Str)
09:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/24532aca13
09:17 dalek rakudo/nom: 02b7524 | moritz++ | src/core/IO.pm:
09:17 dalek rakudo/nom: Merge pull request #126 from labster/nom
09:17 dalek rakudo/nom:
09:17 dalek rakudo/nom: inch IO::Path closer to the recent spec changes (path, volume, Str)
09:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02b7524a58
09:17 FROGGS awesome
09:17 labster w00t!  My first commit to rakudo!
09:17 FROGGS labster++
09:20 hoelzro labster++
09:21 moritz labster++ indeed
09:21 * moritz hopes for many more
09:26 snearch joined #perl6
09:32 census joined #perl6
09:42 botton joined #perl6
09:42 botton left #perl6
09:44 berekuk joined #perl6
09:46 dpk joined #perl6
09:51 FROGGS hoelzro: how is the pygments going?
09:52 hoelzro FROGGS: PR is still being reviewed
09:52 hoelzro in fact, I should check up on it
09:52 hoelzro I made a bunch of corrections like a week ago
09:52 FROGGS ahh, cool
09:56 hoelzro just poked the author.
09:56 hoelzro er, maintainer.
09:59 labster thanks for chatting, everyone.  good night.
10:03 kaleem joined #perl6
10:03 araujo joined #perl6
10:07 timotimo the new parrot release doesn't really thrill me all that much :|
10:08 FROGGS you mean the three small patches?
10:09 denisboyun_ joined #perl6
10:19 erkan joined #perl6
10:19 erkan joined #perl6
10:22 FROGGS moritz: does the order, in which I pass arguments to QAST::Op, matter?
10:23 FROGGS like: QAST::Op.new( :named<a>, QAST::SVal.new(...) )  in exchange to  QAST::Op.new( QAST::SVal.new(...), :named<a> )
10:24 FROGGS I dont think so but the error messages I get maybe prove me wrong
10:25 FROGGS uhh, nvm, I think I got it now
10:32 moritz the position of named args doesn't matter
10:35 FROGGS ya, dunno why it wasn't working before
10:39 hoelzro moritz++ # referral to containers docs
10:39 hoelzro this is kinda blowing my $mind
10:40 hoelzro namely my $p = ( $x, 1, 2 ); $p[0] = 23;
10:40 tangentstorm joined #perl6
10:44 _jaldhar_ joined #perl6
10:51 camelia joined #perl6
11:02 PacoAir joined #perl6
11:20 jlaire joined #perl6
11:26 PacoAir joined #perl6
11:32 xinming joined #perl6
11:53 SamuraiJack joined #perl6
12:01 tgt joined #perl6
12:03 hoelzro (whoever wrote http://doc.perl6.org/language/*)++
12:03 hoelzro so many ++
12:04 timotimo ah, i recognize parts of the classtut from the perl6 book
12:06 moritz yes, that's stolen from the book/OO chapter
12:07 domidumont joined #perl6
12:07 timotimo good call
12:08 rindolf joined #perl6
12:13 stevan_ joined #perl6
12:20 cognominal joined #perl6
12:21 timotimo r: multi sub foo($a, $b) { say "two-arg" }; multi sub foo(*@a) { say "list version" }; foo(1, 2); foo(1, 2, 3);
12:21 camelia rakudo 02b752: OUTPUT«two-arg␤list version␤»
12:21 timotimo hm
12:32 * hoelzro just noticed there's a Perl 6 hackathon at YAPC::EU
12:38 domidumont joined #perl6
12:44 dalek rakudo/nom: c946d0f | (Tobias Leich)++ | src/Perl6/ (3 files):
12:44 dalek rakudo/nom: bring runtime importation closer to spec
12:44 dalek rakudo/nom:
12:44 dalek rakudo/nom: This enables:
12:44 dalek rakudo/nom:     require PATH <imports>
12:44 dalek rakudo/nom:     require $varibale <imports>, and
12:44 dalek rakudo/nom:     require ModuleName:file(PATH) <imports>.
12:44 dalek rakudo/nom: So a given path or variable is always treated as a filename,
12:44 dalek rakudo/nom: and a module name can be specified to ease importing.
12:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c946d0f7f7
12:45 moritz FROGGS++
12:46 hoelzro you can create your own subclass of ClassHOW and friends, right?
12:46 FROGGS but it is rediculous that I spend days for just a bunch of lines
12:47 moritz it gets better with time
12:47 FROGGS I hope so :o)
12:47 hoelzro FROGGS++ # import/export improvements!
12:47 moritz you can also view it a bit differently: it's amazing how little code changes some new/improved features require
12:48 nyuszika7h joined #perl6
12:48 dalek roast: 7b00258 | (Tobias Leich)++ | S11-modules/require.t:
12:48 dalek roast: add tests for require PATH and require $variable
12:48 dalek roast:
12:48 dalek roast: but also change a wrong test about require "ModuleName".
12:48 dalek roast: review: https://github.com/perl6/roast/commit/7b00258467
12:48 dalek roast: 01c201d | (Tobias Leich)++ | S (7 files):
12:48 dalek roast: fixed conflicts
12:48 dalek roast: review: https://github.com/perl6/roast/commit/01c201d254
12:48 colomon moritz: +1
12:49 FROGGS moritz: ya, and I am more confident if I only have to adjust a few lines, rather than adding hundreds of lines and helper functions
12:51 hoelzro are the meta model classes not exposed to the Perl 6 namespace?
12:51 hoelzro r: say(Perl6::Metamodel::ClassHOW)
12:51 camelia rakudo 02b752: OUTPUT«Could not find symbol '&ClassHOW'␤  in method <anon> at src/gen/CORE.setting:10840␤  in any  at src/gen/Metamodel.pm:2504␤  in any find_method_fallback at src/gen/Metamodel.pm:2492␤  in any find_method at src/gen/Metamodel.pm:939␤  in block  at /tmp/Vj3qtDXQtZ:1␤␤»…
12:51 timotimo they are not in Perl6::
12:52 timotimo r: say Metamodel::ClassHOW.new;
12:52 camelia rakudo 02b752: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
12:52 timotimo oh, that's interesting. they will .Str to Perl6::, but that won't work
12:52 hoelzro interseting...
12:52 FROGGS ENOSUCHINTERSETTING
12:52 timotimo :)
12:52 hoelzro r: say(Metamodel::ClassHOW.^methods)
12:52 camelia rakudo 02b752: OUTPUT«No such method 'gist' for invocant of type 'NQPRoutine'␤  in method gist at src/gen/CORE.setting:5264␤  in method gist at src/gen/CORE.setting:902␤  in sub say at src/gen/CORE.setting:7811␤  in block  at /tmp/_jm47M83t_:1␤␤»
12:53 hoelzro would it be a bad thing to add gist to NQPRoutine?
12:53 timotimo r: say(Metamodel::ClassHOW.^methods.keys)
12:53 camelia rakudo 02b752: OUTPUT«0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91…
12:53 timotimo m)
12:54 hoelzro o_O
12:54 tadzik varibale! :)
12:54 timotimo ah, interesting. the list-associativity will apparently cause infix:<~> to always be called with the **@things version, even though in a normal dispatch the two-arg version would be called instead
12:56 timotimo i wonder if that's something that should be fixed?
12:56 FROGGS timotimo: do you mean it will call the two-arg version without the assoc<list> or with it?
12:56 timotimo it has assoc<list> right now and it will not call infix:<~>(\a, \b)
12:57 FROGGS btw, you can override the assoc from within tokens too... dunno if that helps
12:57 FROGGS (I guess not)
12:58 FROGGS uhh: t/spec/S03-smartmatch/any-hash.t .......................... Failed 3/6 subtests
12:58 FROGGS what is wrong there? my rakudo is clean O.o
12:58 moritz didn't somebody unfudge tests in there?
12:58 moritz like, yesterday?
12:59 moritz I'll throw out the tests, they conform to an old spec
12:59 moritz like, the whole file
12:59 timotimo hehe
13:00 [Coke] hurm. I had unfudged some stuff in there for testing, but don't htink I committed.
13:00 timotimo why is perl6 doing this to me :(
13:00 timotimo well, i guess it's not perl6's fault, it's rakudo's fault
13:00 dalek roast: b0c6d66 | moritz++ | S03-smartmatch/any-hash.t:
13:00 dalek roast: remove S03-smartmatch/any-hash.t, which conformed to an old spec
13:00 dalek roast: review: https://github.com/perl6/roast/commit/b0c6d665c6
13:01 [Coke] moritz: it was isBEKaml
13:01 [Coke] moritz: hopefully you won't remove array-array!
13:02 hoelzro when manually constructing a class (ex. Child), do you have to predeclare it before calling .^compose?
13:02 hoelzro or is ::Child := $class.^compose() good enough?
13:03 hoelzro also, is there syntax sugar for using a custom metaobject for class construction?
13:03 hoelzro instead of class MyClassHow is Metamodel::ClassHOW { ... } my $class = MyClassHow.new($name); etc
13:06 moritz I don't think so
13:07 hoelzro =(
13:08 * hoelzro was playing around, hoping to make a way to force subclasses to add 'is override' to methods that they're overriding
13:09 domidumont joined #perl6
13:12 timotimo the array i get as **@things in my infix:<~> from this call in Str.trans https://github.com/rakudo/rakudo/blob/nom/src/core/Str.pm#L895 will explode in my face even if i just call infix:<+> on it to see how many elements it has :(
13:15 cognominal__ joined #perl6
13:17 timotimo yeah, right, let's call .DUMP on the array in infix:<~>, what could possibly go wrong
13:17 dalek rakudo/nom: c39b887 | moritz++ | src/core/Mu.pm:
13:17 dalek rakudo/nom: remove reporting of variable name from uninit warnings
13:17 dalek rakudo/nom:
13:17 dalek rakudo/nom: they produced too many false positives
13:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c39b887388
13:17 dalek rakudo/nom: f3c3feb | moritz++ | t/spectest.data:
13:17 dalek rakudo/nom: track deletion of test file
13:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f3c3feb3e9
13:23 timotimo gah, diese grütze, i can't DUMP the array either, because i get the very same error as before >_<
13:26 * [Coke] wonders what is up with this commit: https://github.com/perl6/roast/commit/01c201d254343edf47d2ef526fc48fd33083d260?utm_source=feedly
13:27 [Coke] it seems to duplicate bits of other recent commits.
13:29 timotimo can someone else please implement proper handling of infix:<~> with list assoc? this is driving me nuts and i'd rather not waste any more brain cells on this terrible problem.
13:29 moritz [Coke]: it's a merge commit
13:32 [Coke] ah. froggs must have edited the commit message and removed the word MERGE. (I see the "2 parents" now)
13:33 [Coke] moritz: any ideas on https://rt.perl.org/rt3/Ticket/Display.html?id=117635
13:36 moritz [Coke]: I guess we need to generate unique IDs for each run of 'gather', and put them into a contextual (not sure if that gives the right scope), and then take() throws a control exception that is only caught by this particular 'gather'. Or something similar.
13:40 * [Coke] wonders why timotimo  is complaining about groats.
13:41 hoelzro is it ClassHOW.new($class-name) or ClassHOW.new_type($class-name)?
13:41 timotimo new_type
13:41 timotimo if you'd like some example code, look at my ADT module: https://github.com/timo/ADT/blob/master/lib/ADT.pm6
13:42 domidumont joined #perl6
13:42 hoelzro thanks!
13:43 [Coke] sergot: what tests are failing for Lingua::EN::Numbers::O* on http://feather.perl6.nl/~sergot/modules/ ?
13:43 [Coke] (I thought I fixed them all, and my pull request was pulled)
13:43 timotimo it doesn't seem like the **@things "optimization" even makes stuff faster :|
13:44 timotimo clearly i must be doing something stupid.
13:48 timotimo why is .join not faster than adding pieces together with ~?!
13:50 timotimo is parrot's join function slow perhaps?
13:51 timotimo maybe it's the cost of creating the array of pieces before calling nqp::join
13:51 moritz I guess it's nothing to do with the actual joining, but with how the lists are handled/iterated
13:51 timotimo could i implement a new join based on the Buf class?
13:52 timotimo that will give me decoding/encoding overhead, right?
13:52 moritz right
13:52 timotimo damnit
13:52 timotimo if join isn't even faster than adding the pieces together with ~, what's the point? :|
13:53 domidumont joined #perl6
13:55 [Coke] timotimo: when I'm hacking on perl6 six stuff, if I get to this point of frustration, I will often go hack on a different thing instead.
13:55 [Coke] ... This is probably why I hardly ever finish anything!
13:57 kaare_ joined #perl6
13:59 gtodd timotimo: are there any tickets associated with  "proper handling of infix:<~>"
14:00 timotimo gtodd: i don't think there are yet
14:01 dalek roast: b1677fe | moritz++ | S32-io/io-path.t:
14:01 dalek roast: fix fudging of io-path.t
14:01 dalek roast: review: https://github.com/perl6/roast/commit/b1677fe599
14:02 gtodd just wondered if it was a general perl6 thing and not a "platform" (parrot niecza) or implementation (rakudo) thing
14:04 timotimo what. my naive version of join that just ~'s the parts and seps over and over is exactly as fast (slow) as the native implementation of join for rakudo
14:04 timotimo so i blame parrot's join thingie.
14:04 gtodd cause with perl6 the water gets deep real fast :-|
14:08 timotimo the question is: is rakudo super efficient or is parrot super slow?
14:08 gtodd parrot seems like Scotty ... down in the engine room ...  "Captain Kirk: Scotty/Parrot I've got to have more *speeeeed*"
14:08 timotimo because if we have an immutable string class, there should be a very noticable difference
14:08 timotimo yeah, except scotty can always deliver more speed
14:09 gtodd Scotty: "I'm trying Captain we're practically breaking up as it - the shields won't hold!!"
14:09 gtodd Captain Kirk: "there is no try, only do"
14:09 gtodd oops mixed up the space sagas
14:10 timotimo :)
14:11 awwaiid joined #perl6
14:12 gtodd hmm #parrot is full of folks ... maybe we can get them to pedal faster  :)
14:12 timotimo i don't feel like pushing them too hard
14:13 timotimo their StringBuilder implementation must be pretty unoptimized.
14:14 gtodd timotimo: am I dreaming or is there now a steady trend to very gradually go a tiny bit faster with each release
14:14 timotimo so when we say "use list.join to concatenate lots of string pieces", the user will actually end up with slower running code (although not very much)
14:14 timotimo i have not noticed that
14:14 [Coke] timotimo: "you should see the OTHER guy". It used to be slower.
14:14 timotimo but i'm too new to this project to have noticed i think
14:20 gtodd timotimo: it seems parrot development is shifting focus to being first and foremost a better vm for nqp + perl6 ... maybe that means speed
14:23 timotimo i guess the constant factor is just so incredibly high that the O(n^2) growth is just invisible.
14:23 timotimo bbl.
14:33 fgomez joined #perl6
14:35 skids joined #perl6
14:38 xilo joined #perl6
14:46 woolfy joined #perl6
14:47 kresike bye folks
14:52 FROGGS joined #perl6
14:52 FROGGS ahhh, home sweet home
14:54 stevan__ joined #perl6
15:02 thou joined #perl6
15:16 hoelzro you can't modify a class' metaobject via a trait, can do? ex. my multi trait_mod:<is>(Mu:U $class, :$happy) { $class.HOW does role { ... }; } class Foo is happy { ... }
15:17 stevan_ joined #perl6
15:21 raiph joined #perl6
15:27 hoelzro what prompts doc.perl6.org to regenerate?
15:28 spider-mario joined #perl6
15:28 moritz there are no automatic rebuilds/regenerates
15:28 hoelzro =/
15:28 tangentstorm hoelzro: the ancient ritual of akh-naad-verun
15:28 hoelzro it's pretty out of date
15:28 tangentstorm performed by seven priests on the highest mountaintop.
15:30 dalek doc: 6e965bb | (Rob Hoelz)++ | lib/variables.pod:
15:30 dalek doc: Fix typo
15:30 dalek doc: review: https://github.com/perl6/doc/commit/6e965bb5d9
15:36 hoelzro could we install a POST receive hook to rebuild it after a push to GH?
15:36 moritz not easily, it consumes quite some resources
15:38 hoelzro really? =(
15:38 hoelzro what about POST -> schedules job to run in N minutes if no such job already exists
15:41 moritz well, that's doable, but quite some effort
15:41 moritz are you willing to do it?
15:42 hoelzro if I get the tuits, yes =)
15:43 hoelzro what is doc.perl6.org powered by? or it entirely static?
15:44 moritz it's static
15:44 hoelzro mkay
15:44 hoelzro so we would need some sort of thing to enqueue the job
15:45 hoelzro I take it cron is running on the machine?
15:45 moritz the host doesn't have enough memory to compile (or run) rakudo
15:45 hoelzro hell, I think it'd be simpler that what I suggested
15:45 hoelzro ah crap.
15:45 hoelzro are the docs written in Pod6?
15:46 moritz so we generate the HTML on other machines, and rsync the .html files over
15:46 moritz yes
15:46 hoelzro if it's fine with you, I'd be willing to generate the docs on my VPS
15:46 moritz sure
15:46 hoelzro I don't know how you feel about granting that access to my machine, though
15:46 hoelzro \o/
15:47 moritz well, I'll trust you to generate an ssh key (can be passwordless) for that purpose
15:47 hoelzro of course
15:47 moritz and I'll add that to the p6doc (iirc) .ssh/authorized_keys file
15:47 hoelzro well, I'll work on the notification part
15:47 moritz and then you can rsync stuff over, and not do much else
15:47 hoelzro so that I get log entries when I get a push
15:47 hoelzro then I'll implement the cronjob stuff and the rsync
15:48 moritz the rsync is already implemented
15:48 moritz there's a script in the perl6/doc repo
15:48 moritz you just have to launch ist
15:48 moritz *it
15:48 hoelzro easy peasy.
15:50 hoelzro moritz: do you have permission to set up a POST hook for perl6/doc?
15:51 moritz hoelzro: aye
15:51 hoelzro moritz: if you'd like, you can set up a hook to point to http://p6doc.hoelz.ro/update
15:52 timotimo neato :)
15:52 timotimo i like this development
15:52 moritz hoelzro: done
15:52 hoelzro \o/
15:53 hoelzro hopefully GH doesn't throw a fit for a 404...
15:54 timotimo don't think it will
15:55 hoelzro =)
15:56 timotimo grah.
15:56 timotimo i'm looking for a square, but i can't find it
15:56 hoelzro now to wait for the DNS entries to propagate...
16:00 arlinius joined #perl6
16:01 timotimo the native join method is - even for very, very large lists of strings - slower than my naive implementation that's based on just $result = $result ~ piece
16:02 timotimo at 200000 elements (each being 16 characters long) the naive implementation takes 8.4 seconds per full join and the native implementation (which should algorithmically be better) takes 13.2 seconds
16:05 masak oh hai, #perl6
16:06 timotimo i can't seem to get the native string join to go faster than my naive version. maybe i should replace rakudo's join method with my naive implementation?
16:07 timotimo in that case, replacing long chains of ~ with a join on a list is useless, because the join would actually do the same thing as a two-argument version of ~ already does
16:07 isBEKaml joined #perl6
16:08 isBEKaml OHHAI, #perl6!
16:08 PerlJam timotimo: where's your benchmark code?
16:08 isBEKaml <FROOGS> uhh: t/spec/S03-smartmatch/any-hash.t .......................... Failed 3/6 subtests
16:09 isBEKaml Sorry about that, I was wondering the same thing last night - but since I saw p6eval treating this differently, I thought mine must be broken or something.
16:09 timotimo https://gist.github.com/timo/d0df11c807241005fc1e PerlJam
16:10 timotimo it doesn't seem to handle infinite lists yet. i wonder if that makes it any slower?
16:15 timotimo huh. the same "while $list.gimme(0)" logic from the join method doesn't seem to cause my naive implementation to join all the parts of the list?!
16:18 * masak quite enjoyed http://aanandprasad.com/articles/negronis/ and its explanation of how monads keep popping up in useful places
16:21 FROGGS pals: files (foo.pl) cant export things, right? only packages can, right?
16:22 masak right.
16:23 FROGGS isBEKaml: so we just need to fudge it again?
16:23 isBEKaml FROGGS: never mind - it's sent to hell. :)
16:23 FROGGS masak: so, how shoul that work?: require PATH <imports>
16:23 FROGGS hehe
16:24 FROGGS *should
16:24 FROGGS masak: I see how (and that) `require ModuleName:file(PATH) <imports>`can work, but not without the package-name
16:28 timotimo r: say (0, 1 ... *).join
16:28 camelia rakudo f3c3fe: OUTPUT«0123...␤»
16:29 pmichaud timotimo: your benchmark code for timing joins has some flaws
16:30 * FROGGS .oO( your timing code will have some flaws O.o )
16:30 timotimo pmichaud: i'd be interested to know. i'm making lots of changes right now to make it play well with separators and infinite lists
16:30 pmichaud it's not taking into account gc effects, for one
16:31 timotimo okay. i suppose i should make measurements with different amounts of elements and graph them, rather than get out one single number?
16:31 pmichaud and in different order
16:31 pmichaud and independently, not in the same program
16:31 timotimo mhm
16:32 pmichaud right now the timing for the second join is being affected by whatever garbage was produced by the first
16:33 pmichaud and parrot's gc sometimes does weird stuff, especially depending on the specifics of your hardware's memory
16:34 timotimo good point.
16:34 pmichaud the first thing I'd try to do is see what is making the native join slow
16:34 timotimo probably the part that creates an nqp-level list by copying each element
16:35 pmichaud maybe, but that really shouldn't be all that slow
16:35 timotimo and pushing it into the other list. and doing it with a shift.
16:35 pmichaud oh!
16:35 timotimo maybe i could make it faster by doing a regular for loop
16:35 pmichaud that would be slow, yes.
16:35 pmichaud I don't think a for loop would be faster
16:35 pmichaud just a second.
16:36 pmichaud the shift part is probably slow.  I think List may still need to be converted to use QRPA instead of RPA
16:36 pmichaud RPA's shifts are horribly slow
16:37 timotimo give me a second and i'll try it with a for loop instead of shifts
16:37 pmichaud a for loop just does shifts on lists
16:37 timotimo oh?
16:37 pmichaud so that's not really "faster"
16:37 pmichaud for -> map
16:37 pmichaud you can try it, and it might become faster, but if so it'll be because of the wrong reasons.
16:37 timotimo let me quickly verify that with an experiment
16:37 timotimo i'll take any speedups i can get :P
16:37 pmichaud it'll be another "optimization" that is only faster because there's a problem elsewhere that you're working around.
16:38 pmichaud that's likely to be a "speedup" I'll reject.
16:38 timotimo hm, ok
16:38 pmichaud I'm not in favor of speedups that are simply working around known bugs.
16:38 pmichaud because it's a technical debt that needs to be repaid when the known bug is actually fixed.
16:38 timotimo indeed
16:38 timotimo but it's not something i feel like i can fix by myself
16:39 pmichaud I'd rather find the underlying bug and solve all of the problems there, rather than implement lots of workaround "speedups" to avoid the pain of fixing the core problem.
16:39 * masak feels he's learning about code review and project management just by backlogging over pmichaud
16:39 arnsholt I'm hoping to fix NQP's list relatively soon
16:39 timotimo oh, that would be neat
16:39 arnsholt Just need to get past this article deadline that's coming up soon
16:39 timotimo procrastinate past it! :))
16:40 pmichaud anyway, underlying the "for" is "map", and map just does repeated shifts over lists (although it does get a few 'cheats' because it's special)
16:40 arnsholt Yeah, that'd be nice to do, except that won't result in a publication =)
16:40 timotimo WOW.
16:40 pmichaud but the problem with using for/map is that it may not release the elements to gc as smoothly as directly shifting a list does
16:41 timotimo for my super silly implementation of just replacing a "shift while" with a for, i get from 10 seconds down to 2.
16:41 pmichaud yeah, that's probably the cost of rpa versus qrpa, or it's relying on map's "cheats"
16:41 timotimo mhm
16:41 timotimo if arnsholt is going to fix that, then i see no reason to keep this cheat
16:42 pmichaud what's wrong with NQP's list, ooc ?
16:42 arnsholt It's an RPA
16:42 pmichaud that's why we have QRPAs
16:42 timotimo what do QRPA and RPA mean?
16:42 pmichaud QRPAs don't have the performance issues that RPAs do
16:42 arnsholt RPA is Resizable PMCArray
16:42 FROGGS rpa is resizable pmc array
16:42 arnsholt Parrot's object array type, essentially
16:42 FROGGS and the q?
16:42 pmichaud (and they're drop-in-replacements for RPAs)
16:42 masak Quanttum
16:42 masak Quantum*
16:43 pmichaud QRPA is NQP's resizable pmc array
16:43 arnsholt QRPA is pmichaud's replacement
16:43 timotimo they are a drop-in replacement? then that should be easy to do, isn't that right?
16:43 FROGGS so I can call it pmRPA too :o)
16:43 masak you mean qmichaud's ;)
16:43 isBEKaml It just came with the Q (after P)
16:43 pmichaud it should be easy to do; I got blocked because NQP didn't have serialization code for QRPA
16:44 arnsholt Or, I seem to remember pmichaud writing QRPA. I might be wrong =)
16:44 pmichaud and then I ran out of tuits to figure out how to do the serialization stuff
16:44 pmichaud yes, QRPA is mine.
16:45 pmichaud anyway, NQP already has  nqp::qlist  which does the same as nqp::list but uses a QRPA instead of an RPA
16:45 timotimo oh, hm, serialisation
16:46 pmichaud the plan was to migrate NQP/Rakudo to use nqp::qlist instead of nqp::list, make sure everything works, and then switch nqp::list to generate QRPAs instead of RPAs
16:46 timotimo yikes, C code?!
16:47 pmichaud and then s:g/'nqp::qlist'/nqp::list/ to bring everything back to normal
16:47 FROGGS sounds like it is time to do that these days
16:48 pmichaud it's all part of the list reworking that I've been wanting to do since last summer but can't because of tuit blockages :-/
16:48 pmichaud (I never have enough tuits in bulk to be able to work on it for the dedicated week I'm likely to need)
16:48 pmichaud anyway, if someone can get it so that NQP uses QRPA/nqp::qlist instead of nqp::list, that'd be a huge boost.
16:49 pmichaud then we could start moving Rakudo across.
16:49 pmichaud and yes, QRPA is hugely faster.  I did some statistics when writing QRPA... just a sec...
16:49 FROGGS pmichaud: you maybe sketch down you brain.... err, your thoughts about that in an issue, so someone can hook in
16:49 pmichaud oh, I can create an NQP issue for it, sure.
16:49 FROGGS and you can comment from time to time on that if there are questions
16:50 FROGGS (spread the wisdom)
16:54 pmichaud from last june:
16:54 pmichaud http://gist.github.com/2860944   # time differences, RPA vs QRPA for 100000 unshifts followed by 100000 shifts
16:54 timotimo oh, whoa
16:55 timotimo that's amazing
16:55 pmichaud anyway, you can see why lists and shifts are slow in Parrot.
16:56 timotimo i can't see ",why", but i can see ",that"
16:57 pmichaud here's the impact of switching for/map to use qrpa instead of rpa:
16:57 pmichaud http://gist.github.com/2877497   # preliminary timing of new .map implementation vs existing one on  "for 1..200000 { $i++ }"
16:57 cognominal__ may be the shift is internally really a shift in parrot, instead of a pointer moving?
16:57 pmichaud cognominal__: in parrot it's a memcpy, yes.
16:57 pmichaud so it goes quadratic over multiple shifts
16:58 pmichaud qrpa moves an index
16:58 pmichaud and only does memcpys when the buffer boundaries are reached.
16:58 timotimo you let all this niceness sit around for >half a year and didn't think to give someone the task to do it for you? :)
16:58 pmichaud timotimo: well, it also involves rewriting a lot of the List code, if done right.
16:59 timotimo of course
16:59 pmichaud we can do the drop-in replacement and ought to be able to get some good speedup, but List still needs some significant refactoring.
16:59 pmichaud I didn't expect my tuit starvation to be this long.
17:00 cognominal__ so where qrpa is used in rakudo?
17:00 pmichaud MapIter
17:00 pmichaud (for/map)
17:00 pmichaud but it needs to be used for List, too.
17:00 pmichaud Currently List is still using RPA, which is why doing repeated shifts on a List are slowish
17:00 pmichaud do "ack qlist src"
17:01 pmichaud MapIter can use qlist because MapIters are apparently never serialized (they tend to exist only at runtime)
17:01 pmichaud Lists get serialized, which is one of the things that blocked me from using ::qlist there.
17:02 arnsholt pmichaud: My planned list stuff is to replace qlist entirely with the VMArray REPR, FYI
17:02 pmichaud arnsholt: what's the timeline for that, ooc?
17:02 pmichaud and do we have benchmarks versus qrpa?
17:02 arnsholt And then nqp::list will return a VMArray-backed sixmodel object, which is in line with NQP-JVM
17:03 arnsholt Well, the internal implementation of VMArray is essentially QRPA's
17:03 pmichaud arnsholt: anyway, yes, I know that's also coming down the pike.
17:03 arnsholt But no benchmarks yet, since it's not properly implemented yet (unfortunately)
17:03 pmichaud I'm fine with abandoning qrpa in favor of VMArray as soon as it's ready, as long as peformance doesn't suffer too much.
17:03 timotimo is the QRPA code already in nqp master?
17:03 pmichaud timotimo: yes.
17:03 timotimo mhm
17:03 arnsholt timotimo: src/pmc/qrpa.pmc
17:04 arnsholt I'm a bit fuzzy on the timeline, but I'm hoping a month, two at the outside
17:04 arnsholt Depends a bit on what happens to my tuits post-article
17:04 arnsholt There's a semi-functional implementation in nqp/vmarray-list
17:04 pmichaud anyway, first step would probably be to get nqp itself to use qlist (QRPA) instead of list (RPA).  This _might_ also speed up the grammar engine a fair bit.
17:05 pmichaud I don't know if the grammar engine classes are still using RPAs... likely, if QRPA serialization isn't done yet.
17:06 timotimo what exactly can be made to use qrpa before one hits the serialisation necessity?
17:06 SamuraiJack joined #perl6
17:06 pmichaud not a lot beyond MapIter, I suspect.
17:06 pmichaud QRPA is a low-level type that gets used by other Perl6/NQP low-level types.
17:07 timotimo is serialisation used for anything but precompiled modules? it seems every time something gets compiled to .pir there'll be huge blobs of serialised data.
17:07 PerlJam pmichaud: Can RPAs not be fixed?  Or was this one of those "easier to do ourselves" decisions?
17:07 pmichaud easier to do ourselves, by far.
17:07 pmichaud like, not even close.
17:07 PerlJam okay
17:08 pmichaud Parrot's RPA isn't a standalone thing.  RPA derives from FixedPMCArray.
17:08 timotimo i suppose a new enum_class_ResizablePMCArray like constant would have to be introduced for QRPA?
17:08 pmichaud timotimo: there's one already -- it's the type id
17:09 pmichaud we just look it up when initializing the rest of the dynops
17:09 timotimo oh, ok
17:09 pmichaud see qrpa_id in src/binder/bind.c and src/ops/perl6.ops
17:09 timotimo so these enum_class_ things are just for things that come from parrot itself?
17:10 pmichaud anyway, fixing RPA in Parrot would require fixing FixedPMCArray.
17:25 pmichaud https://github.com/perl6/nqp/issues/89   # bit of a QRPA brain dump
17:25 Chillance joined #perl6
17:25 pmichaud it's _almost_ LHF.
17:28 PerlJam Is there any specific hangup with serializing qlists or is it just that no one has had the tuits to just make sure everything continues to work when switched?
17:28 pmichaud I don't think there are specific hangups.
17:28 pmichaud it's just another thingy that needs to be added to the serializer/unserializer
17:29 pmichaud I wouldn't do a "switch", per se, I'd just make sure the serializer can handle qrpa
17:30 * masak just got one of his plpw talks accepted o/
17:31 pmichaud the serialization code *ought* to be almost identical to the rpa serializer code, with just the type names changed and maybe some of the understanding of the underlying structs
17:31 pmichaud I'm afk
17:41 gdey joined #perl6
17:41 domidumont joined #perl6
17:43 bluescreen10 joined #perl6
17:47 gdey_ joined #perl6
17:48 timotimo masak: \o/
17:50 dmol joined #perl6
17:58 dalek perl6-roast-data: f3005bd | coke++ | / (4 files):
17:58 dalek perl6-roast-data: today (automated commit)
17:58 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/f3005bd381
17:59 [Coke] argh, someone dirtied pugs.
18:06 timotimo ah, vmarray will completely replace qrpa, that's interesting
18:09 alester joined #perl6
18:12 fgomez joined #perl6
18:14 dmol joined #perl6
18:16 DreamingInCode joined #perl6
18:27 timotimo hm. i would assume the read_array_* functions would have to be remade for the qrpa objects?
18:41 dvj perl6: say 3
18:41 camelia rakudo f3c3fe, niecza v24-37-gf9c8fc2: OUTPUT«3␤»
18:42 dvj woah, new name!
18:42 diakopter better name visibility for the mascot
18:54 timotimo i put a bit of code into serialisation.c but i have no idea how to test this :|
18:57 arnsholt Hack it into a shape where it's used in NQP itself and see what explodes
18:58 arnsholt 'S how I did it for my vmarray work
19:02 pmichaud just start switching nqp::list thingies to be nqp::qlist and keep going until things break.
19:05 frdmn joined #perl6
19:09 timotimo hehe, ok
19:09 timotimo i am scared.
19:09 arnsholt Don't be =)
19:10 arnsholt IME the hack-segfault-gdb cycle is relatively straightforward, once you get used to it
19:12 timotimo :D
19:20 timotimo src/pmc/qrpa.h is an empty file :|
19:20 timotimo do i have to add it to some file?
19:21 berekuk joined #perl6
19:21 timotimo it's already in PMC_SOURCES in the main Makefile
19:23 masak allison tweets her wisdom about how to succeed on other VMs: https://twitter.com/allisonrandal/status/324592511152685056
19:23 dalek roast: 38dd97e | dagurval++ | S32-temporal/calendar.t:
19:23 dalek roast: test output from say
19:23 dalek roast: review: https://github.com/perl6/roast/commit/38dd97e591
19:23 dalek roast: 4946ee3 | dagurval++ | S (20 files):
19:23 dalek roast: Merge branch 'master' of github.com:perl6/roast
19:23 dalek roast: review: https://github.com/perl6/roast/commit/4946ee3ab4
19:23 masak (that's sarcasm on my part, for the Poe-impaired)
19:23 diakopter she didn't mean on other VMs
19:24 diakopter she meant in the same users/markets as those two clans
19:24 masak fair enough.
19:25 timotimo i'm a bit annoyed at the nitpicking that "rakudo isn't perl6 yet, so perl6 doesn't exist at all!" is
19:25 masak oh well. I leave all discussion about name-changing to those who think they can convince TimToady that the language he's been working on for the past 13 years isn't "Perl 6".
19:26 geekosaur "we need some excuse to keep claiming it's DEADDEADDEAD so we'll just invent some"
19:27 * moritz will happily program in Perl 6, whether it's called Perl or not, as long as it's Perl
19:27 * masak too
19:27 geekosaur "...(does our insecuerity show too much?)"
19:28 masak diakopter: I never saw the thing that needed fixing. what was it?
19:28 diakopter I'll tell you in a few years...
19:29 timotimo pmc_qrpa.h should be a generated file, isn't that correct?
19:29 diakopter kidding, it was the sponsor blurb for perl6.com, unintelligible incoherence, as @chromatic_x correctly pointed out
19:31 masak oh, ok.
19:31 masak chromatic++
19:32 PacoAir_ joined #perl6
19:32 dalek roast: 4e71281 | dagurval++ | S32-temporal/calendar.t:
19:32 dalek roast: niecza fudge
19:32 dalek roast: review: https://github.com/perl6/roast/commit/4e712814c2
19:33 integral joined #perl6
19:33 integral joined #perl6
19:33 masak apparently it was incoherent enough to spawn a Twitter discussion on naming... so, pretty incoherent! :P
19:33 sergot joined #perl6
19:33 dvj did I fudge that correctly for niecza?
19:33 cognominal joined #perl6
19:33 rindolf joined #perl6
19:33 masak dvj: looks like an unfudge, but yes.
19:34 masak oh, the one above is a fudge.
19:34 masak yeah, looks good. dvj++
19:34 dvj great!
19:34 masak dvj: your nick, 'dagurval', means "choice of days" in Swedish.
19:34 masak :)
19:34 masak .tr sv en "dagurval"
19:35 yoleaux sv than " dagurval " (is → en)
19:35 tadzik hello #perl6 :)
19:35 masak hrm.
19:35 dvj I haven't thought of that :)
19:35 masak tadziku! \o/
19:35 tadzik \o/
19:35 tadzik pre-schedule for PLPW is ready \o/
19:35 masak or perhaps "selection" is a better translation than "choice".
19:35 timotimo so, a qrpa.c, qrpa.dump and a qrpa.o are properly generated, but the pmc_qrpa.h file is empty? i'm confused
19:35 tadzik http://act.yapc.eu/plpw2013/talks
19:35 masak tadzik: yay! and I get to talk about flying robots! \o/
19:36 tadzik I'm looking forward to that :)
19:36 tadzik the idea of The Day of Classes and Hackathons didn't quite work out
19:36 tadzik we had too many talk submissions we wanted to accept
19:38 moritz that's the best problem you can have as an organizer :-)
19:39 tadzik yeah, it's not that bad of a problem :)
19:41 * [Coke] invites people to Albany for a hackathon. ;)
19:44 colomon [Coke]: that's not that far-fetched for me.  :)
19:46 moritz std: sub m { }; m Str
19:47 camelia std 86b102f: OUTPUT«[31m===[0mSORRY![31m===[0m�Alphanumeric character is not allowed as delimiter at /tmp/KPhM9DyOqh line 1:�------> [32msub m { }; m [33m�[31mStr[0m�Parse failed�FAILED 00:00 42m�»
19:47 tadzik I was thinking about https://rt.perl.org/rt3/Ticket/Display.html?id=117641
19:47 tadzik and I can't quite figure out where the "is copy" logic is handled
19:47 tadzik the closest thing seems to be set_copy in BOOTSTRAP.pm
19:48 moritz aye, that's it
19:48 tadzik on the other hand, it merely seems to set the ELEM_IS_COPY flag
19:48 tadzik on the Parameter
19:48 masak magic!
19:48 moritz src/binder/bind.
19:48 moritz c
19:48 moritz is the other half
19:49 masak r: sub foo(Int $x is copy) { $x = 5; }; foo(1)
19:49 camelia rakudo f3c3fe: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/NNBLvqJhbH:1␤␤»
19:49 masak r: sub foo($x is copy) { $x = 5; }; foo(1)
19:49 camelia rakudo f3c3fe: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/w_axQfwaFq:1␤␤»
19:49 tadzik that either looks for Array, or Hash, or looks up the flag to return TRIAL_BIND_NOT_SURE
19:49 tadzik hey, bind.c, I'm NOT_SURE either
19:49 masak :P
19:49 tadzik where is the actual copy made?
19:49 masak go home, bind.c. you're drunk.
19:50 tadzik I feel stupid
19:51 tadzik maybe glasses will help me
19:51 PerlJam tadzik: glasses of beer?
19:52 labster joined #perl6
19:52 moritz r: sub foo(Int $x is rw) { $x = 5 }; foo(5)
19:52 camelia rakudo f3c3fe: OUTPUT«Cannot modify an immutable value␤  in sub foo at /tmp/_Nz_9R_30X:1␤  in block  at /tmp/_Nz_9R_30X:1␤␤»
19:52 timotimo i think the compilation has not failed
19:52 timotimo that's a good sign!
19:52 tadzik PerlJam: naah, the eyeglasses :)
19:52 moritz tadzik: iirc set_copy also calls set_rw
19:53 tadzik oh, indeed
19:53 moritz tadzik: so maybe you also have to take a look at IS_RW in bind.c
19:53 tadzik I'm going to get me some eyeglasses
19:53 moritz what 'is rw' currently does is actually what 'is parcel' (now gone, iirc) should do
19:54 lizmat r: sub foo(int $x is rw) { $x = 5 }; foo(5)
19:54 camelia rakudo f3c3fe:  ( no output )
19:54 moritz and 'is rw' should vivify a container when there's none
19:54 lizmat int vs Int ?
19:54 lizmat of is that the problem exactly?
19:54 moritz int + rw is known not to wrok
19:55 tadzik I think it's :571 and further
19:55 arnsholt lizmat: int is the native type (not really an object), while Int is the full object
19:55 awwaiid joined #perl6
19:55 arnsholt There are some limitations with the natives, realted to containers
19:56 timotimo either my sed replacements didn't work or all tests just pass without trouble
19:57 lizmat r: sub foo(int $x is rw) { say $x; $x = 5; say $x }; foo(6)
19:57 timotimo yeah, it didn't work.
19:57 camelia rakudo f3c3fe: OUTPUT«6␤5␤»
19:57 Tene timotimo: you're using sed -r, yes?
19:57 lizmat so, there is *no* problem with "int" ?
19:57 timotimo actually sed -i **/*.pm
19:57 timotimo but my pattern was wrong
19:57 Tene timotimo: you'll have a much better time with sed if you use -r
19:58 timotimo "if you don't use -r with sed, you will not go to space today"
19:58 timotimo Method 'push' not found for invocant of class 'QRPA' - not much of a drop-in replacement yet, eh?
19:58 moritz or just use perl -pli -E '...'
19:58 moritz timotimo: you'll have to replace some .push calls with nqp::push
19:59 timotimo ah, sure can do that
19:59 diakopter r: sub foo(int $x is rw) { say $x; $x = 99999999999999999999; say $x }; foo(6)
19:59 camelia rakudo f3c3fe: OUTPUT«6␤1661992959␤»
19:59 moritz the nqp-jvm-prep thing did that too, iirc
19:59 gtodd [Coke]: Albany, NY
19:59 moritz though in nqp, not rakudo
20:04 [Coke] gtodd: hai.
20:05 diakopter lizmat: I think the problem is you can assign to $x even if it's not 'is rw'
20:05 lizmat aha, indeed, ok  :-)
20:05 moritz the problem is that you can't always assign to $x even when it's 'is copy'
20:06 tadzik :)
20:06 tadzik I'm compiling a potential fix for it
20:06 * moritz blug: http://perlgeek.de/blog-en/perl-6/2013-repl-trick.html
20:07 moritz gah, wrong title
20:08 moritz ... fox.
20:08 diakopter r: sub bar(int $y is rw) { say $y; foo($y); say $y; sub foo(int $x is rw) { say $x; $x = 999; say $x }; }; bar(6)
20:08 camelia rakudo f3c3fe: OUTPUT«6␤6␤999␤6␤»
20:08 tadzik moritz: ha, nice :)
20:08 tadzik moritz++
20:08 diakopter there, is rw acts like is copy
20:08 timotimo many tests are still passing
20:08 moritz only on natives. Yes, long known, boring
20:09 diakopter :'(
20:09 * timotimo builds a new rakudo with the qrpa rakudo
20:09 timotimo er, qrpa nqp
20:09 timotimo this has no business of working yet! i haven't even done hard things yet!
20:16 dalek roast: efe8c9c | (Brent Laabs)++ | S32-io/ (2 files):
20:16 dalek roast: linking to specs for dir, IO::Path
20:16 dalek roast: review: https://github.com/perl6/roast/commit/efe8c9c61b
20:18 dalek specs: fb25fa4 | (Brent Laabs)++ | S32-setting-library/IO.pod:
20:18 dalek specs: Remove IO::Dir and IO::File, too unwieldy to implement for too little gain
20:18 dalek specs: review: https://github.com/perl6/specs/commit/fb25fa4758
20:19 timotimo now i've reached hard things :)
20:19 labster good postnoon, all you happy perl people
20:23 timotimo and now ... i have no idea what's going wrong :|
20:23 masak labster! \o/
20:23 labster timotimo: sounds like business as usual for me
20:26 timotimo i'll fit right in, won't i? :)
20:30 timotimo when i call nqp::push on something that's not an RPA or QRPA, will that spectacularly explode at compile time or mysteriously, silently, unnoticabley, inexplicabley explode at run time
20:31 timotimo because i'm getting "Cannot auto-generate a proto method for 'Numeric' in the setting" and i think that's due to having accidentally replaced too many .push with nqp::push
20:35 * timotimo make&prays
20:38 * timotimo doesn't know the way forward from here
20:39 FROGGS :/
20:42 timotimo i'll try if my nqp::push changes would compile if i use nqp::list "every"where again
20:42 timotimo (at least in rakudo)
20:42 timotimo no, actually not
20:43 woolfy left #perl6
20:55 bruges joined #perl6
21:15 lichtkind cheers FROGGS
21:23 FROGGS hi lichtkind
21:30 lizmat goodnight #perl6!
21:31 FROGGS gnight lizmat
21:31 renormalist joined #perl6
21:34 lichtkind have a good one liz
21:35 masak 'night, lizmat.
21:46 cooper joined #perl6
21:46 timotimo pmichaud: i can hardly tell how to go forwards, because all the nqp tests pass, but rakudo won't compile with an error message that seems related but not directly to lists
21:49 lue joined #perl6
21:51 FROGGS timotimo: there is no nqp-qrpa branch?
21:51 * FROGGS wants to test this
21:51 timotimo uh
21:51 timotimo sure, i'll put it up on github
21:51 FROGGS cool, thanks
21:52 dalek nqp/qrpa_experiment: d0af2bb | (Timo Paulssen)++ | src/6model/serialization.c:
21:52 dalek nqp/qrpa_experiment: add serialisation for qrpa
21:52 dalek nqp/qrpa_experiment: review: https://github.com/perl6/nqp/commit/d0af2bb408
21:52 dalek nqp/qrpa_experiment: af36e92 | (Timo Paulssen)++ | src/ (12 files):
21:52 dalek nqp/qrpa_experiment: search&replace nqp::list -> nqp::qlist; change .push to nqp::push etc
21:52 dalek nqp/qrpa_experiment: review: https://github.com/perl6/nqp/commit/af36e9244e
21:52 timotimo since i'm a naughty naughty boi i put it on perl6/nqp as "qrpa_experiment"
21:53 FROGGS well, that's the place where it belongs
21:53 masak "Sometimes I words out."
21:54 * timotimo words out
21:54 * diakopter
21:54 timotimo FROGGS: look at timo/rakudo:qrpa_experiment for some rakudo internals poking
21:54 FROGGS timotimo: k, will do
21:54 timotimo partially sed search&replace, partially turning .push into nqp::push by hand
21:55 diakopter timotimo: did you run the regex tests too?
21:55 timotimo i did "make test", so ... dunno?
21:55 timotimo i'm trying them now.
21:56 diakopter ah, nm, test includes them
21:57 * FROGGS captures the output of 'make' and will have a look for weird warnings
21:57 timotimo All tests successful. - yup.
21:58 timotimo needs more tests it seems like!
21:58 masak 'night, #perl6
21:59 timotimo i am *not* sure if the qregex thing actually already uses qrpa lists?
21:59 timotimo where can i change what nqp will create if one writes my @l := [];?
21:59 timotimo probably Actions.pm?
21:59 timotimo ah, here it is!
22:00 timotimo this may destroy everything now :)
22:02 timotimo FROGGS: for extra !!FUN!!, change :op( 'list' ) in default_for of Actions.pm in nqp to 'qlist' and start up your !!SCIENCE!!
22:02 FROGGS k
22:03 FROGGS timotimo: what about the othe :op('list') ?
22:06 timotimo did not see it
22:06 timotimo oh
22:07 timotimo yeah, change that, too
22:07 timotimo for even more !!FUN!! :)
22:07 FROGGS like nqp/src/NQP/Actions.pm:528:                my $name := ~$<sigil> eq '@' ?? 'list' !!
22:07 FROGGS hehe
22:07 FROGGS /home/froggs/dev/nqp/src/QRegex/P5Regex/Actions.nqp:595:        my $past := QAST::Op.new( :op('list') );
22:07 FROGGS /home/froggs/dev/nqp/src/QRegex/P6Regex/Actions.nqp:455:        my $past := QAST::Op.new( :op('list') );
22:07 timotimo all of them!
22:07 * timotimo changes more and more
22:07 FROGGS ya, done && compiling
22:08 kurahaupo joined #perl6
22:08 timotimo next step is just to change lots of .pop and .push into nqp::pop and nqp::push ops
22:08 FROGGS and unshift
22:08 timotimo yeah all that
22:08 FROGGS CHANGE'EM'ALL
22:08 FROGGS *g*
22:11 * timotimo made a vim macro
22:11 timotimo it was LTA, though
22:12 timotimo i should learn to use marks, especially in macros
22:13 dalek nqp/qrpa_experiment: 2102ba9 | (Tobias Leich)++ | src/ (5 files):
22:13 dalek nqp/qrpa_experiment: more list -> qlist
22:13 dalek nqp/qrpa_experiment: review: https://github.com/perl6/nqp/commit/2102ba9545
22:17 timotimo i think we might be duplicating work
22:17 timotimo i'm currently changing those ops around like a mad man
22:18 FROGGS hmmm, I'm trying something right now, so won't commit, even if we might do the same, ok?
22:18 timotimo ok
22:18 timotimo i mean
22:18 timotimo you can commit
22:18 timotimo but don't push - unless you make all of it work of course ;)
22:18 FROGGS k
22:21 timotimo are you trying something non-obvious?
22:22 FROGGS hmm, no
22:22 FROGGS but since I cant compile right now, I dont wanna push
22:22 FROGGS :o)
22:23 xilo joined #perl6
22:24 timotimo hehe
22:25 timotimo i might be reasonably close
22:25 timotimo but i need to go find my bed soon
22:25 FROGGS ya, I know what you mean
22:25 timotimo what, you have a bed, too?
22:26 timotimo say, is "froggs" a far-fetched play on words on your last name?
22:26 FROGGS I'm going to bed in 30mins or so
22:26 FROGGS and yes, good guess :o)
22:28 lichtkind_ joined #perl6
22:29 timotimo fixing up nqpp6regex now
22:32 timotimo oh. that talk lichtkind did in berlin
22:32 timotimo is it up anywhere yet?
22:32 FROGGS hmmm, I dont now
22:32 FROGGS you may wanna ask him or Mithaldu in #perl @irc.perl.org
22:33 timotimo do you recall what the title was? or even what the conference was called?
22:33 FROGGS german perl workshop 2013 (gpw2013)
22:33 * tangentstorm would have called it perlinberlin
22:34 FROGGS title was about perl 6 oo
22:34 timotimo mh
22:34 timotimo tangentstorm: :D
22:34 FROGGS slides: http://act.yapc.eu/gpw2013/wiki?node=Slides
22:35 FROGGS tangentstorm: that was the first idea of the shirt actually :o)
22:35 FROGGS PerlIn
22:35 FROGGS Berlin
22:35 skids joined #perl6
22:35 FROGGS and the Tower right through both i's
22:36 tangentstorm :)
22:36 timotimo it seems like somewhere i generate code to call .qlist on some object >_<
22:38 FROGGS hmmm, and I'm not sure anymore I am doing the right thing
22:39 timotimo FROGGS: there's a "qlist" we put there which is followed by a QAST::Op.new( :op("callmethod") :op($name) ... )
22:39 timotimo which is wrong
22:39 FROGGS ya
22:39 timotimo if you fell into that same trap as me, we will not be going to space today
22:46 FROGGS timotimo: I'll revert my last commit
22:46 FROGGS ok?
22:47 timotimo i can force-push over it
22:47 FROGGS hmm, okay
22:49 timotimo oh my, there's lots and lots more .push to do in the QAST/Compiler.pm
22:50 FROGGS ya, but this:        $ops.push($looplabel);
22:50 FROGGS $ops.push_pirop('inc', %*REG<pos>);
22:50 FROGGS doesn't need to be replaced, or?
22:50 FROGGS it is: my $ops := self.post_new('Ops', :result(%*REG<cur>));
22:52 FROGGS that was the point where I though: "hold on, maybe I replace .push methods on thing which actually have these method"
22:53 timotimo er
22:53 timotimo i'm a brainless machine at this time of day
22:53 FROGGS yepp
22:53 timotimo i asked before if things will blow up appropriately if i nqp::push things that aren't actually nqp::pushable
22:53 FROGGS I can#t answer that
22:55 timotimo you can sift through them if you want :P
22:55 timotimo i'm going to bed.
22:55 dalek nqp/qrpa_experiment: 491eec9 | (Timo Paulssen)++ | src/ (6 files):
22:55 dalek nqp/qrpa_experiment: so many search and replace. probably too many.
22:55 dalek nqp/qrpa_experiment: review: https://github.com/perl6/nqp/commit/491eec9193
22:55 timotimo good night everyone!
22:55 FROGGS gnight # me too
22:56 toddr left #perl6
22:59 fgomez joined #perl6
22:59 FROGGS .tell timotimo I think the changes in QAST::Compiler about $ops.push might be wrong, because it a PIRT::Ops and might really have that method... (have a look at QAST::Operations #295)
22:59 yoleaux FROGGS: I'll pass your message to timotimo.
23:08 xinming joined #perl6
23:18 BenGoldberg joined #perl6
23:25 jerome_ joined #perl6
23:27 Ben_Goldberg joined #perl6

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

Perl 6 | Reference Documentation | Rakudo