Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-01-23

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:00 Radvendii no. i'll look it up
00:00 benabik http://perlgeek.de/blog-en/perl-6/dissecting-starry-obfu.writeback
00:00 Radvendii HAHAHA
00:00 Radvendii win
00:00 dalek niecza: 3e212e9 | sorear++ | lib/C (2 files):
00:00 dalek niecza: Implement a crude approximation of immutable objects, use it in does
00:00 dalek niecza: review: https://github.com/sorear/niecza/commit/3e212e9682
00:01 shinobicl___ perl6: class C { has Int $.v = 0; submethod BUILD() {say "Constructing with " ~ $.v}; }; my C $A=C.new();
00:01 p6eval rakudo 2b5363: OUTPUT«use of uninitialized value of type Int in string context␤Constructing with ␤»
00:01 p6eval ..niecza v13-327-g5a9c36f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Virtual call $.v may not be used on partially constructed object at /tmp/F4LJYPYujB line 1:â�¤------> [32mhod BUILD() {say "Constructing with " ~ [33mâ��[31m$.v}; }; my C $A=C.new();[0mâ�¤â�¤Potential difficulties:â�¤  $A is decl…
00:01 p6eval ..pugs b927740: OUTPUT«Constructing with 0␤»
00:38 replore joined #perl6
00:50 [Coke] sorear: if we took rakudo's temporal.pm files, how would you want to include them into niecza? doesn't look like we have any non-CORE perl6 files. (but we do have some non-CORE .cs files)
00:58 LlamaRider joined #perl6
00:59 molaf_ joined #perl6
00:59 sorear [Coke]: are they import modules or part of the setting?
00:59 [Coke] it looks like they are separate files that are included into the setting.
01:00 sorear then they'd have to be incorporated into CORE.setting
01:01 [Coke] inline, or is there a way to just refer to the external files?
01:01 sorear inline
01:01 [Coke] OK.
01:03 cognominal_ joined #perl6
01:16 shinobicl___ left #perl6
01:19 Radvendii joined #perl6
01:20 Radvendii is there a shorthand for "@a[@b[0]][@b[1]]"?
01:20 benabik nom: my @b = 7,8,9; say @b[0,1]
01:21 p6eval nom 2b5363: OUTPUT«7 8␤»
01:21 Radvendii A.K.A using vectors
01:21 Radvendii benabik: I'm talking about a multidimensional array
01:22 benabik Radvendii: Yeah, I realized I didn't know how to split that to use in a multi-dim...
01:22 Radvendii oh
01:22 Radvendii okay
01:23 dalek niecza: 0da7a8d | sorear++ | / (6 files):
01:23 dalek niecza: Allow "constant" declarations to be folded as constants
01:23 dalek niecza: review: https://github.com/sorear/niecza/commit/0da7a8d8cc
01:24 sorear Radvendii: what is @b?
01:24 Radvendii nom: my @a=[0,1],[2,3]; my @b=0,1; say @a[@b[0]][@b[1]]
01:24 p6eval nom 2b5363: OUTPUT«1␤»
01:24 Radvendii something like that
01:24 Radvendii except that i'm doing it over and over again
01:25 Radvendii so it would be more useful to be able to say "say @a[[@b]]" or something...
01:25 sorear You haven't explained what @b is
01:26 Radvendii what do you mean... it's an array holding the location of the information in @a
01:26 swarley joined #perl6
01:26 sorear can you guarantee that @b will always have exactly as many elements as dimensions in @a?
01:27 sorear the code you presented earlier doesn't seem to require that
01:27 [Coke] nieczaa: my int $a = 32;
01:27 Radvendii you can assume that if that makes the solution simpler
01:27 sorear generally, if you want help with a problem, you should present it in English
01:28 sorear it's a LOT easier that way
01:28 [Coke] niecza: my int $a = 32;
01:28 p6eval niecza v13-329-g3e212e9: OUTPUT«[31m===[0mSORRY![31m===[0m��Malformed my at /tmp/gqHrzQ1HFT line 1:�------> [32mmy [33m�[31mint $a = 32;[0m��Parse failed��»
01:28 Radvendii sorry, i was trying, but i didn't know how to render it exactly.
01:28 sorear anyways, if @a was a real multidimensional array (NYI), you could use @a[||@b]
01:28 LlamaRider S09 says something about ||
01:28 LlamaRider aaaaaand I'm late :D
01:28 Radvendii what do you mean "real"?
01:29 sorear my @a[3;4]
01:29 LlamaRider sorear: rakudo doesn't seem to support || at the moment though
01:30 sorear LlamaRider: that's what NYI means, yes
01:30 [Coke] nothing supports multidim arrays atm.
01:30 [Coke] NYI == not yet implemented.
01:30 LlamaRider ah, those acronyms... sorry
01:30 [Coke] sorear, you can't say "use english" and then not define terms. ;)
01:30 Radvendii oh! we can do @a=(0,1),(2,3) now?
01:31 [Coke] niecza: say sprintf "%20d", 30.2
01:31 p6eval niecza v13-329-g3e212e9: OUTPUT«                  30␤»
01:31 Radvendii without using references?
01:31 Radvendii and by "now" i mean when they implement it?
01:31 [Coke] sorear: copying Temporal into the setting, this sub dies at the !! 'Z'; -
01:31 [Coke] https://gist.github.com/1659855
01:32 sorear No, you can't use that syntax to initialize multi-dim arrays
01:32 * sorear seems to be in a bad mood now, sorry
01:32 Radvendii alright, i'll look it up when they actually implement it...
01:33 sorear that is some strange code formatting, [Coke]
01:33 [Coke] # 01/22/2012 - niecza at 99.72%
01:33 [Coke] (we're slipping).
01:33 sorear I wonder if putting parens arround the sprintf args would help it parse?
01:33 [Coke] also, we have more failures than yesterday.
01:33 sorear [Coke]: why?
01:34 Radvendii are we going to be able to make our own sigils at some point? (for important enough classes)
01:34 [Coke] http://feather.perl6.nl/~coke/niecza_summary.out
01:34 sorear the answer to all questions like that is "yes"
01:35 [Coke] failures are at the bottom; and that's missing the last commit or 2.
01:35 Radvendii cool. :P no rush, and i really do appreciate all the effort you guys are putting into this language.
01:37 [Coke] what is ObjAt? (found in nom source)
01:38 [Coke] ah, http://perlcabal.org/syn/S02.html#The_ObjAt_Type
01:38 sorear ahahaha I know why env.t passes for me and fails for you
01:38 [Coke] sorear: can't use rakudo's Temporal.pm without ObjAt.
01:38 [Coke] sorear: yeeeees?
01:38 LlamaRider Radvendii: a (perverted?) way of getting what you want right now would be:
01:38 LlamaRider rakudo:  my @a=[0,1],[2,3]; my @b=0,1; my @c = @a; @c = @c[$_][] for @b; say @c;
01:38 p6eval rakudo 2b5363: OUTPUT«1␤»
01:39 sorear [Coke]: you have TERMCAP set in your environment
01:39 [Coke] Aye.
01:39 sorear env.t relies on .perl/eval to move data
01:39 sorear niecza's Str.perl doesn't escape all the funny characters in your $TERMCAP properly
01:39 sorear and the eval dies
01:40 LlamaRider he quit just as I wrote oO unlucky
01:40 sorear "I only have reasonable characters in my %ENV"
01:41 [Coke] sorear: ()'s helped with the !! ?? parsing.
01:41 Radvendii joined #perl6
01:42 Radvendii hey, "method BUILD" is used to initialize variables right?
01:42 sorear no
01:42 sorear first, it has to be _sub_method BUILD
01:43 sorear second, BUILD is used *only* for classes and instance setup
01:44 Radvendii but this is for a class... what else would one think to use it for?
01:44 sorear anything else you want to do at construct time
01:44 dalek roast: e6549e8 | sorear++ | S14-roles/basic.t:
01:44 dalek roast: [S14-roles/basic] Do not try to mutate 3
01:44 dalek roast: review: https://github.com/perl6/roast/commit/e6549e89fa
01:44 sorear [Coke]: this gets us 35 tests back, ~0.18%
01:45 Radvendii i dont understand... so i would or wouldnt use it to initialize an instance variable?
01:45 sorear you should ideally use initializers to initialize instance variables
01:47 Radvendii is that like saying "has $a=5"?
01:47 sorear yes
01:48 Radvendii ah
01:48 Radvendii okay
01:52 Trashlord joined #perl6
01:54 shinobicl___ joined #perl6
02:03 thou joined #perl6
02:11 shinobicl___ rakudo: class C { has $!val; method new(Int $x){ say $x } }; my $var = C.new(100);
02:11 p6eval rakudo 2b5363: OUTPUT«100␤»
02:11 shinobicl___ rakudo: class C { has $!val; method new(Int $x){ say $x } }; my C $var = C.new(100);
02:11 p6eval rakudo 2b5363: OUTPUT«100␤Type check failed in assignment to '$var'; expected 'C' but got 'Bool'␤  in block <anon> at /tmp/KGDJ1lBWbJ:1␤  in <anon> at /tmp/KGDJ1lBWbJ:1␤»
02:12 shinobicl___ is that a bug?
02:56 drbean joined #perl6
03:13 drbean joined #perl6
03:27 orafu joined #perl6
03:44 Psyche^ joined #perl6
03:56 drbean joined #perl6
04:48 birdwindupbird joined #perl6
05:04 jjore joined #perl6
05:31 thou joined #perl6
05:33 moritz good morning
06:07 araujo joined #perl6
06:07 araujo joined #perl6
06:21 koban joined #perl6
06:21 koban left #perl6
06:38 moritz rakudo release uploaded and tagged
06:39 masak morning, #perl6
06:39 masak moritz++
06:40 masak shinobicl___: no, it's not a bug. 'say $x' returns a Bool, which you then try to assign to $var typed as C. boom.
06:40 * masak --> $dayjob
06:51 wtw_ joined #perl6
06:58 sftp_ joined #perl6
07:22 overrosy joined #perl6
08:02 kaleem joined #perl6
08:13 GlitchMr joined #perl6
08:13 sorear o/ GlitchMr
08:13 sorear moritz++
08:30 dalek rakudo/nom: 63663bd | moritz++ | docs/release_guide.pod:
08:30 dalek rakudo/nom: correct release date and copyright in release_guide.pod
08:36 tadzik 'morning
08:37 GlitchMr Hi (late)
08:37 moritz \o tadzik
08:37 drbean joined #perl6
08:37 * moritz just noticed that he did something stupid
08:37 moritz the released rakudo wants parrot 3.11
08:38 moritz since the PARROT_REVISION in nqp had a full release number in it, I thought it had already been bumped
08:38 moritz and I didn't notice that the newest parrot is 4.0, not 3.11
08:41 mj41 joined #perl6
08:45 dalek star: cc390ba | moritz++ | skel/docs/announce/2012.01:
08:45 dalek star: small fixes to the release annoucement
08:45 dalek star:
08:45 dalek star: turns out we accidentally ship parrot 3.11, not 4.0, unless somebody fixes it
08:45 dalek star: review: https://github.com/rakudo/star/commit/cc390bab2a
08:49 dalek niecza: 155a5c1 | sorear++ | / (5 files):
08:49 dalek niecza: Avoid excess subcalls when a default or type constraint (sometimes) is a compile-time constant
08:49 dalek niecza: review: https://github.com/sorear/niecza/commit/155a5c1e9c
08:50 sorear (yes, I know Rakudo got to that optimization first)
08:50 moritz you started later :-)
08:55 * moritz had a weird idea the other day...
08:55 moritz somebody could write a script that searches for tests that are todo'ed or skip'ped for both rakudo and niecza
08:55 moritz and compile a list of them
08:55 moritz because they are much more likely to be dubious than the average test
08:55 moritz then we could review those tests more efficiently
08:56 sorear I recommend basing it off test_summary, and finding 'matching tests' by file/index pairs in the TAP
08:57 sorear nom: sub foo($) { }; say &foo.signature.params.[0].name
08:57 p6eval nom 2b5363: OUTPUT«␤»
08:57 sorear nom: sub foo($) { }; say &foo.signature.params.[0].name.WHAT
08:57 p6eval nom 2b5363: OUTPUT«Str()␤»
08:57 sorear nom: sub foo($) { }; say &foo.signature.params.[0].name.perl
08:57 p6eval nom 2b5363: OUTPUT«""␤»
08:57 sorear nom: sub foo($bar) { }; say &foo.signature.params.[0].name.perl
08:57 p6eval nom 2b5363: OUTPUT«"\$bar"␤»
08:57 dalek niecza: 677cf15 | sorear++ | src/ (2 files):
08:57 dalek niecza: mergeback
08:57 dalek niecza: review: https://github.com/sorear/niecza/commit/677cf154ee
09:03 sorear tomorrow's agenda: major additions to Sub introspection API.  Time permitting, also add MAIN
09:03 sorear (also, first day of spring classes)
09:03 * sorear -> sleep
09:16 jnthn o/ folks
09:16 * jnthn got grabbed the moment he walked through the door at $dayjob today :)
09:17 jnthn moritz: (3.11) main worry is that we may miss cygwin build fixes put in to Parrot
09:18 moritz jnthn: oh. Should I make a 2012.01.1 point release that depends on 4.0?
09:22 jnthn moritz: Maybe hold on a bit and see if not_gerd appears and ask.
09:22 jnthn Or maybe somebody on #parrot knows if they got cygwin fixes.
09:27 moritz jnthn: just read the logs, the commits went in after the release
09:28 jnthn moritz: After 4.0?
09:28 moritz jnthn: yes
09:28 jnthn OK
09:32 jnthn moritz: I just looked over the commits between 3.11 and 4.0. Nothing jumped out at me as making it worth re-cutting the release.
09:56 dakkar joined #perl6
10:12 domidumont joined #perl6
10:29 daxim joined #perl6
10:36 fhelmberger joined #perl6
10:43 moritz jnthn: at some point I'd like to discuss with you how to discuss typed exceptions from the MOP
10:43 moritz s:2nd/discuss/throw/
10:48 dbr joined #perl6
10:49 moritz hm, maybe $*W.throw simply works?
10:58 jnthn moritz: Can't really rely on a $*W being available.
10:58 jnthn moritz: What if somebody is using the MOP at runtime, etc.
10:58 moritz jnthn: right. Urks.
11:00 moritz hm
11:00 jnthn Well, it'll need a circularity saw somewhere, because we're defining the MOP that says how the Exception classes work. :)
11:01 moritz so we need something that at compile time uses $*W, and at run time searches the caller's lexpad, and if both fails, dies the old way without typed exceptions
11:01 moritz does that sound about right?
11:01 jnthn It gets "worse" in so far as we probably need to throw typed exceptions from ops in some cases too.
11:02 moritz you mean C-level ops?
11:02 jnthn Yeah...I think some of those throw.
11:02 jnthn Or think about
11:02 jnthn nom: class A { has $.a }; A.a
11:02 moritz indeed that's worse, but thankfully those aren't covered in my grant :-)
11:02 p6eval nom 63663b: OUTPUT«Cannot look up attributes in a type object␤  in method a at src/gen/CORE.setting:1384␤  in block <anon> at /tmp/0yJ3JndYqf:1␤  in <anon> at /tmp/0yJ3JndYqf:1␤»
11:03 jnthn moritz: That may be, but I'd rather think up a mechanism that'll let us get those at some point too :)
11:03 moritz jnthn: sure, if it turns out that we can cover both with the same approach
11:03 jnthn moritz: Lemme think it over some.
11:04 moritz jnthn: ok, no hurry. Still plenty of LHFs in the actions and maybe setting
11:11 moritz nom: class A { $^x }
11:11 p6eval nom 63663b:  ( no output )
11:12 jnthn Hm. :)
11:12 moritz nom: do { $^x }
11:12 p6eval nom 63663b: OUTPUT«===SORRY!===␤Cannot use placeholder parameters in this kind of block at line 1, near ""␤»
11:12 moritz I guess the first one should die with the same error, no?
11:12 jnthn I guess
11:12 jnthn Though
11:12 jnthn nom: role R { say $^x }; 'lol' but R[42]
11:12 p6eval nom 63663b: OUTPUT«None of the parametric role variants for 'R' matched the arguments supplied.␤No applicable candidates found to dispatch to for '_block1400'. Available candidates are:␤:(Mu )␤␤  in specialize at src/gen/Metamodel.pm:1810␤  in specialize at src/gen/Metamodel.pm:1480␤  i…
11:13 jnthn could argue that one should be allowed ;)
11:13 jnthn Looks like package_def just doesn't go looking at if any placeholder signature was set on the block, though.
11:13 jnthn Should be an easy fix.
11:14 * moritz tries to fix it
11:15 moritz looks easy indeed
11:31 Exodist joined #perl6
11:58 Woodi joined #perl6
12:00 Vlavv` joined #perl6
12:02 moritz niecza: class A { $^x }
12:02 p6eval niecza v13-332-g677cf15: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Placeholder variable $^x may not be used here because the surrounding package block takes no signature at /tmp/LwCSTfwG4B line 1:â�¤------> [32mclass A { [33mâ��[31m$^x }[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6…
12:02 dalek rakudo/nom: 3ddd2fb | moritz++ | src/ (2 files):
12:02 dalek rakudo/nom: throw typed exception on illegal use of placeholder parameters
12:02 dalek rakudo/nom:
12:02 dalek rakudo/nom: also catches  class A { $^x }, which used to live errornously
12:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3ddd2fb51c
12:02 moritz niecza: do { $^x }
12:02 p6eval niecza v13-332-g677cf15: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Placeholder variable $^x may not be used here because the surrounding block takes no signature at /tmp/EcwqtNwCuw line 1:â�¤------> [32mdo { [33mâ��[31m$^x }[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/b…
12:03 moritz niecza++
12:04 dalek roast: fbb78ed | moritz++ | S32-exceptions/misc.t:
12:04 dalek roast: test for X::Placeholder::Block
12:04 dalek roast: review: https://github.com/perl6/roast/commit/fbb78ed55d
12:04 moritz niecza: role a { $^x }
12:05 p6eval niecza v13-332-g677cf15: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Placeholder variable $^x may not be used here because the surrounding package block takes no signature at /tmp/Z5NeXH4TUF line 1:â�¤------> [32mrole a { [33mâ��[31m$^x }[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6e…
12:06 jnthn moritz: Did you allow it for roles?
12:06 moritz jnthn: yes
12:07 jnthn hehe :)
12:07 moritz $*PKGDECL ne 'role' && ...
12:07 jnthn *nod*
12:07 lumi___ nom: class A is Hash { }; my $x = A.new; say $x.WHAT;
12:07 p6eval nom 63663b: OUTPUT«Hash()␤»
12:07 lumi___ That's not right, is it?
12:08 moritz it's not
12:08 moritz method new(*args) { @args.hash }
12:08 * jnthn wonders how on earth Hash's .new method has been written...
12:09 jnthn ...ouch.
12:10 moritz perl6: class A { method x { $^x } }
12:10 p6eval rakudo 63663b: OUTPUT«===SORRY!===␤Placeholder variables cannot be used in a method at line 1, near "}"␤»
12:10 p6eval ..pugs b927740, niecza v13-332-g677cf15:  ( no output )
12:11 jnthn std: class A { method x { $^x } }
12:11 p6eval std 40d10f7: OUTPUT«ok 00:01 108m␤»
12:12 jnthn Hm.
12:36 moritz rakudo now takes about a quarter of an hour to compile the setting
12:37 moritz which significantly slows down my development cycle
12:38 moritz to be more precise, 17 minutes alone for the .pm -> .pir step
12:38 jnthn moritz: Is that a sudden jump?
12:39 moritz jnthn: dunno, it felt slow for some time, and now it feels really, really slow
12:41 jnthn moritz: OK. Will profile, but I strongly suspect the serialization work is going to be what we really need.
12:41 jnthn That's how it looked last time I did so.
12:41 jnthn Once we get a Star release out, I'll be happy to dig back into these big picture things.
12:42 moritz ok
12:42 moritz ... plus another 4.5 minutes for .pir -> .pbc
12:44 jnthn Virtually all of which is spent in register allocation.
12:47 jnthn I should be able to make a start on the serialization stuff within the next week.
12:47 jnthn I've got a bunch of the design work for it already sketched out in my notebook.
12:48 * jnthn still wonders how on earth it takes so long and thinks something is scaling non-linearly.
12:51 flussence o/
12:51 flussence jnthn, seen this? http://doc.rust-lang.org/doc/tutorial.html#interacting-with-foreign-code
12:53 flussence the blockish syntax seems like a good idea, I'm wondering if there's an easy way to do something similar in perl6 code
13:02 kaleem joined #perl6
13:08 moritz wow, just found http://glx.sourceforge.net/index.html
13:12 jnthn flussence: Which "blockish syntax" are you refering do?
13:12 jnthn fn SHA1(src: *u8, sz: uint, out: *u8) -> *u8;
13:12 jnthn Would be something like
13:13 jnthn hmm, I dunno that languages syntax well enough to know what *8 is
13:13 moritz *u8 is just char*
13:13 jnthn Ah
13:14 moritz (in first approximation)
13:14 flussence no, I mean the "native mod crypto { ... }"
13:14 jnthn sub SHA1(Str, Int) returns Str is native('crypto') { }  # or some such
13:14 flussence (as opposed to "is native()" on every sub
13:14 flussence )
13:14 jnthn Aha
13:15 avar joined #perl6
13:15 avar joined #perl6
13:15 literal joined #perl6
13:15 groky joined #perl6
13:15 jnthn Interesting idea.
13:17 moritz nom: { $^a; $^a }
13:17 p6eval nom 3ddd2f: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤  in block <anon> at /tmp/bTWJkorzpl:1␤  in block <anon> at /tmp/bTWJkorzpl:1␤  in <anon> at /tmp/bTWJkorzpl:1␤»
13:17 moritz nom: do { @_ }
13:17 p6eval nom 3ddd2f: OUTPUT«===SORRY!===␤Cannot use placeholder parameters in this kind of block␤at /tmp/JoseEFE9NX:1␤»
13:20 flussence hm... I wonder if this could work
13:21 moritz flussence: push it onto the growing stack of stuff that masak++'s macro work should accomplish :-)
13:22 xinming joined #perl6
13:22 flussence oh, why didn't I think of using that! :)
13:23 * flussence was trying to figure out a way to mess with the Routine object in a lexical scope, which probably wouldn't DWIW anyway
13:24 _twitch joined #perl6
13:28 [Coke] jnthn++ # starring
13:28 [Coke] jnthn: do you anticipate any growls of "hey, I thought you said this was STABLE"?
13:31 [Coke] jnthn: s/another month/another release/ ?
13:31 [Coke] otherwise, all looks good to me!
13:38 [Coke] sorear: any plans for the last week before the next release?
13:39 drbean left #perl6
13:47 cognominal joined #perl6
13:57 dalek roast: 6c236a2 | coke++ | S29-context/exit.t:
13:57 dalek roast: niecza fudge
13:57 dalek roast: review: https://github.com/perl6/roast/commit/6c236a2c50
13:58 dalek niecza: a8940ad | coke++ | t/spectest.data:
13:58 dalek niecza: Run (fudged) S29-context/exit.t
13:58 dalek niecza: review: https://github.com/sorear/niecza/commit/a8940ad366
13:59 dalek rakudo/nom: 2c3f642 | moritz++ | src/ (2 files):
13:59 dalek rakudo/nom: include parameter name in error message
13:59 dalek rakudo/nom:
13:59 dalek rakudo/nom: also more awesome error message stolen from STD and niecza
13:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2c3f6421ad
14:00 dalek roast: f52c2ed | moritz++ | S32-exceptions/misc.t:
14:00 dalek roast: test presence of placeholder attribute of X::Placeholder::Block exceptions
14:00 dalek roast: review: https://github.com/perl6/roast/commit/f52c2ed5b8
14:01 jnthn [Coke]: People will always find something to growl about. :) I think if we'd done a Star distribution release on nom a month or two ago, there woulda been quite a few howls. Nowadays, I think much less so - the benefits of this release generally far outweigh the few regressions here or there.
14:02 jnthn [Coke]: Take MiniDBI. My changes were entirely to update it to use the latest NativeCall module and to fix places it did stuff that was no longer in compliance with current spec. No changes due to nom bugs.
14:06 lumi___ moritz: There's a typo in the message in your last commit: "may not be usere"
14:08 moritz uhm, the whole sentence reads as if I had been drunk :/
14:08 lumi___ I stopped parsing there :P
14:08 dalek rakudo/nom: bb2f072 | moritz++ | src/core/Exceptions.pm:
14:08 dalek rakudo/nom: fix error message, lumi++
14:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bb2f072f9d
14:10 dalek rakudo/nom: 355430c | moritz++ | src/core/Exceptions.pm:
14:10 dalek rakudo/nom: another spelling fix, kboga++ moritz--
14:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/355430c064
14:11 dalek roast: 6b9e653 | coke++ | S12-methods/multi.t:
14:11 dalek roast: fudge for niecza
14:11 dalek roast: review: https://github.com/perl6/roast/commit/6b9e653a50
14:11 dalek niecza: 9736793 | coke++ | t/spectest.data:
14:11 dalek niecza: run (fudged) S12-methods/multi.t
14:11 dalek niecza: review: https://github.com/sorear/niecza/commit/973679385b
14:15 kaleem joined #perl6
14:16 tadzik I thought "usere" is the awesomeness in this message :)
14:16 tadzik usere as in sincere, or something :)
14:17 Alias joined #perl6
14:20 * [Coke] checks for LowHangingFudge in Rakudo.
14:21 moritz [Coke]: autounfudge?
14:22 [Coke] ugh. probably 100 more.
14:22 [Coke] moritz: no, update_passing...
14:22 moritz ah
14:23 [Coke] one with 47 passing, another with 20, lots of little ones.
14:26 Exodist joined #perl6
14:27 jjore joined #perl6
14:28 * jnthn wonders if S05-mass/rx.t wouldn't have a bunch more after the fixed backtracking into subrules
14:29 moritz jnthn: possible. I'll run autounfudge once my current build (on newest parrot) finishes
14:29 [Coke] moritz: S24-testing/0-compile.t passes 100% as is.
14:30 moritz [Coke]: I've never enabled that because it contains only stuff we test elsewhere
14:30 [Coke] and t/spec/S32-hash/kv.t is fudged, but not being run.
14:30 moritz [Coke]: and the whole S24-testing looks suspicious to me
14:30 [Coke] moritz: if the spec test is invalid, we should remove it. *shrug*
14:31 moritz it's not invalid. It just doesn't make much sense
14:31 [Coke] ... if it doesn't make sense, why are we keeping in the repository and forcing people to think about it?
14:32 [Coke] invalid doesn't necessarily mean "not to spec."
14:32 * [Coke] now remembers why he doesn't do this for rakudo. ;)
14:33 moritz I've simply never mustered the energy to check S24-*/*.t more closely. If you want to remve it, go ahead
14:36 jnthn [Coke]: ?
14:38 [Coke] jnthn: ? ?
14:38 jnthn [Coke]: Why you don't do what for Rakudo?
14:39 [Coke] identify more tests that can be run.
14:39 [Coke] though it was a snarky comment, in that I don't actually remember this as a problem.
14:39 PacoAir joined #perl6
14:41 [Coke] http://feather.perl6.nl/~coke/rakudo_update_passing.txt has a fresh run of update_passing_test_data.pl
14:42 moritz [Coke]: thanks
14:42 Trashlord joined #perl6
14:42 renormalist joined #perl6
14:42 [Coke] (S05-modifier was nontrivial to fudge)
14:42 [Coke] er, http://feather.perl6.nl/~coke/rakudo_update_passing.txt
14:42 [Coke] er, t/spec/S05-modifier/counted.t !
14:43 * jnthn looks confusedly at the output
14:43 jnthn [ PA] (  0/1  ) t/spec/S01-perl-5-integration/import.t
14:43 jnthn [  A]   = all passed
14:43 jnthn ...why does that get A? :)
14:44 moritz jnthn: maybe one was skipped (and thus passed)
14:44 jnthn ah, ok
14:44 moritz jnthn: or maybe something else. The harness doesn't give us all the numbers that I want/need, so I calculate the rest; maybe some of them are a bit off
14:45 [Coke] i just use it as a guidline for unrun tests to look at, higher numbers generally being the first things to touch.
14:45 [Coke] (though anything with SPA is usually an easy win.)
14:46 moritz [Coke]: that was my original intention when I wrote that script
14:47 moritz so it works as designed, even if not always free of surprises :-)
14:51 cognominal_ joined #perl6
15:08 fsergot joined #perl6
15:11 pmurias joined #perl6
15:11 pmurias sorear: hi
15:11 pmurias sorear: i'm thinking about implementing use Foo:from<perl5>
15:13 pmurias sorear: the hard parts seems to be that it happens at compile time but we also need to load stuff at runtime
15:13 moritz but not with 'use'
15:15 pmurias sorear: forget the last sentence ;)
15:16 pmurias sorear: the hard part is that use loads stuff into the lexical namespace at compile time, but we want to use the perl5 things at runtime
15:16 pmurias sorear: and i'm not aware of a sane way to serialize code refs
15:16 pmichaud good morning, #perl6
15:17 moritz \o/ pmichaud!
15:17 pmurias pmichaud: good morning
15:17 tokuhirom joined #perl6
15:17 pmurias sorear: and p5 modules don't have a clear runtime/compile time distinction so they may depend on it being in the same process
15:18 pmurias sorear: what seems to be the best solution seems load stuff into the lexical namespace as placeholders, that is &foo would know it's imported from Foo
15:18 [Coke] pmichaud: Good morning!
15:18 pmurias sorear: and then replace them at runtime
15:19 [Coke] for a second, I thought moritz had mis-tabbed again. ;)
15:19 tadzik hello pmichaud
15:21 moritz colomon: as if I'd ever mis-tab :-)
15:21 pmichaud [Coke]: yes, it's really me.
15:21 pmichaud moritz: :-P
15:21 pmurias moritz: re "not with use" ?
15:22 jnthn pmichaud!! \o/
15:22 moritz pmurias: "use" + p5 doesn't do any more runtime loading than "use" + p6
15:23 jnthn .oO( Just as predicted, pmichaud shows up within 48 hours of me fixing backtracking into subrules :P )
15:24 moritz pmurias: when precompiling a module that loads a p5 module, you'll not get around loading the p5 module twice
15:24 moritz because use Foo:from<perl5>; BEGIN run_imported_sub(); should work
15:24 moritz jnthn: so what was the plan? let him fix all the list issues? :-)
15:24 arlinius joined #perl6
15:25 jnthn moritz: I suspect that depends on the tuit supply. ;-)
15:25 pmichaud jnthn: :-)
15:25 pmichaud my tuit supply should be pretty good.  today is a little busy, but I should get some good hacking in this week
15:25 moritz \o/
15:26 jnthn pmichaud: yay!
15:26 tadzik wow, great!
15:26 * jnthn will have lots of availability this week too :)
15:30 pmurias moritz: the difference between "use"+p5 and "use"+p6 is that we can serialize the stuff from the p6 module much more easily (as we control the implementation)
15:32 pmurias re 'BEGIN run_imported_sub()' i could sacrifice that but even discovering what &import imports requires loading the p5 module
15:37 [Coke] jnthn: ah, but now he can work on stuff that's actually hard. ;)
15:38 dalek roast: 40f4b64 | moritz++ | S03-operators/range.t:
15:38 dalek roast: rakudo unfudges for non-numeric ranges
15:38 dalek roast: review: https://github.com/perl6/roast/commit/40f4b64c04
15:38 Chillance joined #perl6
15:39 pmurias_ joined #perl6
15:40 jnthn [Coke]: :P
15:41 moritz jnthn: the autounfudge run didn't find any newly passing regex tests, but that might be because the resource limit is a bit too tight
15:42 moritz jnthn: but it could also be that S05-mass/rx.t doesn't use backtracking over captures a lot, because it doesn't use many captures at all
15:43 jnthn moritz: ah, k
15:44 thou joined #perl6
15:44 moritz perl6: say "\x5"
15:44 p6eval pugs b927740, rakudo 355430, niecza v13-332-g677cf15: OUTPUT«␤»
15:44 moritz perl6: say "\x5c"
15:44 p6eval pugs b927740, rakudo 355430, niecza v13-332-g677cf15: OUTPUT«\␤»
15:45 GlitchMr joined #perl6
15:47 GlitchMr joined #perl6
15:49 jnthn decommute &
15:50 dalek roast: e10ffa7 | moritz++ | S05-mass/rx.t:
15:50 dalek roast: correct two tests
15:50 dalek roast: review: https://github.com/perl6/roast/commit/e10ffa7d9c
15:50 moritz niecza might pass tests too
15:50 moritz nom: say 'a\\b'
15:50 p6eval nom 355430: OUTPUT«a\b␤»
15:50 moritz nom: say 'a\\b' ~~ /"a\\b"/
15:50 p6eval nom 355430: OUTPUT«=> <a\b>␤␤»
15:51 moritz nom: say 'a\\b' ~~ /"a\b"/
15:51 p6eval nom 355430: OUTPUT«#<failed match>␤»
15:56 not_gerd joined #perl6
15:57 not_gerd hello, #perl6
15:58 moritz \o not_gerd
15:58 not_gerd [Amoritz: could you pull https://github.com/parrot/parrot/pull/704 into a new branch in the Parrot repo (NOT master)?
15:58 not_gerd (no one else around in #parrot...)
16:00 moritz not_gerd: doing so now
16:01 nwc10 joined #perl6
16:01 nwc10 Yay, a pmichaud!
16:03 moritz not_gerd: pushed to parrot/auto-sizes
16:03 not_gerd moritz: thanks
16:04 kaare_ joined #perl6
16:06 SHODAN joined #perl6
16:07 not_gerd jnthn is the only one around with Win64 + MSVC, correct?
16:09 [Coke] aye. I have win32 + msvc, but don't often build on it.
16:10 simcop2387_ joined #perl6
16:24 * jnthn home
16:24 jnthn not_gerd: Yes, I build very often on that.
16:25 jnthn not_gerd: Does that fix the need to do --intval="long long" on Win64?
16:28 not_gerd jnthn: yes, among other things
16:28 jnthn not_gerd: Excellent.
16:29 not_gerd still accepts standard-integer types only, though, as auto::format will fail if you do something like --intval=__int64
16:31 [Coke] pmichaud: mind if I ask what's on your TODO list this week? Any itches need scratching?
16:31 pmichaud you mean perl6-wise?  my todo list this week is to catch up and see where things stand and what needs doing
16:32 pmichaud lists sounds like the prime target (as well as the corresponding synopsis/grant)
16:32 jnthn pmichaud: Yes, lists decidedly need some love.
16:32 pmichaud I suspect jnthn++ would like me to double-check the regex engine stuff too :)
16:33 jnthn pmichaud: Please. ;)
16:37 not_gerd jnthn: if you have a minute, could you check that NQP's --gen-parrot=auto-sizes works out-of-the-box on Win64?
16:37 jnthn not_gerd: Yes, I shall do that shortly.
16:37 not_gerd thanks
16:37 nwc10 left #perl6
16:44 kmwallio joined #perl6
16:45 colomon joined #perl6
16:53 rindolf joined #perl6
16:55 alester joined #perl6
17:08 jdv79 left #perl6
17:08 cognominal joined #perl6
17:09 MayDaniel joined #perl6
17:10 jnthn not_gerd: Fails :(
17:10 jnthn .\miniparrot.exe -Iruntime/parrot/include -o frontend/parrot2/prt0.pbc frontend/parrot2/prt0.pir
17:10 jnthn PackFile_pack segment 'DIRECTORY' used size 2368 but reported 2664
17:12 rindolf Hi all.
17:13 not_gerd jnthn: :(
17:14 fsergot joined #perl6
17:14 not_gerd first step: could you diff a config_lib.pir from a working and a non-working parrot?
17:16 not_gerd if there's no difference, then I messed up when doing the unrelated cleanup...
17:21 masak evenin', #perl6
17:21 jnthn ohhai, masak
17:21 moritz \masak/
17:21 masak \:D/
17:22 pmade joined #perl6
17:29 jnthn not_gerd: https://gist.github.com/1664386
17:30 colomon phenny: tell sorear in S14-roles/mixin.t, $x does R4b(3) test is failing.
17:30 phenny colomon: I'll pass that on when sorear is around.
17:33 not_gerd jnthn: possible suspect is the change in opcodesize, but I'll probably need help from the parrot folks to debug that...
17:36 not_gerd jnthn: I think I know what's going on and can fix it on my own...
17:39 Trashlord joined #perl6
17:44 not_gerd jnthn: https://gist.github.com/1664459 _should_ do the trick...
17:47 Radvendii joined #perl6
17:47 Radvendii o/
17:49 Radvendii How do I run a map over key-value pairs? if i do @a.kv.map: {} It takes the keys and values as separate input. How do i make them get passed to .map at the same time
17:49 jnthn Radvendii: .pairs
17:49 jnthn Radvendii: Or .kv and have your map block take two args
17:49 Radvendii jnthn: sweet. thanks
17:49 TimToady or map ->$k,$v {...}
17:49 Radvendii ooh. i didn't know you could do that
17:49 Radvendii cool
17:49 TimToady oh, jnthn++ said it 1st
17:49 jnthn ;)
17:50 Radvendii thanks guys
17:50 TimToady ENOCOFFEEYET
17:53 jnthn not_gerd: Trying a build with that now
17:53 Radvendii it keeps saying Can only use repr_get_attr_obj on a SixModelObject. this arises from initializing a hash instance variable from an array instance variable
17:53 Radvendii what am i doing wrong?
17:54 jnthn Radvendii: Hard to say without seeing your code
17:54 Radvendii never mind
17:54 Radvendii fixed
17:54 Radvendii i forgot to comment out some code
17:55 jnthn not_gerd: Seems that helps :)
17:55 not_gerd jnthn: great
17:56 not_gerd now there's a question: why do we have separate configure options for intval and opcode if things break if we provide different values?
17:57 kaleem joined #perl6
17:58 jnthn not_gerd: That's one you'll probably have to ask on #parrot ;)
17:59 moritz hysterical raisins
17:59 moritz somebody thought at some point it was necessary to be able to configure both, nobody ever tested it with diverging values, and thus it's broken
17:59 moritz that's how it always goes
18:00 jnthn OK, shopping, dinner, then I'll have some hacking tuits
18:00 jnthn bbl
18:00 sorear good * #perl6
18:00 phenny sorear: 17:30Z <colomon> tell sorear in S14-roles/mixin.t, $x does R4b(3) test is failing.
18:00 Radvendii o/ jnthn
18:00 Trashlord joined #perl6
18:00 colomon \o
18:01 sorear [Coke]: The last big thing I want to squeeze in is MAIN
18:06 [Coke] sorear: as a coding contest contestant, that'd be nice!
18:10 Radvendii is there an equivalent in perl6 to overloading perl5 STORE?
18:13 Radvendii as in, a method that get's called when i do $a<key> = 5; as different from when i simply access $a<key>
18:13 sorear No, it doesn't work like that
18:14 sorear $a<key> = 5 calls the same method that $a<key> does
18:14 sorear $a<key> = 5 means $a.at-key('key') = 5
18:14 sorear make sure at-key returns something that can be assigned to
18:15 dalek roast: 52e9965 | sorear++ | S14-roles/mixin.t:
18:15 dalek roast: [S14-roles/mixin] Do not attempt to mutate Int objects here, either
18:15 dalek roast: review: https://github.com/perl6/roast/commit/52e9965138
18:15 Radvendii so if i overload at-key (is that the same as at_key?) i can't know what is being assigned to it?
18:16 tadzik maybe the Proxy object is what you want
18:16 fsergot joined #perl6
18:16 Radvendii Proxy?
18:18 Radvendii there seems to be a STORE_AT_POS method of Array
18:18 tadzik see http://perlcabal.org/syn/S06.html#Lvalue_subroutines
18:21 pmichaud STORE_AT_POS is typically used for creating new array elements
18:22 TimToady o/
18:22 sorear Radvendii: I do not think you understand the core principle at work here
18:22 pmichaud TimToady: o/
18:22 Radvendii probably not...
18:22 sorear Radvendii: '=' does not care what is on the left
18:23 TimToady (unless it's pseudoassignment)
18:23 sorear Radvendii: every expression in Perl 6 can return a 'container', which is something that can be either read or written
18:23 flussence joined #perl6
18:23 sorear PMICHAUD! \o/
18:24 _RobiX_ joined #perl6
18:25 pmichaud sorear: o/
18:27 sorear TimToady: didn't you just get rid of pseudoassignments?
18:27 TimToady no, I just turned assigments into pseudoassignments
18:27 * [Coke] ponders doing another spectest run before pmichaud starts adding things. ;)
18:28 TimToady the = is now parsed by the declarator, not by EXPR
18:29 TimToady (but only for declarators, of course--normal assignment is still, er, normal)
18:31 spine joined #perl6
18:32 sorear [Coke]: I only fixed one test ...
18:33 * PerlJam wonders if the "different things should look different" rule will ever kick in.
18:34 TimToady what would you suggest that will not provoke widespread disdain?  :)
18:35 TimToady contextually, it's pretty easy to distinguish from normal assignment for a human, I think
18:37 TimToady we could go all cobolly and say 'my $x INITIALIZED TO 42'  :P
18:37 jnthn Radvendii: Were you not delegating to a hash/array that you "has"? If so, it returns a container - just be sure to mark your at_pos with "is rw", and either let the result be the last statement or use return-rw instead of return on it.
18:37 jnthn std: sub infix:<INITIALIZED TO>($a, $b) { }; my $x INITIALIZED TO 42
18:37 p6eval std 40d10f7: OUTPUT«Potential difficulties:â�¤  $b is declared but not used at /tmp/esTkeEiMbH line 1:â�¤------> [32msub infix:<INITIALIZED TO>($a, [33mâ��[31m$b) { }; my $x INITIALIZED TO 42[0mâ�¤  $a is declared but not used at /tmp/esTkeEiMbH line 1:â�¤------> [32msub infix:<INITIALIZED T…
18:37 PerlJam TimToady: I like nice, simple rules.  Telling people that = is assignment *except* when it comes after a declarator isn't so simple.
18:38 TimToady but = has the advantage of being very easy to type too
18:38 jnthn std: sub infix:<INITIALIZED TO>($, $) { }; my $x INITIALIZED TO 42
18:38 p6eval std 40d10f7: OUTPUT«ok 00:01 116m␤»
18:38 [Coke] sorear: there's the 13 or so you fixed yesterday. I added a dozen or two.
18:38 jnthn heh :)
18:38 TimToady same reason C stole it from ==
18:40 TimToady PerlJam: human languages are most irregular at the point of greatest use, if you want to view this as an irregularity
18:41 flussence .oO( we could steal "my $x default 42" from SQL, but that's not much better than COBOL... )
18:41 PerlJam flussence: *way* too much typing
18:41 flussence agreed :)
18:41 TimToady .oO(use COBOL :lc;)
18:42 PerlJam my $x is (42);  # crazy?
18:42 PerlJam maybe never mind the parens, I'm not sure where I was going with them.
18:43 TimToady hard to get a list into it like my @a = 1,2,3
18:43 TimToady at least in sigs, 'is' is tighter than comma
18:44 TimToady with pseudoassignment we can at least preserve the $ vs @ distinction on precedence of =
18:44 moritz as a user, I like the pseudoassignment initialization
18:44 TimToady it's kind of a useful confusion :)
18:44 moritz as a compiler writer, I like it as long as somebody else is responsible for it :-)
18:45 flussence .oO( let's get rid of `has` entirely and give classes signatures like subs! :)
18:45 PerlJam maybe pseudoassignment bothers me so much because I foresee another FAQ entry ... but maybe some FAQs are just a necessary evil
18:45 dalek rakudo/nom: d469892 | moritz++ | t/spectest.data:
18:45 dalek rakudo/nom: enable kv.t, [Coke]++
18:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d469892deb
18:46 hello2u2 joined #perl6
18:46 rindolf joined #perl6
18:46 moritz PerlJam: at least we now know where to put them. faq.perl6.org :-9
18:46 sorear o/ rindolf
18:47 rindolf sorear: hi.
18:47 rindolf sorear: I got disconnected.
18:47 TimToady if we wanted a bit more regularity, we could actually take back the precedence-dropping of pseudoassignments into normal assignments, so all list assignments parse like listops
18:47 PerlJam "How do I overload assignment and pseudoassignment?"   or perhaps "I've implemented my own assignment operator, but it doesn't appear to work with variable declarations.."
18:48 TimToady but I don't know that we need to do that
18:48 moritz PerlJam: the answer is probably "don't mess with assignment" :-)
18:48 PerlJam Perl's answer is never "don't"
18:48 TimToady Perl's answer is: "Easy, write your own compiler!"
18:48 PerlJam It's always "proceed at your own risk and watch out for the pointy bits!"
18:49 moritz ok, maybe the answer should be "If you have to ask, you're not ready to overload assignment"
18:49 PerlJam moritz: perhaps
18:52 TimToady It could be a very short FAQ entry: "No, for certain values of no."
18:52 moritz TimToady: an MJD-style FAQ :-)
18:53 * TimToady invents the Frequently Unanswered Questions ;)
18:53 PerlJam heh
18:54 * TimToady bows
18:54 sorear just so long as we don't get a FQA...
18:54 dalek faq: 4aa6be5 | moritz++ | answers.md:
18:54 dalek faq: "Why sigils?"
18:54 dalek faq:
18:54 dalek faq: Mostly compiled from http://irclog.perlgeek.de/perl6/2012-01-19#i_5016530
18:54 dalek faq: review: https://github.com/perl6/faq/commit/4aa6be538a
18:54 moritz sorear: we just give potential FQA answers commit access to faq.perl6.org :-)
18:55 [Coke] NOMMAP still hints that nom will become master someday.
18:55 TimToady just so we don't get a FQU too
18:55 PerlJam [Coke]: it still might!
18:55 masak I gave a Perl 5 course today. the question wasn't so much "why sigils?" as "why variant sigils?"
18:55 PerlJam :-)
18:56 masak (from the attendees)
18:56 TimToady former Perl 6 programmers? :)
18:57 dalek rakudo/nom: 268e0c9 | moritz++ | NOMMAP.markdown:
18:57 dalek rakudo/nom: nom will not become master. [Coke]++
18:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/268e0c93c9
18:57 masak TimToady: probably in a prior life or sump'n.
18:59 [Coke] nom: my @a; say @a.WHAT;
18:59 p6eval nom 355430: OUTPUT«Array()␤»
18:59 TimToady ah well, not suprisingly, looks like other people invented FUQ first
19:00 * masak .oO( aw FUQ )
19:00 TimToady FQU too
19:00 [Coke] moritz: I don't know how to ask @a if it's the type object. If it is, that covers one of the remaining TODOs.
19:02 sorear @a has to be defined
19:02 sorear unless you beleive the stuff in S02 about assigning Nil to aggregate containers, but that doesn't make much sense
19:03 pmichaud [Coke]: I'm not likely do be doing any significant committing until tomorrow or a bit later in the week
19:03 pmichaud it may take me that long to get re-settled in here
19:03 PerlJam rakudo: my @a := Nil;
19:03 p6eval rakudo d46989: OUTPUT«Type check failed in binding␤  in block <anon> at /tmp/7Xz5wuXvnv:1␤  in <anon> at /tmp/7Xz5wuXvnv:1␤»
19:03 PerlJam rakudo: my @a := ();
19:03 p6eval rakudo d46989:  ( no output )
19:03 jnthn nom: say Nil ~~ Positional
19:03 p6eval nom d46989: OUTPUT«Bool::False␤»
19:03 pmichaud plus I still have a lot of cleaning up to do at the house
19:03 PerlJam Shouldn't those be the same?  Or am I outdated in my thinking?
19:04 masak pmichaud! \o/
19:04 pmichaud masak: o/
19:04 masak \o/ \o/ \o/
19:04 moritz [Coke]: @a.defined
19:04 moritz perl6: my @a; say @a.defined
19:04 p6eval rakudo d46989, niecza v13-332-g677cf15: OUTPUT«Bool::True␤»
19:04 crashtest joined #perl6
19:04 p6eval ..pugs b927740: OUTPUT«1␤»
19:04 masak crashtest: aloha.
19:04 sorear PerlJam: I'm talking about my @a = Nil, not :=
19:05 pmichaud rakudo;  my @a;  say @a.defined;   # does Rakudo have this correct yet?
19:05 PerlJam sorear: I'm aware.  You're assertion led me to muck with := though
19:05 pmichaud rakudo:  my @a;  say @a.defined;   # does Rakudo have this correct yet?
19:05 p6eval rakudo d46989: OUTPUT«Bool::True␤»
19:05 PerlJam s/You're/Your/
19:05 pmichaud no, it doesn't.
19:06 benabik nom: my @a; say @a.perl
19:06 sorear pmichaud: as far as I'm concerned that *is* correct
19:06 p6eval nom d46989: OUTPUT«Array.new()␤»
19:06 masak pmichaud: me too.
19:06 masak pmichaud: spec?
19:06 sorear b: my @a; say @a.defined
19:06 moritz so should it autovivify to a defined Array on assignment?
19:06 p6eval b 1b7dd1: OUTPUT«Bool::True␤»
19:06 sorear look, all four major implementations agree, @a makes a defined Array
19:06 masak I like that it's defined.
19:06 masak (I think.)
19:07 moritz masak: I think you were one of the proponents for having it undefined
19:07 pmichaud I think we've had discussions on this in the past; also, p5 says that uninitialized arrays are undefined
19:07 masak moritz: yeah, that's what makes me uncertain.
19:07 moritz so that one could distinguish  sub f(@a?) { }  f(()); f();
19:07 masak moritz: I remember the discussions.
19:07 sorear eval: my @foo; defined @foo
19:07 buubot_backup sorear: No output.
19:07 sorear eval: my @foo = (); defined @foo
19:07 buubot_backup sorear: No output.
19:07 masak moritz: not so sure anymore I was right.
19:07 sorear eval: my @foo = (3); defined @foo
19:07 buubot_backup sorear: 1
19:07 sorear eval: my @foo = (3); @foo = (); defined @foo
19:07 buubot_backup sorear: 1
19:08 moritz masak: I guess nowadays you don't often check if optional arguments have been filled
19:08 masak moritz: whether something was passed or not is more a property of the Capture than of the variable in the sub.
19:08 moritz masak: because you've (maybe subconciously) realized it's often design smell
19:08 moritz that too
19:08 masak moritz: it feels... wrong to laden the variable with that information.
19:08 Radvendii @people, thanks for the help (way up there). The issue is that I want to have the hash and the array linked, so that when you modify the array part, it still modifies the array part, but also does something to the hash part depending on what is being assigned
19:09 sorear pmichaud: looks like p5's rule is actually "has this array ever held an element", not "has this array been initialized"
19:09 masak Radvendii: that's entirely possible. just implement your own class with custom .[] and .{}
19:09 pmichaud sorear: okay, good correction.
19:09 masak Radvendii: I could put together a small example for you if you want.
19:09 sorear Use of "defined" on aggregates (hashes and arrays) is deprecated.  It used to report whether memory for that aggregate has ever been allocated.  This behavior may disappear in future versions
19:09 sorear of Perl.  You should instead use a simple test for size:
19:10 sorear does Perl 6 count as a future version of Perl?
19:10 masak Radvendii: sort of like a sorted hash or something like that?
19:10 moritz ... and it would be crazy to replicate p5s behaviour in p6
19:10 thou joined #perl6
19:10 Radvendii masak: I tried, but [] is unaware of what value is being "equalled" to it.
19:10 thou joined #perl6
19:11 pmichaud fwiw, the "all four implementations agree"  just means that all four could be wrong.   We're looking at Second System Syndrome Done Right, even if all of the implementations are Wrong.  :-)
19:11 masak Radvendii: I did not understand that response. we might be talking at cross purposes.
19:11 masak pmichaud: you have a point -- but that doesn't mean you're right :P
19:11 TimToady p5's behavior is insane because it depends on the allocatedness of its memory, not on the actual semantics in question
19:11 pmichaud I don't have a strong opinion as to whether "my @a" should be defined or undefined; I just know that it's been declared differently from what Rakudo does in the past.
19:12 pmichaud rephrase:  I just know that in the past it's been declared to be different from what Rakudo is doing now.
19:12 Radvendii masak: When i say @a[0] = 1, it calls @a.[] but if i overload .[], it can't know that 1 is being assigned to it, which is what i need.
19:12 TimToady I think it's very useful for any bindable variable to have a state that says it is not meaningful
19:12 masak pmichaud: well, I think that declaration is part of a long rambling open RT ticket that someone named masak (no relation) filed once.
19:13 moritz Radvendii: you can return a Proxy object from @a[0], but it is usually a sign of design smell if you need to do that
19:13 masak Radvendii: maybe you need to overload at_pos?
19:13 sorear pmichaud: hey, you just got back and I'm already getting to the antagonizing-you stage.  Sorry :|
19:13 masak moritz: what? Proxy objects are a design smell now!? :)
19:13 Radvendii masak: I've been making the problem more abstract, what I am doing is making a chess board which is represented both as a two-dimensional array of spaces, and as a hash of pieces (and where they are on the board)
19:13 benabik moritz: I'm not so sure it's design smell.  Being able to enforce invariants at assignment is useful.
19:13 masak sorear++ # tormenting implementor
19:13 sorear pmichaud: welcome back.  I hope thinks are going adequately well for you
19:14 pmichaud sorear: no problem; I've missed that a bit.  :-)
19:14 moritz masak: usually.
19:14 Radvendii masak: i am overwriting at_pos
19:14 masak moritz: I thought Proxies were the best.
19:14 moritz nom: my Int $x = 3; sub f() is rw { $x }; f() = 'foo'
19:14 pmichaud and yes, things are going adequately well here.
19:14 p6eval nom d46989: OUTPUT«Type check failed in assignment to '$x'; expected 'Int' but got 'Str'␤  in block <anon> at /tmp/xkuqahwsvL:1␤  in <anon> at /tmp/xkuqahwsvL:1␤»
19:14 moritz benabik: that also enforces an invariant at assignment, and doesn't need a proxy
19:15 Radvendii oh oops. i've been putting the wrong name at the beginning of my messages
19:15 jnthn nom: my Int $x = 3; sub f() is rw { return-rw $x }; f() = 'foo'
19:15 p6eval nom d46989: OUTPUT«Type check failed in assignment to '$x'; expected 'Int' but got 'Str'␤  in block <anon> at /tmp/UqhksAIsX2:1␤  in <anon> at /tmp/UqhksAIsX2:1␤»
19:15 PerlJam Radvendii: that's okay, we always get them confused too  ;)
19:15 jnthn oh, duh, I didn't read the error :)
19:15 * TimToady doesn't channel MJD
19:16 benabik moritz: A language invariant, yes...  But there are invariants that can't be as easily enforced that way...  Like "array can't contain duplicates"
19:16 PerlJam .oO( * TimToady doesn't channel MJD, RETARDO!? )
19:16 masak moritz: I think in order to claim that something like a Proxy is a design smell, it'd be nice if you could say why you think so. if you said roles are a design smell, I wouldn't believe you. with Proxy, I don't know.
19:16 pmichaud I have to run errands now; unlikely I'll be back much more today.  I should be around most of tomorrow, however.
19:16 masak PerlJam: :D
19:17 [Coke] pmichaud: be well.
19:17 Radvendii pmichaud: o/
19:17 masak pmichaud: o/
19:18 moritz masak: my statement might have been a bit harsh; what I should have said is that IME people tend to reach for proxies when there are better options, just like people overuse junctions
19:19 DarthGandalf joined #perl6
19:19 Radvendii In any case, I am using at_pos. The problem is at_pos is unaware of what is being assigned, and it is called before the assignment takes place (so i can't even do an update of the entire hash.
19:20 sorear niecza: class A { method foo { say @_; say self } }; A.foo(5)
19:20 p6eval niecza v13-332-g677cf15: OUTPUT«5␤A()␤»
19:20 moritz Radvendii: then a Proxy is indeed what you need
19:20 jnthn Radvendii: It's meant to work like that.
19:21 Radvendii i suppose i could just represent it as an array, and convert to a hash every time they ask for the value at a key...
19:21 Radvendii moritz: how would a Proxy help?
19:21 moritz Radvendii: it lets you run a piece of code when somebody assigns to it
19:21 PerlJam Radvendii: it's too bad shaped array aren't implemented anywhere.
19:21 Radvendii PerlJam: shaped arrays?
19:21 moritz see S09
19:21 Radvendii moritz: oh! how do i do that?
19:21 Radvendii ah
19:22 moritz Radvendii: there are examples in S06 and in the test suite
19:22 moritz just grep for Proxy
19:22 * sorear out
19:23 masak moritz: ok -- to me "code smell" and "cargo-cult overuse" are two different mental bins.
19:23 PerlJam Radvendii: I guess I really mean "user-defined array indices", but I tend to think of them in conjunction with shaped arrays.
19:23 moritz masak: for me too, but I often conflate them when talking to somebody who doesn't express where well what he wants
19:24 masak it's hard to know what you want in a language you're in the process of learning :)
19:25 moritz masak: aye
19:25 Radvendii PerlJam: I don't understand what you mean...
19:25 jnthn nom: class A { has @.x; method at_pos($self: $i) is rw { Proxy.new: FETCH => method () { $self.x[$i] }, STORE => method ($val) { $self.x[$i] = 2 * $val } } }; my $a = A.new; $a[0] = 21; say $a[0]
19:25 p6eval nom d46989: OUTPUT«42␤»
19:25 jnthn Radvendii: ^^ example
19:26 Radvendii jnthn: yes. thanks. i just found the part in 06.
19:26 birdwindupbird joined #perl6
19:26 PerlJam Radvendii: you can safely ignore me, what I was thinking of would only satisfy a part of what you want.
19:26 dbr joined #perl6
19:26 Radvendii do i have to impliment anything but FETCH and STORE?
19:26 masak nom: say ('bird' xx 2).join('windup')
19:26 p6eval nom d46989: OUTPUT«birdwindupbird␤»
19:26 [Coke] b: say 19284-19269; # 01/23/2012 - niecza at 99.92%
19:26 p6eval b 1b7dd1: OUTPUT«15␤»
19:26 Radvendii PerlJam: okay... I'll look it up later. it does look interesting
19:27 jnthn Radvendii: Proxy only knows about FETCH and STORE :)
19:27 [Coke] niecza still has 10 fails, rakudo 28.
19:27 jnthn [Coke]: overflow.t?
19:27 Radvendii jnthn: awesome.
19:27 * masak loves living in a post-Easter world
19:28 moritz .oO( now where are my Perl 6 Eaters? )
19:28 [Coke] http://feather.perl6.nl/~coke/ has the individual reports if you want to dig for the failures.
19:28 [Coke] jnthn: yup
19:28 jnthn [Coke]: Thanks
19:28 [Coke] niecxza is still the TERMCAP issues.
19:29 [Coke] ugh, 15 tests. :P
19:29 birdwind1pbird joined #perl6
19:29 cognominal_ joined #perl6
19:32 dalek roast: 22fb63e | jnthn++ | integration/99problems-31-to-40.t:
19:32 dalek roast: Bring a test inline with spec.
19:32 dalek roast: review: https://github.com/perl6/roast/commit/22fb63e66d
19:35 dalek roast: 3dd2b4d | coke++ | integration/99problems-31-to-40.t:
19:35 dalek roast: unfudge for niecza
19:35 dalek roast: review: https://github.com/perl6/roast/commit/3dd2b4d997
19:35 sromanov joined #perl6
19:35 * [Coke] treads water. ;)
19:36 moritz "I pass that test" -- "me too!"
19:36 moritz :-)
19:36 TimToady I wish there were a niecza user so that I could autocomplete its name...
19:36 moritz should I rename hugme to niecza? :-)
19:37 [Coke] niecza: my @a = 4,6,12 .. *; say @a[3];
19:37 TimToady nah, rename buubot if you really want to confuse people
19:37 p6eval niecza v13-332-g677cf15: OUTPUT«(timeout)»
19:37 TimToady .. is not ...
19:38 TimToady though that shoulda worked, I guess
19:38 TimToady on the theory that 12 .. * should transmute to 12 ... *
19:38 [Coke] niecza: my @a = 4,6,12...*; say @a[^10];
19:38 p6eval niecza v13-332-g677cf15: OUTPUT«Unhandled exception: Unable to figure out pattern of series␤  at /home/p6eval/niecza/lib/CORE.setting line 1168 (die @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2555 (get-next-closure @ 25) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2567 (AN…
19:38 TimToady well, it's that my's pseudoassignment is eager
19:39 [Coke] so much for using perl 6 on this week's car talk puzzler. ;)
19:39 TimToady unlike other pseudoassignments
19:39 TimToady [Coke]: you're looking for constant, I think
19:39 moritz niecza: my @a := 4, 6, 12 ... *; say @a[^10]
19:39 p6eval niecza v13-332-g677cf15: OUTPUT«Unhandled exception: Unable to figure out pattern of series␤  at /home/p6eval/niecza/lib/CORE.setting line 1168 (die @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2555 (get-next-closure @ 25) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2567 (AN…
19:39 TimToady niecza: constant my @a = 4,6,12...*; say @a[^10];
19:39 p6eval niecza v13-332-g677cf15: OUTPUT«[31m===[0mSORRY![31m===[0m��Malformed constant at /tmp/iI8A3FsHb7 line 1:�------> [32mconstant my [33m�[31m@a = 4,6,12...*; say @a[^10];[0m��Parse failed��»
19:39 TimToady niecza: constant @a = 4,6,12...*; say @a[^10];
19:39 p6eval niecza v13-332-g677cf15: OUTPUT«Unhandled exception: Unable to figure out pattern of series␤  at /home/p6eval/niecza/lib/CORE.setting line 1168 (die @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2555 (get-next-closure @ 25) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2567 (AN…
19:39 TimToady niecza: constant @a = 4,6,12..*; say @a[^10];
19:39 p6eval niecza v13-332-g677cf15: OUTPUT«4 6 12..Inf Any() Any() Any() Any() Any() Any() Any()␤»
19:40 colomon 4,6,12 isn't a p6-solvable series, is it?
19:40 TimToady uh, ranges should flatten in list context
19:40 moritz colomon: nope
19:40 TimToady the ... never sees the 4 or 6 if you start with ..
19:40 dalek roast: 70ffbf0 | jnthn++ | integration/99problems-11-to-20.t:
19:40 dalek roast: Correction, re-fudging (remove some skips and turn some others into todos).
19:40 dalek roast: review: https://github.com/perl6/roast/commit/70ffbf028e
19:41 TimToady since .. is tighter than ,
19:41 moritz jnthn: are you doing an epic walk through the fudges?
19:43 TimToady niecza: my @a; @a = 1..12; say +@a
19:43 p6eval niecza v13-332-g677cf15: OUTPUT«12␤»
19:43 TimToady niecza: constant @a = 1..12; say +@a
19:43 p6eval niecza v13-332-g677cf15: OUTPUT«12␤»
19:43 jnthn moritz: More like just a gentle stroll :)
19:43 TimToady niecza: constant @a = 0,1..12; say +@a
19:43 p6eval niecza v13-332-g677cf15: OUTPUT«2␤»
19:43 TimToady Oopsie!
19:44 jnthn moritz: If you fancy what looks like 17 more easy passes, see S32-num/stringify.rakudo :)
19:44 moritz jnthn: you mean the Rat.perl thing in there?
19:44 TimToady sorear: ^^
19:45 jnthn moritz: Complex.perl also
19:45 moritz jnthn: problem is that it tests for a form that we don't parse as Complex
19:45 moritz jnthn: so while we win tests, we lose roundtripping
19:45 jnthn moritz: ah.
19:45 Bzek joined #perl6
19:46 dalek roast: dca332d | moritz++ | S32-exceptions/misc.t:
19:46 dalek roast: test for typed redeclaration error
19:46 dalek roast: review: https://github.com/perl6/roast/commit/dca332dcb6
19:46 dalek rakudo/nom: d83a1c0 | moritz++ | src/ (2 files):
19:46 dalek rakudo/nom: typed Redeclaration errors
19:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d83a1c0f81
19:46 TimToady niecza: my @a = 0,1..12; say +@a
19:47 p6eval niecza v13-332-g677cf15: OUTPUT«13␤»
19:47 masak it's interesting that there's +/- and ?/!, but that prefix:<~> has no negation.
19:48 Radvendii when i do "@a[0][1]=1" it really does "@a.at_pos(0).at_pos(1)=1" correct? and the at_pos(0) would be using the FETCH part of the proxy, no?
19:48 TimToady perl6: say ~^ "FOO"
19:48 p6eval niecza v13-332-g677cf15: OUTPUT«Unhandled exception: Buffer bitops NYI␤  at /home/p6eval/niecza/lib/CORE.setting line 1168 (die @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2680 (prefix:<~^> @ 3) ␤  at /tmp/qhEnln36Dg line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.sett…
19:48 p6eval ..rakudo 268e0c: OUTPUT«Failure.new(exception => Exception.new())␤»
19:48 p6eval ..pugs b927740: OUTPUT«Â¹Â°Â°␤»
19:48 benabik Radvendii: The .at_pos(1) would use FETCH from the result of .at_pos(0)
19:48 benabik Radvendii: Then the = 1 would use STORE on the one from at_pos(1)
19:48 Radvendii okay
19:49 Radvendii that's good
19:49 Radvendii thanks
19:49 TimToady Radvendii: the point is that we make a very careful distinction between determining the identity of the operand from performing the operation
19:49 TimToady subscripting is only for determining identity
19:50 Radvendii right. that makes sense.
19:50 TimToady likewise an rw function only identifies the operand, it never actually does anything to it
19:50 benabik @a[0][1] = 1 is approx.  @a.at_pos(0).FETCH.at_pos(1).STORE(1) as I understand it.
19:51 Radvendii so how would i write a nested Proxy? Proxy.new: FETCH => method { Proxy/new: FETCH => method {}}?
19:51 Radvendii but then where do i input the second index?
19:51 moritz Radvendii: you don't special-case nested access
19:52 benabik Radvendii: The first proxy returns something that has at_pos.
19:52 moritz Radvendii: if you want to allow @a[0][1], then @a[0] needs to return a Proxy which holds another object, which again can have a Proxy
19:52 GlitchMr joined #perl6
19:52 moritz if they are arrays, @a[0] simply returns an array
19:52 moritz and that array knows how to deal with .[1]
19:53 Radvendii so i have to make a new class for my second level arrays?
19:53 moritz no
19:53 moritz you can just reuse your custom array class
19:54 Radvendii then how do i overload their at_pos?
19:54 Radvendii huh?
19:54 Radvendii but the one that i am making also acts as a hash, it wouldn't work for this...
19:55 moritz Radvendii: are you familiar with recursion?
19:55 Radvendii yeah
19:55 Radvendii o-oh
19:55 moritz just like with recursion, you just deal with one level
19:55 TimToady moritz: it's possible he wants a different type at the next level...
19:55 moritz and for the second level, you can return an object of the same type, which will handle the second level for you
19:56 moritz TimToady: then it must be different types, yes
19:56 TimToady possibly with the same role mixed in though
19:56 Radvendii yeah... the top level is just returning the second level. Whereas the second level is doing weird things when you STORE to it
19:56 Radvendii so i need another class?
19:57 TimToady sounds like a Node vs Leaf type problem
19:57 Radvendii can i do an inline overloading?
19:58 Radvendii @a.overload : at_pos => method {}
19:58 Radvendii ?
19:59 moritz @a does role { method at_pos { } }
19:59 masak perl6++
19:59 Radvendii okay... ("role" is kind of a misnomer)
20:00 moritz is it? it's just much more general than that particular use case
20:00 masak Radvendii: it's just an anonymous role used here because it's silly to name such a small role.
20:01 masak Radvendii: helps to know that roles are used for runtime overriding of methods.
20:01 Radvendii oh... i guess that does make sense
20:01 TimToady .oO( All of life is a stage, and we all play many anonymous roles... )
20:01 Vlavv` joined #perl6
20:01 Radvendii TimToady: :P
20:02 moritz nom: class A { method x() { }; method x() { } }
20:02 p6eval nom d83a1c: OUTPUT«===SORRY!===␤Package 'A' already has a method 'x'; did you mean to declare a multi-method?␤»
20:03 moritz nom: sub a { }; sub a { };
20:03 p6eval nom d83a1c: OUTPUT«===SORRY!===␤Illegal redeclaration of routine 'a' at line 1, near ";"␤»
20:03 TimToady I usually put questions like that in parens
20:03 TimToady so that the ? doesn't look funny with " at foo line 42" after it
20:03 * masak submits rakudobug
20:04 jnthn heh
20:04 * TimToady realizes he never made that nano-principle clear... :)
20:04 jnthn nom: say [^^] 5, 9, 17
20:04 p6eval nom d83a1c: OUTPUT«17␤»
20:04 jnthn [^^] is a curious beast.
20:04 masak TimToady: there are many good things to steal from Perl 5's error messages.
20:05 TimToady nom: say 5 ^^ 9 ^^ 17
20:05 p6eval nom d83a1c: OUTPUT«Nil␤»
20:05 masak I prefer Nil to 17.
20:05 jnthn 5 ^^ 9 gives False. False ^^ 17 of course gives 17...
20:05 Radvendii what is ^^?
20:05 masak Radvendii: eyebrows.
20:05 masak :P
20:05 Radvendii haha
20:05 TimToady short-circuit XOR
20:05 TimToady but it's a list infix
20:06 jnthn masak: Well, same. Any idea how we get reduce to do the right thing? :)
20:06 TimToady so it's only true if there's one true value
20:06 TimToady nom: say 5 ^^ 9 ^^ 17 ^^ 'phooey'
20:06 p6eval nom d83a1c: OUTPUT«Nil␤»
20:06 TimToady nom: say [^^] 5, 9, 17, 'phooey'
20:06 p6eval nom d83a1c: OUTPUT«Nil␤»
20:06 TimToady nom: say [^^] 5, 9, 'phooey'
20:06 p6eval nom d83a1c: OUTPUT«phooey␤»
20:07 Radvendii haha, weird
20:07 jnthn TimToady: Only happens with odd number of 'em. :)
20:07 masak jnthn: none whatsoever. ISTR hearing about the problem years ago.
20:07 masak jnthn: like, 2009.
20:07 jnthn TimToady: You can probably imagine why it's getting the result it is... :)
20:07 baest joined #perl6
20:07 TimToady so it's right half the time, which is better than a stopped clock, barely
20:08 masak "Perl 6: better than a stopped clock, barely"
20:08 TimToady I can imagine, sure, but [op] 1,2,3 is defined to be the same as 1 op 2 op 3
20:08 moritz modulo short-circuitry
20:08 colomon niecza: say [^^] 5, 9, 17
20:08 jnthn Right.
20:08 p6eval niecza v13-332-g677cf15: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &infix:<^^> in mainline␤  at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤  at Niecza.CLRB…
20:08 TimToady niecza: say 5 ^^ 0
20:09 p6eval niecza v13-332-g677cf15: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &infix:<^^> in mainline␤  at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤  at Niecza.CLRB…
20:09 TimToady hah
20:09 jnthn The spec says that ^^ doesn't short-circuit.
20:09 jnthn er
20:09 jnthn The spec says that [^^] doesn't short-circuit.
20:09 TimToady doesn't thunk
20:09 Radvendii nom: @a does role { at_pos
20:09 p6eval nom d83a1c: OUTPUT«===SORRY!===␤Variable @a is not predeclared at line 1, near " does role"␤»
20:09 Radvendii aaah!
20:09 Radvendii premature send
20:10 moritz but still the error was right :-)
20:11 TimToady jnthn: the spec doesn't say it doesn't short-circuit; it says it doesn't thunk its args, S03:1377
20:11 Radvendii nom: my @a does role { at_pos($j) { say "test" } }; @a[0];
20:11 p6eval nom d83a1c: OUTPUT«===SORRY!===␤Variable $j is not predeclared at line 1, near ") { say \"t"␤»
20:11 Radvendii yeah, that's the error i'm getting
20:11 jnthn TimToady: ah, I see
20:11 Radvendii but $j is an argument...
20:12 * colomon is trying to remember the details of niecza doing something funky with reduce and list ops....
20:12 TimToady perl6: say [||] 1, 0 xx *;  # should terminate
20:13 benabik Radvendii: try method at_post
20:13 benabik *at_pos
20:13 p6eval niecza v13-332-g677cf15: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤This macro cannot be used as a function at /tmp/_KOy8dLfF6 line 1:â�¤------> [32msay [||] 1, 0 xx *[33mâ��[31m;  # should terminate[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line …
20:13 p6eval ..pugs b927740, rakudo d83a1c: OUTPUT«(timeout)»
20:13 TimToady perl6: say (1, 0 xx *)[0];  # should terminate
20:14 p6eval pugs b927740, rakudo d83a1c, niecza v13-332-g677cf15: OUTPUT«1␤»
20:14 Radvendii benabik: that works
20:15 TimToady reductions on list associative operators must take that into account
20:21 masak perl6: multi postfix:<!>(0) { 1 }; multi postfix:<!>(Int $n) { $n * ($n - 1) }; say 5!
20:22 p6eval rakudo d83a1c, niecza v13-332-g677cf15: OUTPUT«20␤»
20:22 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "0"␤    expecting formal parameter or ")"␤    at /tmp/WnOGKkiQFs line 1, column 19␤»
20:22 masak augh
20:22 masak perl6: multi postfix:<!>(0) { 1 }; multi postfix:<!>(Int $n) { $n * ($n - 1)! }; say 5!
20:22 p6eval rakudo d83a1c, niecza v13-332-g677cf15: OUTPUT«120␤»
20:22 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "0"␤    expecting formal parameter or ")"␤    at /tmp/N95bZ46NKD line 1, column 19␤»
20:23 masak niecza: multi postfix:<!>(0) { 1 }; multi postfix:<!>(Int $n) is looser(&infix:<+>) { $n * $n - 1! }; say 5!
20:23 p6eval niecza v13-332-g677cf15: OUTPUT«(timeout)»
20:23 masak hm.
20:23 masak niecza: multi postfix:<!>(0) { 1 }; multi postfix:<!>(Int $n) is looser(&infix:<+>) { $n * ($n - 1!) }; say 5!
20:23 p6eval niecza v13-332-g677cf15: OUTPUT«(timeout)»
20:24 masak hm.
20:24 moritz maybe that tries to install two postfixes, one tighter than +, one looser
20:24 Radvendii hm... is there any way to give something access to private variables without making them public?
20:24 Radvendii something specific, that is
20:25 masak I think multi subs shouldn't accept looser/tighter/equal at all. only only and proto should.
20:25 masak Radvendii: yes. a method.
20:25 moritz masak: aye
20:25 fridim_ joined #perl6
20:25 masak Radvendii: methods are the way to provide specific access to attributes. that's what mehtods do.
20:25 Radvendii masak: got it.
20:25 colomon niecza: multi postfix:<!>(0) { 1 }; multi postfix:<!>(Int $n) { $n * ($n - 1!) }; say 5!
20:26 p6eval niecza v13-332-g677cf15: OUTPUT«(timeout)»
20:26 dalek specs: c6c7fcf | larry++ | S03-operators.pod:
20:26 dalek specs: clarify semantics of [op] for list associatives
20:26 dalek specs: review: https://github.com/perl6/specs/commit/c6c7fcf00f
20:26 benabik colomon: ($n - 1!) ?
20:26 colomon niecza: multi postfix:<!>(0) { 1 }; multi postfix:<!>(Int $n) { $n * ($n - 1)! }; say 5!
20:26 p6eval niecza v13-332-g677cf15: OUTPUT«120␤»
20:26 colomon benabik: just a cut-n-paste from masak, but yeah, that's his problem
20:26 Radvendii if i wanna just make them public, do i say "has $a=5 is rw;" or "has $a is rw = 5;"?
20:27 masak colomon: right, but mine was s'posed to be looser than infix:<->
20:29 Radvendii hmm... it doesn't seem to like either one
20:29 Radvendii can i initialize an instance variable and make it rw?
20:30 benabik has $.a ?
20:30 Radvendii that's what i meant
20:30 moritz Radvendii: has $.x is rw = 5;
20:30 benabik nom: class A { has $.a = 5 }; A.new.a = 4
20:30 p6eval nom d83a1c: OUTPUT«Cannot assign to a readonly variable or a value␤  in block <anon> at /tmp/DV29G8tr7m:1␤  in <anon> at /tmp/DV29G8tr7m:1␤»
20:31 benabik nom: class A { has $.a is rw = 5 }; A.new.a = 4
20:31 p6eval nom d83a1c:  ( no output )
20:31 benabik nom: class A { has $.a is rw = 5 }; my $a = A.new; say $a.a; $a.a = 0; say $a.a
20:31 p6eval nom d83a1c: OUTPUT«5␤0␤»
20:32 benabik Radvendii: ^^ seems to work
20:32 Radvendii okay...
20:32 Radvendii then my error must be coming from elsewhere
20:32 TimToady sure, ^^ works, but [^^] doesn't  # rim shot
20:32 Radvendii TimToady: :P
20:33 Radvendii it doesn't like it when i say method at_pos($s:, $i). what's wrong with that?
20:33 Radvendii isn't that the syntax for getting self into $s?
20:33 masak no.
20:34 Radvendii :P
20:34 jnthn Don't need the ,
20:34 masak s/:,/:/
20:34 Radvendii got it
20:34 Radvendii that's odd...
20:34 Radvendii why is that?
20:36 arnsholt Well, the colon serves as separator, instead of the comma
20:36 arnsholt Much like in normal text, really
20:36 Radvendii yeah, but programming isn't supposed to parse like english. i guess it doesnt really matter
20:37 benabik Radvendii: Perl _is_ supposed to parse like English.
20:38 moritz http://www.hirewolf.com/blog/hirewolf-open-source-contest # might be interesting for some or the other p6 hacker :-)
20:38 Radvendii huh? since when. i thought that was python's gig. or applescript. perl has all of that punctuation.
20:40 moritz Radvendii: read "Programming Perl", section 27.2. "Perl Poetry"
20:40 TimToady why do you think punctuation is the opposite of English?  Spoken English is full of punctuation...
20:40 moritz Radvendii: and also http://en.wikipedia.org/wiki/Black_Perl
20:42 * TimToady wonders if ancient Hebrews actually thought their language didn't contain vowels...
20:42 mj41 joined #perl6
20:43 Radvendii that's hillarious (black perl)
20:43 Radvendii TimToady: vowels were probably second-class letters. just like we dont think english contains a glottal stop (think of the - in uh-oh)
20:44 TimToady or the tt in glottal, if you're Cockney :)
20:44 Radvendii haha, yup. more people pronounce t in fountain that way
20:44 Radvendii foun-n
20:45 TimToady funny that IPA seems to be a second-class citizen in Unicode
20:45 Radvendii how so?
20:47 Radvendii if i "has" $.a and @.a, how does it know which "$obj.a" is refering to?
20:47 TimToady [fæunʔn] or some such, but that's latin 'ʔ'
20:47 moritz Radvendii: the answer is "don't do that"
20:47 Radvendii moritz: haha. okay
20:48 Radvendii moritz: but what would it do?
20:48 moritz Radvendii: give them other names
20:48 dalek rakudo/nom: 00e5547 | moritz++ | src/ (2 files):
20:48 dalek rakudo/nom: throw X::Phaser::Once exceptions when two CATCH or CONTROL blocks appear in a block
20:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/00e55472ae
20:48 dalek rakudo/nom: ef67fd4 | moritz++ | src/ (2 files):
20:48 dalek rakudo/nom: more typed redeclaration exceptions
20:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ef67fd4fa0
20:48 moritz you can always use singular and plural if you want
20:48 Radvendii nom: class A {has $.a=5; has @.a=(1,2)}; my A $a .= new; say $a.a;
20:48 p6eval nom d83a1c: OUTPUT«5␤»
20:48 Radvendii im just curious
20:49 Radvendii interesting
20:49 TimToady e pluribus unum
20:49 dalek roast: 0b7d7d2 | moritz++ | S32-exceptions/misc.t:
20:49 dalek roast: more typed exception tests
20:49 dalek roast: review: https://github.com/perl6/roast/commit/0b7d7d247a
20:49 Radvendii it's probably whichever you declare first
20:49 moritz $a.foo and $a.foos
20:49 Radvendii nom: class A {has $.a=5; has @.a=(1,2)}; my A $a .= new; say $a.a[0];
20:49 p6eval nom d83a1c: OUTPUT«5␤»
20:49 TimToady e pluribus unum -> $()
20:49 masak Radvendii: yes, but it's a bug.
20:49 Radvendii masak: oh, okay
20:49 Radvendii moritz: i know, i'm just curious as to what it _would_ do
20:50 masak Radvendii: see https://rt.perl.org/rt3/Ticket/Display.html?id=108670
20:50 Radvendii alright, alright :P
20:50 benabik nom: class A {has @.a=(1,2); has $.a=5}; my A $a .= new; say $a.a;
20:50 p6eval nom d83a1c: OUTPUT«1 2␤»
20:51 benabik It is whichever was done first.
20:51 benabik *declared
20:51 Radvendii benabik: yeah
20:51 Radvendii why not just say $obj.$a
20:51 Radvendii and $obj.@a
20:51 moritz eeks
20:51 moritz because object names are identifiers
20:51 moritz and if we allow sigils in identifiers, we lose the distiction between the two
20:51 Radvendii so?
20:52 moritz and then we don't know if $@a really means $( @a ), or a variable named $@a
20:52 fridim_ joined #perl6
20:52 moritz and ... a whole can of worms.
20:53 Radvendii it would only work directly after the .
20:53 Radvendii $a.$b $a$b would still be illegal.
20:54 moritz and then somebody wants to override the accessors
20:54 jnthn hmmm...so: has $.x; has @.x; method x() { } # did we settle on this being allowed or disallowed?
20:54 * jnthn can't quite tell from the ticket :)
20:54 moritz and wants to write method $x { } and method @x { }
20:54 moritz also $a.$b is taken
20:55 Radvendii moritz: with what?
20:55 moritz nom: sub f($x) { say $x }; my $a = &f; 'foo'.%a
20:55 moritz nom: sub f($x) { say $x }; my $a = &f; 'foo'.aa
20:55 moritz nom: sub f($x) { say $x }; my $a = &f; 'foo'.$a
20:55 p6eval nom d83a1c: OUTPUT«===SORRY!===␤Confused at line 1, near "'foo'.%a"␤»
20:55 p6eval nom d83a1c: OUTPUT«Method 'aa' not found for invocant of class 'Str'␤  in block <anon> at /tmp/cxsR70bPFo:1␤  in <anon> at /tmp/cxsR70bPFo:1␤»
20:55 p6eval nom d83a1c: OUTPUT«foo␤»
20:56 Radvendii alright fine
20:56 Radvendii be that way
20:56 Radvendii ;)
20:56 * moritz is that way :-)
20:57 benabik nom: sub f($_) { .say }; 'foo'.&f # ?
20:57 p6eval nom d83a1c: OUTPUT«foo␤»
20:57 benabik \o/
20:57 Radvendii :P
20:58 Radvendii brb guys
20:58 * Radvendii is updating iTerm
20:59 Radvendii joined #perl6
20:59 Radvendii o/
21:00 TimToady jnthn: I think the consensus was leaning toward "allowed"
21:01 Radvendii TimToady: allowed but not for long i thoguh
21:01 moritz I think the consensus was that two attributes with accessors and the same short name were disallowed
21:01 moritz because of .new(foo => $bar) ambiguty
21:01 Radvendii or "shouldnt be but is"
21:02 moritz has $.a; has @.a;   ::?CLASS.new(a => 1) # which one is it?
21:02 TimToady not if there's a disambuating method explicitly put there
21:02 jnthn Locally:
21:02 jnthn > class A { has @.a = 2,3; has $.a = 1 }
21:02 jnthn Two or more attributes declared that both want an accessor method 'a'
21:02 jnthn Wordsmithing? :)
21:02 jnthn At the moment also:
21:02 jnthn > class A { has @.a = 2,3; has $.a = 1; method a() { } }
21:02 jnthn Two or more attributes declared that both want an accessor method 'a'
21:02 TimToady but I see the problem with BUILD args
21:02 jnthn Can easily change that.
21:03 jnthn But the .new/BUILD issue makes me prefer it as it is.
21:04 MayDaniel joined #perl6
21:04 moritz std: f($x!) { }
21:04 p6eval std 40d10f7: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $x is not predeclared at /tmp/S19nrfX0VF line 1:�------> [32mf([33m�[31m$x!) { }[0m�Negation metaoperator not followed by valid infix at /tmp/S19nrfX0VF line 1:�------> [32mf($x![33m�[31m) { }[0m�Parse failed�FAILED 00:…
21:04 moritz std: sub f($x!) { }
21:04 p6eval std 40d10f7: OUTPUT«Potential difficulties:â�¤  $x is declared but not used at /tmp/icxc_zgq0E line 1:â�¤------> [32msub f([33mâ��[31m$x!) { }[0mâ�¤ok 00:01 109mâ�¤Â»
21:04 moritz std: sub f($x! = 3) { }
21:04 p6eval std 40d10f7: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Cannot put a default on a required parameter at /tmp/ZwFtvK3hq3 line 1:â�¤------> [32msub f($x! = 3[33mâ��[31m) { }[0mâ�¤Potential difficulties:â�¤  $x is declared but not used at /tmp/ZwFtvK3hq3 line 1:â�¤------> [32msub f([33mâ��[31m$x! = …
21:05 Radvendii why not?
21:05 moritz because you have to provide a value for it anyway
21:05 moritz so what use is the default?
21:05 moritz it just means you are confused
21:05 Radvendii oh
21:05 Radvendii good call
21:06 TimToady we don't classify all unreachable code that way, but in this case it seems reasonable
21:08 TimToady jnthn: it seems to me that having the disambuating function able to "fix" it is necessary for composing two roles with conflicting attributes
21:08 masak that's essentially the same rationale for forbidding auto-generation of a public accessor that would never be generated.
21:08 moritz there's a huge number of errors related to signatures
21:08 moritz because they are complex beasts, and much can go wrong
21:09 moritz sleep&
21:09 jnthn o/, moritz
21:09 jnthn TimToady: Two roles with conflicting attributes will conflict on the attribute storage names even if accessor methods are resolved.
21:10 TimToady they're not stored with the sigil?
21:10 jnthn TimToady: oh, sorry
21:10 jnthn TimToady: OK, in that case they won't. :)
21:10 jnthn (Was thinking of the same sigil case...for some reason...)
21:12 mtk joined #perl6
21:12 dalek Heuristic branch merge: pushed 28 commits to nqp/qbootstrap by jnthn
21:21 dalek rakudo/nom: 71225d3 | jnthn++ | docs/ROADMAP:
21:21 dalek rakudo/nom: A few difficulty estimates.
21:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/71225d3253
21:21 dalek rakudo/nom: ccd75fa | jnthn++ | src/Perl6/Metamodel/AttributeContainer.pm:
21:21 dalek rakudo/nom: Catch case of a class that does 'has $.x; has @.x'.
21:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ccd75fab95
21:21 dalek rakudo/nom: 4ffbd61 | jnthn++ | src/Perl6/Metamodel/AttributeContainer.pm:
21:21 dalek rakudo/nom: Allow an explicit method to resolve an attribute accessor conflict.
21:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4ffbd614a1
21:25 not_gerd left #perl6
21:29 Radvendii joined #perl6
21:30 Radvendii im getting a weird maximum recursion levels error that is due to some behind the scenes method calling
21:30 Radvendii where's that code-posting website thing?
21:31 colomon http://gist.github.com
21:33 bbkr1 joined #perl6
21:35 Radvendii https://gist.github.com/1665643
21:35 Radvendii that's the code that's producing the problem
21:35 SHODAN joined #perl6
21:35 BinGOs joined #perl6
21:35 geekosaur joined #perl6
21:36 Radvendii alright
21:36 Radvendii i think i fixed that error...
21:36 Radvendii but now I'm getting a weirder error.
21:37 Radvendii website is updated...
21:39 Radvendii it thinks i'm trying to access the method $s.a instead of the variable $s.a (@.a)
21:41 jnthn $s.h< $p           >
21:42 jnthn That's probably not what you meant
21:42 jnthn $s.h{$p} # think you wanted this
21:42 jnthn the ... in $h<...> is always literal
21:46 Radvendii o-oh
21:47 Radvendii i get the same error though...
21:47 Radvendii (also, i thought <...> was double-quoted...)
21:48 Radvendii the error is coming from the line "FETCH => method {$s.a[$i][$j]},"
21:49 Radvendii is it possible that the $s is not following through to the "role{}"
21:50 jnthn Will that not mix the role in every time the variable is accessed?
21:51 jnthn Perhaps the issue is that you're expecting to get a fresh instance of the role each time you use it, though, and in reality roles are declarational so you're only getting one of them.
21:52 Radvendii mayeb...
21:52 Radvendii but that still shouldn't be telling me that $s doesnt have a method "a"
21:53 Radvendii right?
21:53 jnthn Note that $s.a[$i][$j] is a method call to the method a.
21:53 jnthn That's what accessors are - method calls.
21:53 Radvendii right. but it should automatically create that, no?
21:54 jnthn Radvendii: I suspect the issue isn't that it doesn't have one, it's that the $s inside the role doesn't work out.
21:54 Radvendii a-ah...
21:54 jnthn Radvendii: I suspect it's getting tied to the static lexpad or some such.
21:55 Radvendii so then how do i do this? making another class wouldn't work either...
21:55 Radvendii would it?
21:57 jnthn Radvendii: No, but if you declare a my role MyAtPos[$s] { method at_pos ... } rather than the anonymous one
21:57 jnthn And then do ... does MyAtPos[$s]
21:57 jnthn Then you probably get what you're after.
21:57 Radvendii ah
21:57 Radvendii okay
21:57 Radvendii let me try that...
21:58 jnthn (that's a parametric role)
21:58 Radvendii where do i declare the role?
21:58 Radvendii and what's parametric?
21:59 jnthn Radvendii: Maybe declare it just above your at_pos method (the outermost one)
21:59 Radvendii and what's that [$s] syntax...
21:59 jnthn Radvendii: Parametric means a role that takes some parameters
21:59 Radvendii ah
21:59 Radvendii that answers my other question as well
21:59 jnthn :)
21:59 Radvendii if roles are very much like classes in the underlying code, can i make classes that take in parameters?
22:02 fsergot good night o/
22:02 Radvendii o/
22:03 Radvendii role test[$a,$b]{}
22:03 Radvendii nom: role test[$a,$b]{}
22:03 p6eval nom 4ffbd6:  ( no output )
22:05 jnthn Radvendii: They're not much like classes in the underlying code. :)
22:06 Radvendii oh. i thought i'd heard that
22:06 jnthn And no, you can't parameterize classes.
22:06 Radvendii dang :P
22:06 jnthn They have things in common, but plenty of things different too :)
22:07 Radvendii do i have to put a ';' at the end of a method declaration?
22:07 jnthn not if there's a new line after the }
22:09 masak wow, Regexp::Grammars has the new % syntax!
22:09 * masak impressed
22:12 Radvendii jnthn: Weird.. this is probably just in the semantics, but when i try to access $a[0][1] (where $a is an object of the class), i get Proxy.new()
22:14 jnthn Radvendii: Hm. Sounds like somewhere along the way some kind of double-wrapping is going on.
22:15 Radvendii yeah, that's what i figured...
22:15 Radvendii https://gist.github.com/1665643 is updated
22:18 Radvendii at-pos is the same as at_pos right?
22:19 benabik joined #perl6
22:23 Radvendii jnthn: is there a reason i can't manually call FETCH?
22:23 Radvendii (on a proxy object)
22:24 Radvendii never mind
22:24 Radvendii i can
22:25 jnthn Radvendii: I think your method at_pos's want to be "is rw"
22:25 cognominal joined #perl6
22:26 Radvendii i hate it when my methods make unions and have demands and all that :P
22:26 Radvendii that doesn't seem to help...
22:27 bbkr1 I have difficult question that I need to solve for JSON-RPC refactoring. How to recognize dispatch failure? For example my server was given handler class with method foo(Int,Str){…} while someone called server with foo("bar","baz"). Can I recognize that dispatch is not possible without calling foo? Maybe somehow through meta?
22:27 masak 'night, #perl6
22:27 Radvendii masak: o/
22:27 bbkr1 good night
22:28 jnthn bbkr1: Yeah, because Rakudo's MAIN implementation does it
22:28 renormalist joined #perl6
22:29 jnthn bbkr1: The .candidates_matching method in any Routine (sub or method) will do it
22:30 * bbkr1 digs into spec
22:36 Radvendii jnthn: woah.
22:36 dalek nqp/bs: 1d0b7f2 | jnthn++ | src/6model/sixmodelobject.h:
22:36 dalek nqp/bs: Give STables a slot for marking them with an SC.
22:36 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/1d0b7f2593
22:36 dalek nqp/bs: 8071678 | jnthn++ | src/6model/knowhow_bootstrapper.c:
22:36 dalek nqp/bs: Mark STables created during bootstrap with the bootstrap SC also.
22:36 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/8071678c8d
22:36 Radvendii jnthn: if i try to assign to $a[0], it doesnt even call STORE
22:37 Radvendii it calls FETCH about 5 times, and then raises an error because i'm trying to assign to a non-container
22:38 Radvendii is there a problem with having multiple arguments to roles?
22:38 Radvendii like role MyAtPos[$s, $i]
22:38 Radvendii because my syntax hylighter goes screwy when i do that
22:38 jnthn Should be fine.
22:38 fridim_ joined #perl6
22:39 Radvendii okay. it's probably just the highlighter
22:39 Radvendii but still, why doesn't it call STORE?
22:39 jnthn Not sure - I thought you had that bit working.
22:39 jnthn (the one level deep bit)
22:39 Radvendii i thought so too
22:40 bbkr1 jnthn: I've found Routine class in source code and read methods. But how can I get Routine object from class?
22:40 jnthn bbkr1: Oh!
22:40 jnthn bbkr1: TheClass.^find_method('foo')
22:41 jnthn bbkr1: Can be on an object also
22:42 Radvendii Oh! it's because i was saying "say $a[0]=1;"
22:43 Radvendii that's odd.. it should still be doing $a[0]=1 first, which would call STORE
22:45 bbkr1 rakudo: class Foo { method bar (Int, Str) {}}; my $method = Foo.^find_method("bar"); $method.candidates_matching.say # empty parcel. weird
22:45 p6eval rakudo 4ffbd6: OUTPUT«␤»
22:46 Radvendii i don't understand why it's calling FETCH over and over again
22:46 Radvendii and why 6 times?
22:46 Radvendii that's so arbitrary
22:47 bbkr1 rakudo: class Foo { method bar (Int, Str) {}}; my $method = Foo.^find_method("bar"); $method.candidates_matching(Foo, 1, "x").perl.say # yay, jnthn++, thanks!
22:48 p6eval rakudo 4ffbd6: OUTPUT«(method bar(Foo , Int , Str , Mu %_!) { ... },)␤»
22:48 jnthn bbkr1: Well, you didn't pass in any arguments :)
22:48 jnthn bbkr1: yes, like that
22:48 jnthn Radvendii: It's not particularly surprising FETCH would be called multiple times.
22:48 Radvendii why?
22:48 Radvendii i'm just accessing it once
22:49 jnthn Radvendii: Proxy is a scalar container. Various bits of the runtime - as you pass the container around - will want to decontainerize it.
22:49 Radvendii weird. but OK
22:49 jnthn Radvendii: For example, whenever they bind it to the symbol "self", they do so.
22:50 Radvendii so the first layer of at_pos is working
22:54 jnthn OK, time for me to take some rest.
22:54 Radvendii haha alright
22:54 jnthn 'night o/
22:54 Radvendii goodnight o/
22:56 Radvendii SO |O| O|Z
22:56 Radvendii oops
22:56 Radvendii did not mean to hit enter :P
23:18 whiteknight joined #perl6
23:31 tokuhirom joined #perl6
23:38 tokuhirom joined #perl6
23:50 sorear good * #perl6
23:54 sorear TimToady: I do not understand very well how non-flattening is supposed to work
23:55 sorear moritz: on a candidate set, niecza only respects precedence for the proto
23:56 nebuchadnezzar joined #perl6

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

Perl 6 | Reference Documentation | Rakudo