Camelia, the Perl 6 bug

IRC log for #perl6, 2012-07-20

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 timotimo is +(collate-same([1, 1, 1, 1, 1, 2, 2, 2])), 2, "sublists work";
00:00 timotimo here i get 10 instead of 2
00:00 timotimo collate-same should have returned [[1, 1, 1, 1, 1], [2, 2, 2]]
00:00 timotimo r: [[1, 1, 1, 1, 1], [2, 2, 2]].perl
00:00 p6eval rakudo 4eeffc:  ( no output )
00:00 timotimo r: say [[1, 1, 1, 1, 1], [2, 2, 2]].perl
00:00 p6eval rakudo 4eeffc: OUTPUT«[[1, 1, 1, 1, 1], [2, 2, 2]]␤»
00:00 timotimo r: say +([[1, 1, 1, 1, 1], [2, 2, 2]])
00:00 p6eval rakudo 4eeffc: OUTPUT«2␤»
00:00 quietfanatic say collate-same([1, 1, 1, 2, 2, 2]).WHAT
00:01 quietfanatic r: say collate-same([1, 1, 1, 2, 2, 2]).WHAT
00:01 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&collate-same' called (line 1)␤»
00:01 timotimo sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }
00:01 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }; say collate-same([1, 1, 1, 2, 2, 2]).WHAT
00:01 p6eval rakudo 4eeffc: OUTPUT«List()␤»
00:02 quietfanatic hm
00:02 quietfanatic the question is, is it flattening
00:02 timotimo yup, that is the question
00:02 quietfanatic and does prefix:<+> flatten and what does it flatten.
00:03 timotimo well, at least up there + didn't flatten
00:03 quietfanatic Also, [] constructs an Array, not a List
00:03 quietfanatic and [] things never flatten
00:03 quietfanatic like ever
00:03 timotimo ah, ok
00:03 timotimo r: say +(gather for ^5 { take [$_ xx $_] })
00:03 p6eval rakudo 4eeffc: OUTPUT«5␤»
00:04 timotimo here it doesn't flatten
00:04 quietfanatic yes
00:04 timotimo well, of course, there's [ ] deep in there
00:04 quietfanatic becuse you're creating arrays with []
00:04 timotimo right
00:04 quietfanatic r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take [gather { take @a.shift while (+@a and @a[0] == $iv) }] } } }; say +collate-same([1, 1, 1, 2, 2, 2])
00:04 p6eval rakudo 4eeffc: OUTPUT«2␤»
00:05 quietfanatic say +((1, 1, 1).list, (2, 2, 2).list)
00:05 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] ==  $iv) } } } }; sub rle(@a) { my $subs = collate-same(@a); gather for $subs { take [+$_, $_[0]] } }
00:05 p6eval rakudo 4eeffc:  ( no output )
00:06 timotimo oi, no return yet
00:06 quietfanatic r: say +((1, 1, 1).list, (2, 2, 2).list)
00:06 p6eval rakudo 4eeffc: OUTPUT«6␤»
00:06 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] ==  $iv) } } } }; sub rle(@a) { my $subs = collate-same(@a); gather for $subs { take [+$_, $_[0]] } }; say rle([1, 1, 1, 2, 2, 2]).perl;
00:06 p6eval rakudo 4eeffc: OUTPUT«([6, 1],).list␤»
00:06 timotimo something in there flattens. probably where i put collate-same(@a) into $subs?
00:07 quietfanatic Hm
00:07 quietfanatic Oh, by the way
00:07 quietfanatic for $var { ... } never flattens $var
00:08 quietfanatic $ variables do not flatten either.
00:08 quietfanatic r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] ==  $iv) } } } }; sub rle(@a) { my $subs = collate-same(@a); gather for @($subs) { take [+$_, $_[0]] } }; say rle([1, 1, 1, 2, 2, 2]).perl;
00:08 p6eval rakudo 4eeffc: OUTPUT«([1, 1], [1, 1], [1, 1], [2, 2], [2, 2], [2, 2]).list␤»
00:08 quietfanatic huh
00:09 quietfanatic yeah, the for is now flattening the nested lists.
00:09 quietfanatic r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] ==  $iv) } } } }; sub rle(@a) { my $subs = collate-same(@a); gather for $subs.lol { take [+$_, $_[0]] } }; say rle([1, 1, 1, 2, 2, 2]).perl;
00:09 p6eval rakudo 4eeffc: OUTPUT«([6, 1, 1, 1, 2, 2, 2],).list␤»
00:09 quietfanatic erk!
00:09 timotimo whoops :)
00:09 quietfanatic I no longer understand anything :)
00:09 timotimo i have never understood anything
00:10 quietfanatic r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] ==  $iv) } } } }; sub rle(@a) { my $subs = collate-same(@a); gather for $subs[] { take [+$_, $_[0]] } }; say rle([1, 1, 1, 2, 2, 2]).perl;
00:10 p6eval rakudo 4eeffc: OUTPUT«([1, 1], [1, 1], [1, 1], [2, 2], [2, 2], [2, 2]).list␤»
00:10 stephenlb joined #perl6
00:12 timotimo let's take collate-same out of the equation for now
00:12 timotimo r: sub rle(@a) { my $subs = collate-same(@a); gather for  $subs[] { take [+$_, $_[0]] } }; say rle([1, 1, 1, 2, 2, 2]).perl
00:12 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&collate-same' called (line 1)␤»
00:12 timotimo r: sub rle(@a) { my $subs = @a; gather for  $subs[] { take [+$_, $_[0]] } }; say rle([[1, 1, 1], [2, 2, 2]]).perl;
00:12 p6eval rakudo 4eeffc: OUTPUT«([3, 1], [3, 2]).list␤»
00:12 timotimo see, it works now
00:12 quietfanatic That's because of your []
00:12 quietfanatic You're creating a List of Arrays here
00:12 quietfanatic collate-same was creating a List of Lists.
00:13 timotimo right, okay
00:13 timotimo r: sub rle(@a) { my $subs = @a; gather for  $subs[] { take [+$_, $_[0]] } }; say rle([(1, 1, 1), (2, 2, 2])]).perl;
00:13 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2, near "[(1, 1, 1)"␤»
00:13 timotimo r: sub rle(@a) { my $subs = @a; gather for  $subs[] { take [+$_, $_[0]] } }; say rle([(1, 1, 1), (2, 2, 2)]).perl;
00:13 p6eval rakudo 4eeffc: OUTPUT«([1, 1], [1, 1], [1, 1], [2, 2], [2, 2], [2, 2]).list␤»
00:13 timotimo so i'll have to figure out how to make a list of arrays in my collate-same
00:13 quietfanatic and, while there ought to be ways to make LoLs not flatten, it's apparently really difficult.
00:13 timotimo would take (gather {...}).array work?
00:13 quietfanatic [gather {...}]
00:14 quietfanatic worked when I tried it above
00:14 timotimo ah, neat
00:15 timotimo cool, taht makes it work completely
00:15 quietfanatic r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take [gather { take @a.shift while (+@a and @a[0] == $iv) }] } } }; sub rle(@a) { gather for @a { take [+$_, $_[0]] } }; say rle([1, 1, 1, 2, 2]).perl
00:15 p6eval rakudo 4eeffc: OUTPUT«([1, 1], [1, 1], [1, 1], [2, 2], [2, 2]).list␤»
00:15 quietfanatic er...
00:15 quietfanatic oh whoops
00:15 quietfanatic r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take [gather { take @a.shift while (+@a and @a[0] == $iv) }] } } }; sub rle(@a) { gather for collate-same(@a) { take [+$_, $_[0]] } }; say rle([1, 1, 1, 2, 2]).perl
00:16 p6eval rakudo 4eeffc: OUTPUT«([3, 1], [2, 2]).list␤»
00:16 quietfanatic there we go
00:16 timotimo i suppose a true functional programmer would scoff at my ineptitude
00:18 quietfanatic A true functional programmer wouldn't flatten anything ever
00:18 timotimo oh, very much not
00:18 timotimo lists are always deeply nested trees
00:18 timotimo unbalanced trees
00:19 timotimo what are those things called? devolved? like a triangle where all points are on a line would be a devolved triangle?
00:19 quietfanatic very unbalanced :)
00:19 quietfanatic degenerate.
00:19 timotimo ah, of course
00:46 skids joined #perl6
00:48 zhutingting joined #perl6
00:52 stephenlb joined #perl6
01:02 scott___ joined #perl6
01:03 timotimo huh
01:03 timotimo r: my @a = [1, 2, 3, 4, 5]; say @a[0]
01:03 p6eval rakudo 4eeffc: OUTPUT«1 2 3 4 5␤»
01:03 timotimo so putting an array into a @-sigil'd variable will turn it into a list with the array as its first item?
01:04 kurahaupo same as P5?
01:04 colomon r: my @a = 1, 2, 3 , 4, 5; say @a[0]
01:04 p6eval rakudo 4eeffc: OUTPUT«1␤»
01:05 colomon r: my @a = [1, 2], 3 , 4, 5; say @a[0]
01:05 p6eval rakudo 4eeffc: OUTPUT«1 2␤»
01:05 kurahaupo btw what's with the unicode \u2424 at the end of those outputs?
01:05 colomon kurahaupo: that's the newline at the end of the say statement
01:05 benabik That's the code for N/L
01:07 kurahaupo I gathered that was the intent; was just wondering why. (I'm guessing it has something to do with IRC perhaps splitting records on CR and/or LF boundaries)
01:08 kurahaupo (why not something more typical like LF or CR+LF)
01:08 benabik Yes.  IRC only has one line messages, so the newline needs to be converted to the Unicode
01:08 colomon kurahaupo: it's just an easy way to visualize where the newlines are.
01:08 kurahaupo ok, thanks
01:08 timotimo kurahaupo: i never did any perl5, so that surprised me
01:08 timotimo i come from python, which might explain my urge to put [] everywhere i want to have a list
01:09 kurahaupo in P5 [...] returns a reference to an anonymous array
01:09 timotimo r: my @a = 1; say @a[0]; say @a[1];
01:09 p6eval rakudo 4eeffc: OUTPUT«1␤Any()␤»
01:09 timotimo mhm, mhm.
01:09 kurahaupo And a scalar can be assigned to an array, making it a single-element array
01:11 timotimo uh, what was the string concatenation operator again?
01:11 kurahaupo r: say "a" ~ "b";
01:11 p6eval rakudo 4eeffc: OUTPUT«ab␤»
01:11 timotimo ah, of course
01:12 kurahaupo r: say «a b» X~X «c d»;
01:12 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Confused␤at /tmp/y2k0S7p2q7:1␤»
01:12 * kurahaupo is clearly a bit behind on syntax :-(
01:13 timotimo no, that's not how you do it, you do X~
01:13 timotimo if you want to cartesian-product-concatenate
01:13 timotimo r: say <a b c> X~ <1 2>
01:13 p6eval rakudo 4eeffc: OUTPUT«a1 a2 b1 b2 c1 c2␤»
01:22 kurahaupo This is where the DWIM-auto-dereference starts to do ones head in.
01:23 kurahaupo say ['a','b'] X~ 1 ... 3;
01:23 kurahaupo r: say ['a','b'] X~ 1 ... 3;
01:23 p6eval rakudo 4eeffc: OUTPUT«a1 a2 a3 b1 b2 b3␤»
01:23 kurahaupo r: say ('a','b') X~ 1 ... 3;
01:23 p6eval rakudo 4eeffc: OUTPUT«a1 a2 a3 b1 b2 b3␤»
01:23 benabik r: say 'a', 'b' X~ 1..3
01:23 p6eval rakudo 4eeffc: OUTPUT«a1 a2 a3 b1 b2 b3␤»
01:23 benabik Interesting.  ~ is lower than ,
01:23 kurahaupo r: @a = ['a','b']; say @a X~ 1 ... 3;
01:23 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Variable @a is not declared␤at /tmp/PeqSkTkxaO:1␤»
01:23 kurahaupo r: my @a = ['a','b']; say @a X~ 1 ... 3;
01:23 p6eval rakudo 4eeffc: OUTPUT«a b1 a b2 a b3␤»
01:24 kurahaupo r: my @a = ['a','b']; say @a[0] X~ 1 ... 3;
01:24 p6eval rakudo 4eeffc: OUTPUT«a1 a2 a3 b1 b2 b3␤»
01:24 kurahaupo r: my @a = ['a','b']; say @a[0][0] X~ 1 ... 3;
01:24 p6eval rakudo 4eeffc: OUTPUT«a1 a2 a3␤»
01:24 benabik Oh!.
01:24 kurahaupo argh
01:24 timotimo ha! same mistake i did :)
01:24 benabik r: my @a = ['a', 'b']; say @a.perl
01:24 p6eval rakudo 4eeffc: OUTPUT«Array.new(["a", "b"])␤»
01:25 timotimo it's a list with an array as its first argument
01:25 benabik Assignment of array to array is not as expected.
01:25 xinming joined #perl6
01:26 kurahaupo just remember that [] makes a reference; leave them out if you want the list of elements
01:32 timotimo flattening and non-flattening kind of makes my head explode right now :|
01:34 timotimo (trying the "every combination of length $n from @a problem)
01:38 kurahaupo timotimo: I've been one of the perletariat from way back, but this is making me look more kindly at Python. :-(
01:38 timotimo hah :)
01:39 timotimo it seems my problems stem from the fact that X, would recurse into substructures or so
01:40 kurahaupo timotimo: would like to continue discussion but I need some lunch (I'm in UTC+12 -- where are you?)
01:40 timotimo it's 0340 :)
01:41 timotimo UTC+2 i believe
01:41 kurahaupo perhaps I should ask "where's your body clock" rather than "where's your local timezone" :-)
01:42 geekosaur that doesn;t always work eeither.  I know a bunch of people with non-24-hour sleep syndrome
01:43 geekosaur (occasionally that includes me but it usually takes a trigger to send me into 32-hour mode)
01:43 * kurahaupo is envious of those with 28-hour circadian rhythms
01:54 timotimo how do i concatenate two arrays? (or in this case a single item to the left of an array)
01:59 timotimo things flatten if i really don't want them to and stay structured even though i really, really want them flat :|
02:00 timotimo oh, okay. [($_, @a).flat] does the trick ...
02:01 Tene kurahaupo: is yours longer or shorter than 28-hour?
02:03 timotimo i made it! through strange means, but i made i.
02:05 timotimo r: multi combinations(@a, $n) { gather for ^+@a { my $elem = @a[$_]; my @others = @a[^$_], @a[$_+1..*]; take [($elem , @($_)).flat] for combinations(@others, $n - 1); } } multi combinations(@a, 1) { return @a; } multi combinations([], $n) { return [] }
02:05 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Confused␤at /tmp/yrDVM4Nuct:1␤»
02:05 timotimo oh, yes
02:05 timotimo multi combinations(@a, $n) { gather for ^+@a { my $elem = @a[$_]; my @others = @a[^$_], @a[$_+1..*]; take [($elem , @($_)).flat] for combinations(@others, $n - 1); } }; multi combinations(@a, 1) { return @a; }; multi combinations([], $n) { return [] }; say combinations(^4, 2).perl;
02:05 timotimo r: multi combinations(@a, $n) { gather for ^+@a { my $elem = @a[$_]; my @others = @a[^$_], @a[$_+1..*]; take [($elem , @($_)).flat] for combinations(@others, $n - 1); } }; multi combinations(@a, 1) { return @a; }; multi combinations([], $n) { return [] }; say combinations(^4, 2).perl;
02:05 p6eval rakudo 4eeffc: OUTPUT«([0, 1], [0, 2], [0, 3], [1, 0], [1, 2], [1, 3], [2, 0], [2, 1], [2, 3], [3, 0], [3, 1], [3, 2]).list␤»
02:05 timotimo r: multi combinations(@a, $n) { gather for ^+@a { my $elem = @a[$_]; my @others = @a[^$_], @a[$_+1..*]; take [($elem , @($_)).flat] for combinations(@others, $n - 1); } }; multi combinations(@a, 1) { return @a; }; multi combinations([], $n) { return [] }; say combinations(^4, 3).perl;
02:05 p6eval rakudo 4eeffc: OUTPUT«([0, 1, 2], [0, 1, 3], [0, 2, 1], [0, 2, 3], [0, 3, 1], [0, 3, 2], [1, 0, 2], [1, 0, 3], [1, 2, 0], [1, 2, 3], [1, 3, 0], [1, 3, 2], [2, 0, 1], [2, 0, 3], [2, 1, 0], [2, 1, 3], [2, 3, 0], [2, 3, 1], [3, 0, 1], [3, 0, 2], [3, 1, 0], [3, 1, 2], [3, 2, 0], [3, 2, 1]).…
02:07 timotimo i'm not necessarily proud of this, or how perl6 handles this, but i'm sure there's a much simpler approach
02:11 tanzdebil joined #perl6
02:11 timotimo the innermost take was expressed with a Z, before, which i thought was nice, but it didn't work at that time and i haven't put it back there yet. that may be something nice for improving this
02:11 tanzdebil so... random parametric roles question, anyone?
02:13 * timotimo never made one of those
02:13 timotimo a bit like "is native("foo.so")?
02:14 orafu joined #perl6
02:16 tanzdebil so, it's not immediately obvious to me why we can do...
02:16 tanzdebil role Foo[$x]  { method foo($t)  { say "$x,$t!" } }
02:16 tanzdebil but not
02:17 tanzdebil role Boo[@x]  { method boo($t)  { say "{@x.perl},$t!" } }
02:18 timotimo what was the decision behind putting the parameters in [] instead of the more "traditional" ()?
02:20 timotimo i can't even paste the first declaration into my rakudo :(
02:20 timotimo r: role Foo[$x]  { method foo($t)  { say "$x,$t!" } }
02:20 p6eval rakudo 4eeffc:  ( no output )
02:20 timotimo seems to be fixed in more recent versions
02:21 tanzdebil well it doesn't do anything by itself
02:22 timotimo when i do that, i get Could not instantiate role 'Foo': - Not enough positional parameters passed; got 1 but expected 2
02:22 tanzdebil you need to "does" it, then it breaks
02:22 timotimo r: role Foo[$x]  { method foo($t)  { say "$x,$t!" } }; say Foo;
02:22 p6eval rakudo 4eeffc: OUTPUT«None of the parametric role variants for 'Foo' matched the arguments supplied.␤Cannot call '_block1433'; none of these signatures match:␤:(Mu , Mu $x)␤␤  in any specialize at src/gen/Metamodel.pm:1898␤  in <anon> at src/gen/Metamodel.pm:2169␤  in <anon> at src/gen/…
02:22 zhutingting joined #perl6
02:22 timotimo r: role Foo[$x]  { method foo($t)  { say "$x,$t!" } }; say &Foo;
02:22 p6eval rakudo 4eeffc: OUTPUT«Nil␤»
02:23 tanzdebil lemme construct a working example for the Foo[$x] case ...
02:23 timotimo don't bother, i need to leave and get (a lot of) sleep
02:26 tanzdebil ok, no prob
02:37 Psyche^ joined #perl6
02:40 tanzdebil so here's that fail case, if anyone's awake...
02:40 tanzdebil se v6;  role Foo[$x]  { method foo($t)  { say "$x,$t!" } } class Nifty does Foo[42] {}; Nifty.new().foo(7);  role Boo[*@x]  { method foo($t)  { say "{@x.perl},$t!" } } class Yummy does Boo[<a b c>] {}; Yummy.new().boo(7);
02:40 tanzdebil or rather;
02:40 tanzdebil use v6;
02:40 tanzdebil role Foo[$x]  { method foo($t)  { say "$x,$t!" } }
02:41 tanzdebil class Nifty does Foo[42] {};
02:41 tanzdebil class Nifty does Foo[42] {};
02:41 tanzdebil role Boo[*@x]  { method foo($t)  { say "{@x.perl},$t!" } }
02:41 tanzdebil role Boo[*@x]  { method foo($t)  { say "{@x.perl},$t!" } }
02:41 tanzdebil class Yummy does Boo[<a b c>] {};
02:41 tanzdebil Yummy.new().boo(7);
02:42 tanzdebil give or take a few repeated lines.
02:46 lue joined #perl6
02:48 kaare_ joined #perl6
03:00 tanzdebil g'nite all!
03:30 patspam perl6: say (^3).pick(4)
03:30 p6eval rakudo 4eeffc: OUTPUT«1 0 2␤»
03:30 p6eval ..niecza v19-13-g442e075: OUTPUT«1 2 0␤»
03:52 prettyrobots joined #perl6
04:42 robinsmidsrod joined #perl6
04:46 thou joined #perl6
04:52 xinming joined #perl6
05:25 kaleem joined #perl6
05:30 birdwindupbird joined #perl6
05:58 stephenlb joined #perl6
06:04 zhutingting joined #perl6
06:15 wtw joined #perl6
06:16 am0c joined #perl6
06:44 prettyrobots joined #perl6
06:59 birdwindupbird joined #perl6
07:06 diakopter hrm
07:16 moritz \o
07:16 moritz jnthn++ # blog
07:18 GlitchMr joined #perl6
07:18 moritz phenny: ask masak did you push the rakudo and nqp version tags?
07:18 phenny moritz: I'll pass that on when masak is around.
07:21 xinming joined #perl6
07:23 moritz r: say Date.today - Date.new('1981-09-15')
07:23 p6eval rakudo 4eeffc: OUTPUT«11266␤»
07:23 moritz if your dates have a sane format, Date.new parses them for you :-)
07:24 jnthn morning, #perl6
07:25 * diakopter mostly likes Windows 8 so far
07:26 SamuraiJack joined #perl6
07:27 tadzik hello #perl6
07:27 tadzik jnthn: nice blog post!
07:27 GlitchMr eval
07:27 buubot_backup GlitchMr: No output.
07:27 GlitchMr perl6: print Date.new
07:27 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'Date' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1402 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) â�¤  at /home/p…
07:27 p6eval ..rakudo 4eeffc: OUTPUT«2012-12-24»
07:27 GlitchMr 2012-12-24?
07:28 tadzik christmas!
07:28 GlitchMr But, this default argument is almost useless
07:28 moritz that's kinda the point
07:28 moritz Date.new is pretty useless
07:29 moritz it just says "give me a new Date", without saying which one
07:29 GlitchMr In JavaScript, new Date() returns current time, but I guess that we have "now" for that
07:29 moritz so, you get one
07:29 moritz if you want something more specific, be more specific+#
07:30 moritz s/\W+$//
07:30 GlitchMr What's wrong with exception instead of this useless special case
07:31 moritz it used to die, and somebdody complained about that
07:31 moritz so I changed it :-)
07:32 GlitchMr Uhmmm... I guess it counts as easter egg
07:32 GlitchMr Except it's Christmas
07:32 GlitchMr Not Easter
07:32 GlitchMr Also, isn't it day early?
07:33 jnthn WAT? Christmas in on the 25th :P
07:34 GlitchMr Or perhaps it's release date, but wrong year
07:34 jnthn moritz, tadzik: Happy you liked it :)
07:34 * sorear just assumed that the 24th was German christmas :D
07:35 moritz well, christmas eve
07:35 GlitchMr ok then
07:37 jnthn Yeah, it's Christmas eve in the UK also. But I think in some countries, the 24th is the day all the fun stuff happens.
07:38 GlitchMr https://github.com/rakudo/rakudo/blo​b/nom/src/core/Temporal.pm#L451-458
07:38 GlitchMr I guess it's this piece of codew
07:38 GlitchMr code*
07:44 moritz it is
07:46 ruoso joined #perl6
07:47 jnthn commute &
07:49 GlitchMr Just wondering, is DateTime-local-timezone for internal use?
07:50 GlitchMr I cannot find it in Synopsis
07:53 FireFly joined #perl6
07:57 GlitchMr https://github.com/perl6/roast/b​lob/master/S32-num/abs.t#L35-36
07:57 GlitchMr what?
07:57 GlitchMr Is abs() magical in some way?
07:58 tadzik r: say abs(70596).WHAT.gist
07:58 p6eval rakudo 4eeffc: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏Int()' (indicated by ⏏)␤  in method Numeric at src/gen/CORE.setting:9572␤  in sub prefix:<abs> at src/gen/CORE.setting:2327␤  in sub prefix:<abs> at src/gen/CORE.setting:2327␤ …
07:58 masak mornings, #perl6.
07:58 phenny masak: 07:18Z <moritz> ask masak did you push the rakudo and nqp version tags?
07:58 Timbus r: say abs(70596).WHAT
07:58 p6eval rakudo 4eeffc: OUTPUT«Parameter '' requires an instance, but a type object was passed␤  in method Bridge at src/gen/CORE.setting:2749␤  in sub infix:<<> at src/gen/CORE.setting:2674␤  in sub prefix:<abs> at src/gen/CORE.setting:2690␤  in block <anon> at /tmp/JssaY41pHr:1␤␤»
07:59 GlitchMr prefix:<abs>
07:59 GlitchMr I see...
07:59 GlitchMr But, it has parenthesis directly after word
07:59 GlitchMr So it should be used as function
07:59 Timbus r: say +(1)
07:59 p6eval rakudo 4eeffc: OUTPUT«1␤»
07:59 Timbus no
07:59 masak moritz: had pushed nqp's, not Rakudo's. now fixed. moritz++ for double-checking.
07:59 masak masak-- for forgetting. :/
08:00 GlitchMr if(1, 2) is call to if() function, so why abs(4) isn't call to abs()
08:01 Timbus maybe there is none
08:01 Timbus r: say &abs(70596)
08:01 p6eval rakudo 4eeffc: OUTPUT«No such method 'Nil' for invocant of type 'Int'␤  in <anon> at src/gen/BOOTSTRAP.pm:799␤  in any <anon> at src/gen/BOOTSTRAP.pm:796␤  in block <anon> at /tmp/3IpnQP3lXS:1␤␤»
08:02 GlitchMr perl6: sub abs($a) { 42 }; sub sin($a) { ' :)' }; print abs(10), sin(20)
08:02 p6eval niecza v19-13-g442e075: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/5Q8gYww59J line 1:â�¤------> [32msub abs([33mâ��[31m$a) { 42 }; sub sin($a) { ' :)' }; print[0mâ�¤â�¤42 :)»
08:02 p6eval ..rakudo 4eeffc: OUTPUT«10 :)»
08:03 GlitchMr "42 :)" in Niecza and "10 :)" in Rakudo
08:03 GlitchMr And Niecza seems to do it correctly
08:04 Timbus r: sub prefix:<if> (*@a) { say "iffn hell" }; if(1 > 2);
08:04 p6eval rakudo 4eeffc: OUTPUT«iffn hell␤»
08:05 GlitchMr n: sub prefix:<if> (*@a) { say "iffn hell" }; if(1 > 2);
08:05 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'if' used at line 1â�¤â�¤Potential difficulties:â�¤  @a is declared but not used at /tmp/nreyvWcrgX line 1:â�¤------> [32msub prefix:<if> (*[33mâ��[31m@a) { say "iffn hell" }; if(1 > 2);[0mâ�¤  &prefix:<if> is d…
08:05 GlitchMr It seems that Rakudo has problems with prefixes
08:05 Timbus mystery solved iguess
08:06 GlitchMr But still, it should be function call as Perl 6 specification says
08:07 GlitchMr perl6: print so(30).WHAT
08:07 p6eval rakudo 4eeffc: OUTPUT«False»
08:07 p6eval ..niecza v19-13-g442e075: OUTPUT«Bool()»
08:08 Timbus yyyep. yep pretty broken.
08:09 GlitchMr So, parsing prefixes has higher priority than parsing function calls with ( after them
08:11 GlitchMr Good thing that only prefixes are sleep, abs, not and so
08:11 GlitchMr Why sleep is prefix anyways?
08:12 GlitchMr literal prefixes*
08:12 moritz hysterical raisins and all
08:12 moritz I want to make abs and sleep normal functions
08:12 GlitchMr perl6: print so(1)
08:12 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«True»
08:13 GlitchMr I guess that Niecza has "so" function?
08:13 GlitchMr perl6: sub so($a) { not $a }; print so(1)
08:13 p6eval niecza v19-13-g442e075: OUTPUT«False»
08:13 p6eval ..rakudo 4eeffc: OUTPUT«True»
08:13 GlitchMr good
08:15 fhelmberger joined #perl6
08:16 masak moritz:
08:16 sergot joined #perl6
08:16 masak moritz: +1
08:16 sergot hi o/
08:19 GlitchMr perl6: say False.Array.Bool
08:19 p6eval niecza v19-13-g442e075: OUTPUT«Unhandled exception: Unable to resolve method Array in type Bool␤  at /tmp/jz5ImVmBdc line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3918 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3919 (module-CORE @ 562) ␤  at /home…
08:19 p6eval ..rakudo 4eeffc: OUTPUT«True␤»
08:23 masak sergocie! \o/
08:27 masak about 2012-12-24 v. 2012-12-25, just consider it one of those cute "global culture" things, where the rest of us don't just adopt imperialistic US/UK defaults without questioning.
08:27 masak like ASCII and Unicode ;)
08:27 sergot \o/
08:29 sergot submethod BUILD starts befor .new or after?
08:31 sergot nr: class A { submethod BUILD { say 'build'; }; method new() { callsame; say 'new'; }; };  A.new
08:31 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«build␤new␤»
08:32 sergot My mistake.
08:32 sergot nr: class A { submethod BUILD { say 'build'; }; method new() { say 'new'; callsame;}; };  A.new
08:32 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«new␤build␤»
08:35 sergot n: class A { has $.a; submethod BUILD { say $.a; }; }
08:35 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Virtual call $.a may not be used on partially constructed object at /tmp/OWn5q3UZ5W line 1:â�¤------> [32mlass A { has $.a; submethod BUILD { say [33mâ��[31m$.a; }; }[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/…
08:36 tadzik oh, that requires some dirty magic
08:36 tadzik it's nothing like Moose
08:36 tadzik r: class A { has $.a = 7; submethod BUILD(:$!a) { say $!a } }; A.new.a.say # or something like this
08:36 p6eval rakudo 4eeffc: OUTPUT«Any()␤Any()␤»
08:36 tadzik damn
08:37 tadzik I never know, I guess writing your own new() is easier than writing your own BUILD
08:37 dalek doc/html-search: 1b78322 | (Geoffrey Broadwell)++ | / (2 files):
08:37 dalek doc/html-search: Add generation of HTML search page from search_template.html; requires jQuery UI
08:37 dalek doc/html-search: review: https://github.com/perl6/doc/commit/1b78322ba9
08:37 dalek doc/html-search: 034fe94 | (Geoffrey Broadwell)++ | search_template.html:
08:37 dalek doc/html-search: Add a noscript banner to search_template.html
08:37 dalek doc/html-search: review: https://github.com/perl6/doc/commit/034fe94d39
08:37 dalek doc/html-search: 9bacf67 | (Geoffrey Broadwell)++ | html/ (15 files):
08:37 dalek doc/html-search: Add jQuery and jQuery UI components needed for new search page
08:37 dalek doc/html-search: review: https://github.com/perl6/doc/commit/9bacf6706b
08:37 japhb moritz, for your perusal: ^
08:38 bbkr1 joined #perl6
08:38 japhb Adds a search.html next to index.html that allows quick search of docs with autocomplete, and immediate satisfaction (in-page load of doc).
08:38 japhb Still a work in progress, but should make sense as a PoC.
08:44 moritz japhb++
08:46 japhb And on that note, I think I can finally sleep.  :-)
08:46 japhb Let me know if you want any changes before merging it back to master.
08:46 moritz good night japhb :-)
08:46 japhb And good * to you.
08:47 japhb :-)
08:47 japhb &
08:51 dalek roast: 39f2806 | moritz++ | S32-list/minmax.t:
08:51 dalek roast: [minmax.t] do not rely on abs being a prefix op
08:51 dalek roast: review: https://github.com/perl6/roast/commit/39f28061db
08:58 moritz r: say abs(-5) + 1
08:58 p6eval rakudo 4eeffc: OUTPUT«4␤»
08:58 moritz that's simply wrong
08:58 moritz S03:262
08:58 moritz r: say not(0) + 1
08:58 p6eval rakudo 4eeffc: OUTPUT«False␤»
08:59 moritz r: say (not 0) + 1
08:59 p6eval rakudo 4eeffc: OUTPUT«2␤»
09:00 * moritz submits rakudobug
09:01 masak o.O
09:02 masak that's just horrible.
09:02 jnthn kill all the prefixes.
09:02 masak death. kill. fire.
09:02 moritz jnthn: well, there's a good reason for 'not' and 'so' being prefixes
09:02 moritz (low precedence)
09:03 jnthn appears from the above there's good reason for them not to be also ;-)
09:03 tadzik :)
09:03 moritz jnthn: no, it's a rakudobug
09:03 masak r: say not(True) || False
09:03 jnthn Oh?
09:03 p6eval rakudo 4eeffc: OUTPUT«False␤»
09:03 moritz jnthn: if rakudo did it right, there wouldn't be a problem with them being prefixes
09:03 jnthn Hm
09:03 moritz not(0) should be parsed as a sub, not as a prefix
09:03 masak aye.
09:04 jnthn how on earth does that work, I wonder...
09:05 dalek specs: 36ccdac | moritz++ | S03-operators.pod:
09:05 dalek specs: kill abs and sleep as prefixes
09:05 dalek specs:
09:05 dalek specs: they live on as normal subroutines
09:05 dalek specs: review: https://github.com/perl6/specs/commit/36ccdac5e7
09:11 mucker joined #perl6
09:15 GlitchMr So, parrot compilation uses 101% of CPU for me...
09:15 GlitchMr ok
09:18 daxim joined #perl6
09:19 Timbus squeezing out every last hertz.
09:20 Timbus parrot is so good, it actually speeds your processor up 1% to compile it that tiny fraction faster.
09:28 masak as a result, after ten hours of intense computation, your CPU is actually 6 minutes in the future.
09:28 huf without an undelay circuit, that's fairly useless
09:28 GlitchMr PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
09:28 GlitchMr 5584 glitchmr  20   0  889m 810m 3932 R  101 13.7   1:44.51 perl6
09:29 GlitchMr Or perhaps top is lying for me
09:29 masak probably just a rounding error.
09:30 GlitchMr Most likely yes
09:30 sporous joined #perl6
09:30 tadzik heh, looks like I didn't contribute to Tallinn
09:30 tadzik :|
09:33 jnthn Fun fact: when looking for hotels there, I tried to find one with many floors, so I could make a pun about us staying in a tall inn :)
09:33 masak tadzik: don't worry, you'll be in next month's contributor list ;)
09:35 GlitchMr Perhaps I should port http://perldoc.perl.org/Text/Abbrev.html for fun :P
09:36 dalek roast: 3a41ccc | Coleoid++ | S05- (7 files):
09:36 dalek roast: Fix all currently broken smartlinks to S05
09:36 dalek roast: review: https://github.com/perl6/roast/commit/3a41cccb66
09:36 dalek roast: 726f78c | Coleoid++ | S05-modifier/ignoremark.t:
09:36 dalek roast: Add test for long spelling of :ignoremark
09:36 dalek roast: review: https://github.com/perl6/roast/commit/726f78cd92
09:36 dalek roast: 25c7944 | Coleoid++ | S (3 files):
09:36 dalek roast: Merge branch 'master' of https://github.com/perl6/roast
09:36 dalek roast: review: https://github.com/perl6/roast/commit/25c794442c
09:38 kaare_ joined #perl6
09:39 tadzik GlitchMr: yeah, that'd be cool
09:39 masak +1
09:39 tadzik maybe with a more PErl6-ish interface
09:40 GlitchMr Yeah
09:40 GlitchMr More Perl6ish interface would be returning hash instead of taking hash or glob
09:40 tadzik aye
09:56 GlitchMr #      got: 'ab ab a    ab bc   bc b    bc'
09:56 GlitchMr # expected: 'a  ab ab   ab b    bc bc   bc'
09:57 GlitchMr I wanted to compare hashes
09:58 tadzik sort them first
09:58 GlitchMr ok, is_approx worked
09:58 tadzik maybe is_deeply does that automagically
09:58 GlitchMr Oh, wait... is_approx is for number
09:58 GlitchMr s
09:59 tadzik aye
09:59 GlitchMr Yes, is_deeply seems to work
09:59 GlitchMr Thanks
10:09 masak is_deeply++
10:09 tadzik . o O ( is_deeplier )
10:18 crab2313 joined #perl6
10:18 sjn . o O ( is_deepity )
10:20 telex joined #perl6
10:27 dalek ecosystem: 14669c5 | GlitchMr++ | META.list:
10:27 dalek ecosystem: Add Text::Abbrev
10:27 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/14669c5306
10:28 GlitchMr Hopefully it will work
10:28 colomon n: say abs(-5) + 1
10:28 p6eval niecza v19-13-g442e075: OUTPUT«6␤»
10:28 colomon n: say abs -5 + 1
10:28 p6eval niecza v19-13-g442e075: OUTPUT«4␤»
10:31 tadzik GlitchMr++
10:31 tadzik did you test it on rakudo too?
10:31 GlitchMr Yes
10:32 GlitchMr resolve stage failed for Text::Abbrev: Project Text::Abbrev not found in the ecosystem
10:32 GlitchMr I guess it's caching
10:33 tadzik you probably need to wait for feather.perl6.nl:3000 to update
10:33 tadzik or I can give it a kick if you want to
10:33 GlitchMr ok then
10:34 GlitchMr Well, after all it's repository on GitHub
10:34 GlitchMr It's not repository hosted by feather
10:34 tadzik the modules list on feather updates hourly
10:34 GlitchMr Powered by Dancer 1.3002
10:34 GlitchMr heh, Perl 6
10:34 GlitchMr And it seem slow (sadly)
10:34 GlitchMr seems*
10:35 tadzik does it?
10:35 muixirt joined #perl6
10:35 GlitchMr feather.perl6.nl:3000 is somewhat slow
10:35 GlitchMr But well, it runs on Perl 6
10:35 tadzik it doesn't
10:35 muixirt hi there
10:36 GlitchMr So why I have got Perl 6 error?
10:36 tadzik but it is slow indeed, wonder why
10:36 tadzik I have no idea :)
10:36 GlitchMr http://feather.perl6.nl:3000/module/Acme;Meow gives error
10:36 GlitchMr Perl 6 error!
10:36 GlitchMr Oh wait, it's Perl 5
10:37 GlitchMr Weird
10:37 GlitchMr Perl 5 should be way faster than Perl 6
10:38 muixirt what are these long strings beginning with something like 'AQAAAEAAAAADAAAAWAAAAAMAA' in the compiler output?
10:38 moritz muixirt: base64-encoded, binary serialized objects
10:40 Woodi joined #perl6
10:40 tadzik GlitchMr: okay, I see it
10:40 tadzik let me look into it
10:40 tadzik okay fixed
10:40 tadzik and http://feather.perl6.nl:3000/module/Text;Abbrev is there too
10:40 moritz tadzik++
10:41 muixirt moritz: I was curious why files like CORE.setting.pbc consist so many 0x41 bytes (19%)
10:41 GlitchMr resolve stage failed for Text::Abbrev: Project Text::Abbrev not found in the ecosystem
10:41 GlitchMr Weird
10:41 tadzik GlitchMr: try panda update
10:41 GlitchMr "Acme::Abbrev not found"
10:41 tadzik it needs to re-fetch the full projects.json
10:42 tadzik I never taught it to use the /module/Foo;Bar syntax
10:42 tadzik wasn't that Text::Abbrev? :)
10:42 GlitchMr tadzik: http://paste.uk.to/c2bb2f1b
10:42 GlitchMr I guess it's ok
10:43 tadzik cool
10:43 GlitchMr Of course 6 tests because you should test your module :)
10:43 tadzik of course :)
10:51 muixirt moritz: and these binary serialized objects are mostly 0x00 bytes, hmm...
10:52 arnsholt jnthn: ping?
10:55 jnthn arnsholt: pong
10:58 arnsholt Just figured it out (I think)
10:58 arnsholt Sorry to bother
10:59 arnsholt OTOH, I think I know why argument marshaling in callbacks doesn't work \o/
11:00 arnsholt A new question though: To stash away the type object of a thing, I use .WHAT, right?
11:01 arnsholt Nm, again. Since it's a parameter object, I just want .type
11:02 tadzik .^type maybe
11:03 moritz no, it's Paramater.type
11:03 GlitchMr http://modules.perl6.org/
11:03 jnthn .type for parameters
11:03 GlitchMr Why certain modules have - in name instead of ::
11:03 tadzik because people named them that
11:04 tadzik it's discouraged
11:04 tadzik but I didn't yet figure out a better name for Text-Tabs-Wrap for example
11:04 tadzik because it has both Text::Tabs and Text::Wrap
11:04 tadzik so Text::Tabs::Wrap doesn't make sens
11:05 GlitchMr Why those modules aren't separate then
11:05 tadzik ask the author
11:05 daxim flussence, it's you.
11:06 daxim separate them, you need not slavishly adhere to era 5 mistakes
11:07 GlitchMr Text::Wrap depends on Text::Wrap, but Panda can handle dependencies
11:07 GlitchMr s/on Text::Wrap/on Text::Tabs/
11:07 moritz GlitchMr: please stop talking bullshit
11:07 GlitchMr Unless it cannot?
11:08 masak tadzik: overheard in the kitchen of masak: "что это? cheese?" -- "Yes, sir." :)
11:08 tadzik :D
11:08 tadzik GlitchMr: it can, but it's not the case
11:09 tadzik it's the distribution maintainer's choice how to organize stuf
11:09 Woodi .
11:10 GlitchMr hmmm... yeah
11:10 dalek doc: af791a4 | moritz++ | lib/Parameter.pod:
11:10 dalek doc: start docs for Parameter
11:10 dalek doc: review: https://github.com/perl6/doc/commit/af791a4438
11:10 JimmyZ joined #perl6
11:12 daxim https://www.plat-forms.org/platforms-2012-rev-2    # interested in competing writing web applications?
11:15 arnsholt Ow. Zavolaj just tried to free a stack allocated string ^_^
11:17 JimmyZ \o
11:17 GlitchMr I still end making things like $a<b> when I want %a<b>
11:18 GlitchMr Heh, that's what happens after you program in Perl 5
11:18 JimmyZ r: my $a := { a => 'b', c => 'd' }; say $a<a>;
11:18 p6eval rakudo 4eeffc: OUTPUT«b␤»
11:18 JimmyZ r: my $a ::= { a => 'b', c => 'd' }; say $a<b>;
11:18 p6eval rakudo 4eeffc: OUTPUT«Any()␤»
11:23 GlitchMr Unable to parse header, couldn't find final ']'
11:23 GlitchMr ok, now I have to understand what this error means
11:23 dalek nqp/dyncall-callbacks: 3a126fd | (Arne Skjærholt)++ | / (4 files):
11:23 dalek nqp/dyncall-callbacks: Initial callback handling.
11:23 dalek nqp/dyncall-callbacks:
11:23 dalek nqp/dyncall-callbacks: It works, but it'll leak memory since all the information needed to handle a
11:23 dalek nqp/dyncall-callbacks: callback is recreated (and allocated on the heap) on each call without ever
11:23 dalek nqp/dyncall-callbacks: being freed.
11:23 dalek nqp/dyncall-callbacks: review: https://github.com/perl6/nqp/commit/3a126fd73a
11:23 GlitchMr oh, it's from Config::INI
11:23 tadzik oh, someone uses Config::INI :)
11:24 GlitchMr It's probably because of keys like [a\b]
11:26 GlitchMr token header   { ^^ \h* '[' ~ ']' $<text>=[\w | \h]+ \h* <.eol>+ }
11:26 GlitchMr What is ~?
11:26 sergot nom: my $a = <1 2 3>; say $a.WHAT;
11:26 p6eval rakudo 4eeffc: OUTPUT«Parcel()␤»
11:26 sergot nom: my $a := <1 2 3>; say $a.WHAT;
11:26 p6eval rakudo 4eeffc: OUTPUT«Parcel()␤»
11:26 GlitchMr "The ~ operator is a helper for matching nested subrules with a specific terminator as the goal. It is designed to be placed between an opening and closing bracket, like so:"
11:26 GlitchMr oh, I see
11:27 Woodi joined #perl6
11:27 cotto joined #perl6
11:28 GlitchMr [\w | \h]+
11:28 GlitchMr So, valid INI keys can only have \w or \h (space)
11:29 GlitchMr I guess I shouldn't even attempt to make complex tree structures in INI
11:30 tadzik it's probably not the right tool for the job
11:31 GlitchMr Heh, I still would like to have INI instead of JSON
11:31 GlitchMr And YAML module doesn't seem to work on newest Rakudo
11:31 tadzik yeah
11:32 tadzik I don't think INI is suitable for tree structures
11:33 GlitchMr I would like to have something like http://paste.uk.to/a1f10a05
11:33 tadzik how about a dot?
11:33 tadzik Freenode.8ball
11:34 tadzik maybe look how weechat handles that, it uses some ini on steroids for its configuration
11:34 GlitchMr Unable to parse header, couldn't find final ']'
11:34 arnsholt jnthn: If you get a chance to look at my new branch that'd be great. I've got basic tests passing in Zavolaj, but there might be things I've overlooked
11:34 tadzik I don't mind adding some steroids to Config::INI if you need that
11:34 tadzik meh
11:35 GlitchMr I could use _, but it would be ugly
11:35 tadzik GlitchMr: don't hesitate to open a ticket in Config::INI for that
11:36 GlitchMr I guess I will use space instead
11:36 GlitchMr But still, I will make ticket
11:38 GlitchMr perl6: for 1 .. 3 -> $var { when 2 { print "2!" } }
11:38 p6eval niecza v19-13-g442e075: OUTPUT«Potential difficulties:â�¤  $var is declared but not used at /tmp/_ImoXHpmGf line 1:â�¤------> [32mfor 1 .. 3 -> [33mâ��[31m$var { when 2 { print "2!" } }[0mâ�¤â�¤Use of uninitialized value in numeric contextâ�¤  at /home/p6eval/niecza/lib/CORE.setting line 1263 (…
11:38 p6eval ..rakudo 4eeffc: OUTPUT«use of uninitialized variable $a of type Any in numeric context  in block <anon> at /tmp/15jBZ4Q057:1␤␤use of uninitialized variable $a of type Any in numeric context  in block <anon> at /tmp/15jBZ4Q057:1␤␤use of uninitialized variable $a of type Any in numeric con…
11:38 GlitchMr perl6: for 1 .. 3 -> my $var { when 2 { print "2!" } }
11:38 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��In parameter declaration, typename 'my' must be predeclared (or marked as declarative with :: prefix) at /tmp/a1Gvo__wpH line 1:�------> [32mfor 1 .. 3 -> my[33m�[31m $var { when 2 { print "2!" } }[0m��Parse failed��»…
11:38 p6eval ..rakudo 4eeffc: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 2, near " $var { wh"␤»
11:40 GlitchMr perl6: for 1 .. 3 { when 2 { print "2!" } }
11:40 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«2!»
11:42 colomon phenny: tell sorear Can you give me a quick overview of unidata / UCD.cs?  I'm still thinking of trying to implement titlecase and maybe fc, but I'm finding the code kind of opaque...
11:42 phenny colomon: I'll pass that on when sorear is around.
11:48 sergot1 joined #perl6
11:53 GlitchMr I miss config files from my old bot: https://github.com/GlitchMr/YIBot​/blob/master/config.sample.coffee
11:53 GlitchMr But well, whatever
11:57 Woodi joined #perl6
11:57 sergot joined #perl6
11:59 GlitchMr I guess I need good config format before doing anything
12:01 GlitchMr or screw it, let's go around the problem
12:09 MayDaniel joined #perl6
12:11 sirrobert joined #perl6
12:17 daniel-s_ joined #perl6
12:17 daniel-s_ hi everyone
12:18 daniel-s_ I just wanted to say sorry about something
12:18 daniel-s_ about a year ago I was going to contribute to the perl6 book
12:18 daniel-s_ ...but I basically couldn't figure out perl6 without documentation... and I couldn't write the documentation... well, you get where I'm going with this
12:18 masak bootstrapping issues.
12:19 daniel-s_ lol, yep
12:19 daxim camelia forgives you
12:19 JimmyZ joined #perl6
12:20 masak no need to apologize even. let's just learn from that and make it better for the next volunteer.
12:20 daniel-s_ although, I have to say that the regular expressions and grammar is much nicer in perl6 than other things I have been using recently
12:20 masak of course :) there are good ideas in there, that's why we like the language ;)
12:21 robinsmidsrod joined #perl6
12:24 sirrobert class A { has $.s is rw; method f () {$.s = "foo"; say self.^attributes[0];}}; A.new.f;
12:24 sirrobert r: class A { has $.s is rw; method f () {$.s = "foo"; say self.^attributes[0];}}; A.new.f;
12:24 p6eval rakudo 4eeffc: OUTPUT«$!s␤»
12:25 sirrobert in that case, how do I *modify* $!s from within the method?
12:25 sirrobert now that I can get my grubby little hands on it
12:25 tadzik $!s = 5 for example :)
12:26 sirrobert if I don't know the name in advance
12:26 sirrobert if I just got it through self.^attributes[0]
12:26 jnthn .set_value
12:26 jnthn Or .get_value and then use assignment, I guess
12:26 sirrobert jnthn: ahhh, thanks (searching online =)
12:29 sirrobert perfecto -- thanks.
12:31 jnthn pzh
12:33 Woodi joined #perl6
12:41 cosimo joined #perl6
12:45 sergot nom: class A { has $.a = 1; submethod BUILD { say $.a } };
12:45 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Virtual call $.a may not be used on partially constructed objects␤at /tmp/Tvm7D8Fw17:1␤»
12:45 sirrobert you have to give the build method parameters after the name of the attributes
12:45 sirrobert the object doesn't exist yet during the BUILD process.
12:46 masak sergot: $!a
12:47 sergot nom: class A { has $.a = 1; submethod BUILD($!a) { say $!a } }; A.new(a<b>)
12:47 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&a' called (line 1)␤»
12:47 sergot nom: class A { has $.a = 1; submethod BUILD($!a) { say $!a } }; A.new(:a<b>)
12:47 p6eval rakudo 4eeffc: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in submethod BUILD at /tmp/P2IjReDVlH:1␤  in method BUILDALL at src/gen/CORE.setting:625␤  in method bless at src/gen/CORE.setting:610␤  in method new at src/gen/CORE.setting:595␤  in block <anon> at /…
12:47 sirrobert maybe I was wrong... =)
12:47 sergot nom: class A { has $!a = 1; submethod BUILD($!a) { say $!a } }; A.new(:a<b>)
12:47 p6eval rakudo 4eeffc: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in submethod BUILD at /tmp/dV0isJooPB:1␤  in method BUILDALL at src/gen/CORE.setting:625␤  in method bless at src/gen/CORE.setting:610␤  in method new at src/gen/CORE.setting:595␤  in block <anon> at /…
12:47 jnthn :$!a
12:48 jnthn BUILD wants named params
12:48 sergot nom: class A { has $!a = 1; submethod BUILD(:$!a) { say $!a } }; A.new(:a<b>)
12:48 p6eval rakudo 4eeffc: OUTPUT«b␤»
12:48 sergot \o/
12:48 masak \o/
12:49 masak sergot: you can leave the 'has $.a' and it will still work.
12:49 sergot jnthn++ masak++ sirrobert++
12:49 sergot Thanks
12:49 masak depends if you want and accessor generated or not.
12:51 JimmyZ_ joined #perl6
12:51 arnsholt jnthn: Is there some header I should include to get the Pointer PMC functions?
12:52 jnthn arnsholt: Do you not just use set_pointer and get_pointer vtable methods?
12:52 arnsholt Oh, those are VTABLEs
12:52 arnsholt Right. That'll do it, probably
12:58 tadzik nom: class A { has $!a = 1; submethod BUILD(:$!a) { say $!a } }; A.new()
12:58 p6eval rakudo 4eeffc: OUTPUT«Any()␤»
12:58 tadzik there
12:58 tadzik this I don't understand
12:59 masak what don't you understand about it?
12:59 masak please be specific about the nature of your confusion, or the confusion will just build and spread, like a virus. :)
12:59 arnsholt jnthn: BTW, how do I make sure my Parrot hash doesn't get GCed, when the only place it's reachable from is nqp_dyncall.ops?
12:59 tadzik why does it work for arguments from new, but not for default values
12:59 masak tadzik: because BUILD containing the attribute overrides the default?
13:00 tadzik I don't know, I'm the one asking :)
13:00 masak well, I'm fairly sure that's the reason.
13:00 tadzik nom: class A { has Int:D $!a = 1; submethod BUILD(:$!a) { say $!a } }; A.new() # hmm
13:00 p6eval rakudo 4eeffc: OUTPUT«Type check failed in assignment to '$!a'; expected 'Int' but got 'Any'␤  in submethod BUILD at /tmp/gqjP6gejy0:1␤  in method BUILDALL at src/gen/CORE.setting:625␤  in method bless at src/gen/CORE.setting:610␤  in method new at src/gen/CORE.setting:595␤  in block <a…
13:01 bluescreen10 joined #perl6
13:01 jnthn arnsholt: You can register the it as a GC root
13:01 jnthn arnsholt: I think that's done with some things near the top of nqp.ops
13:02 arnsholt Spiffy.
13:10 dalek nqp/dyncall-callbacks: 0897370 | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops:
13:10 dalek nqp/dyncall-callbacks: Add caching of callback handling data.
13:10 dalek nqp/dyncall-callbacks: review: https://github.com/perl6/nqp/commit/0897370953
13:18 sirrobert huh.  Are hash keys reliably ordered?
13:19 sirrobert r: my %h = {a => 1, c => 3, b => 2}; for %h.keys -> $k { say "$k: %h{$k}" }
13:19 p6eval rakudo 4eeffc: OUTPUT«a: 1␤c: 3␤b: 2␤»
13:19 colomon sirrobert: might be in practice, but if so it's a dodgy implementation detail.  do not rely on it.
13:19 colomon n: my %h = {a => 1, c => 3, b => 2}; for %h.keys -> $k { say "$k: %h{$k}" }
13:19 sirrobert ok, thanks.  my habit from p5 was to assume unordered; just noticed it coming out
13:19 p6eval niecza v19-13-g442e075: OUTPUT«a: 1␤c: 3␤b: 2␤»
13:19 masak at least for small hashes on Parrot, they're ordered. but what colomon said.
13:20 sirrobert thanks
13:20 masak rn: my %h = 'a'..'z' Z=> 1..*; .say for .keys
13:20 p6eval niecza v19-13-g442e075: OUTPUT«Potential difficulties:â�¤  %h is declared but not used at /tmp/nwWdW_ULTH line 1:â�¤------> [32mmy [33mâ��[31m%h = 'a'..'z' Z=> 1..*; .say for .keys[0mâ�¤â�¤0â�¤Â»
13:20 p6eval ..rakudo 4eeffc: OUTPUT«0␤»
13:20 masak rn: my %h = 'a'..'z' Z=> 1..*; .say for %h.keys
13:20 p6eval niecza v19-13-g442e075: OUTPUT«z␤y␤x␤w␤v␤u␤t␤s␤r␤q␤a␤b​␤c␤d␤e␤f␤g␤h␤i␤j␤k␤l␤m␤n␤o␤p␤»
13:20 p6eval ..rakudo 4eeffc: OUTPUT«a␤b␤c␤d␤e␤f␤g␤h␤i␤j␤k␤l​␤m␤n␤o␤p␤q␤r␤s␤t␤u␤v␤w␤x␤y␤z␤»
13:21 sirrobert What does that Z-> 1..* syntax mean?
13:21 masak sirrobert: Z<op> does <op> pairwise for two lists.
13:21 sirrobert ohh cool
13:21 masak rn: .say for 1, 2, 3 Z+ 100, 200, 300
13:21 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«101␤202␤303␤»
13:21 sirrobert that's crazy cool
13:22 sirrobert hey, that reminds me... how do I do a general reduce operation?  like [+] but for a general bit o' code
13:22 sirrobert [{...}]
13:22 sirrobert I searched for it, but couldn't find what I was looking for.
13:23 colomon nr: say reduce(* + * + 2, 1, 2, 3, 4)
13:23 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«16␤»
13:23 sirrobert ah
13:24 sirrobert great!  thanks
13:24 sirrobert (both)
13:24 colomon not sure if all the possible variations are implemented on both rakudo and niecza.
13:24 sirrobert all the possible variations of what?
13:25 colomon n: sub blue($a, $b) { $a + $b + 2 }; say [[&blue]] 1, 2, 3, 4
13:25 p6eval niecza v19-13-g442e075: OUTPUT«16␤»
13:25 colomon R: sub blue($a, $b) { $a + $b + 2 }; say [[&blue]] 1, 2, 3, 4
13:25 colomon r: sub blue($a, $b) { $a + $b + 2 }; say [[&blue]] 1, 2, 3, 4
13:25 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Unable to parse infixish, couldn't find final ']' at line 2, near "blue]] 1, "␤»
13:25 sirrobert hm
13:26 colomon yeah, that approach is niecza-only for now.
13:26 sirrobert ok =)
13:26 sirrobert thanks, that's super helpful.
13:26 colomon if blue is a sub that takes two arguments, [&blue] is that sub as an infix operator, so you can use the [ ] meta-op reduce on it.
13:27 colomon though it's probably clearer to just use the reduce sub in this case, IMO.
13:27 sirrobert yeah.  A large bit of our code uses some complexish reductions
13:27 sirrobert any syntax will do for now
13:28 masak I'd go with reduce &blue, even with the new syntax present.
13:28 masak [[ ]] looks weird to me.
13:29 sirrobert are keys and values of a hash garaunteed to be in the same order?
13:30 sirrobert that is, correlating order
13:32 colomon er.... no?
13:32 sirrobert ok =)
13:34 timotimo hm. Date.new should return the date the interpreter was started on, so people who don't read the docs will think it returns "today" when they try it in the repl, but when they run long-running programs, they get unexpected values
13:36 SamuraiJack joined #perl6
13:37 masak it doesn't return "today" on the REPL either.
13:37 masak returning the date the interpreter was started on doesn't feel less arbitrary (or less prone to bugs) than returning date of next Christmas.
13:38 masak and, well, people *do* ask a lot about when Perl 6 is going to be released :)
13:38 masak r: say Date.new
13:38 p6eval rakudo 4eeffc: OUTPUT«2012-12-24␤»
13:39 sirrobert ahhh... clean tests =)
13:40 timotimo :D
13:40 GlitchMr I guess that Date.new will be removed when Rakudo will implement whole spec
13:43 sirrobert gonna go watch batman.  more code later =)
13:46 birdwindupbird joined #perl6
13:47 masak r: say sqrt(-1) x 8, ", Batman!"
13:47 p6eval rakudo 4eeffc: OUTPUT«NaNNaNNaNNaNNaNNaNNaNNaN, Batman!␤»
13:49 colomon :p
13:51 seldon joined #perl6
13:51 GlitchMr I guess I shouldn't depend on Date.new return date of Christmas?
13:53 sivoais joined #perl6
13:54 sivoais joined #perl6
13:54 moritz not until it's specced
13:54 masak joined #perl6
13:56 * masak , it turns out, sucks at irssi
13:58 colomon Until official p6 release, the date is Christmas Eve?
14:05 jnthn colomon: No, some Europeans just have funny ideas when Christmas is :P
14:05 masak at least in .se and .de, Christmas falls on Christmas Eve.
14:06 colomon bizarre.
14:06 colomon ;)
14:08 GlitchMr Just wondering, is it possible to make custom pragmas in Perl 6?
14:08 flussence good <?= gmstrftime() ?>, *
14:08 PacoAir joined #perl6
14:09 arnsholt jnthn: While cleaning up warnings in NQP code I'm familiar with, there are a couple of get_storage_spec functions that return specs with garbage values for spec.bits
14:10 arnsholt Do you have a preference on whether I should set them to 0 or sizeof(void *) * 8?
14:19 prettyrobots joined #perl6
14:19 fgomez joined #perl6
14:21 tadzik r: my $a = 'git://foo'; $a ~~ s[git://][http://]; say $a
14:21 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 2, near "git://][ht"␤»
14:21 tadzik r: my $a = 'git://foo'; $a ~~ s|git://|http://|; say $a
14:21 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Confused␤at /tmp/imjTmn3ngf:1␤»
14:23 tadzik r: my $a = 'git://foo'; $a ~~ s/'git://'/'http://'/; say $a
14:23 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Confused␤at /tmp/5oFCSSc1pD:1␤»
14:26 * [Coke] ews at Date.new==xmas
14:31 masak [Coke]: I think 'Mu' is a silly name for 'Object'.
14:31 masak [Coke]: and I don't like the new semantics of » hypers.
14:33 masak [Coke]: and I think it's a bad idea to provide non-Latin-1 quote delimiters without an ASCII fallback.
14:34 masak your complaint is about a harmless frivolous unspec'd implementation-specific non-feature. :)
14:34 tadzik is it the moment when I say "I don't like BUILD"? :P
14:34 masak yes :)
14:34 SamuraiJack joined #perl6
14:36 moritz "Mu" was from a time where we expected to use it in a lot of places where we meant "undef"
14:36 moritz and it turns out that doesn't happen in many places
14:37 [Coke] masak: I agree with your #1 and #3.
14:37 [Coke] (I don't know anything about your #2, though.)
14:37 moritz because we don't use ~~ undef
14:37 moritz and because we use 'Any' in most places
14:38 * [Coke] figures out why pugs sported failures... it's au++'s fault! ;) (when I do the build, I run "make" in Pugs. if the cabal setup changes, it aborts make and tells you to reconfig.)
14:38 * [Coke] will just have to keep an eye on that for now.
14:38 jnthn arnsholt: sizeof(void *) * 8
14:39 jnthn arnsholt: It only really makes sense to use that value for inlining things, but it's better that it's not chunk.
14:39 jnthn er, junk
14:39 moritz GlitchMr: lib/lib.pm6 in rakudo is a custom pragma
14:40 zhutingting joined #perl6
14:41 arnsholt jnthn: Makes sense, yeah
14:42 GlitchMr Well, but lib.pm6 ignores scopes
14:47 pmichaud good morning, #perl6
14:47 phenny pmichaud: 18 Jul 02:39Z <[Coke]> tell pmichaud the problem with not upgrading parrot as soon as possible is that we're less likely to notice when it's broken.
14:47 jnthn morning, Pm! :)
14:47 masak pmichaud! \o/
14:49 pmichaud [Coke]: We can start maintaining "minimum Parrot required" and "recommended Parrot" versions
14:49 arnsholt jnthn: Speaking of warnings, there're a bunch of "dereferencing type-punned pointer" thingies. Not something we need to worry about, right?
14:56 prammer joined #perl6
14:57 prammer joined #perl6
14:59 pmichaud Sometimes I worry that when I say something in the channel, it goes quiet all of a sudden.
14:59 thou joined #perl6
14:59 JimmyZ \o/
15:00 masak \o/
15:00 cognominal_ pmichaud, many people listen and do not talk or read the logs
15:01 moritz pmichaud: that's just statistical noise
15:02 pmichaud moritz: I notice it a lot.  :)
15:02 jnthn arnsholt: Probably not :)
15:02 JimmyZ pmichaud: I have the same feelling sometimes
15:03 pmichaud I guess I often tend to say things as people are finishing up a thread :-)
15:04 GlitchMr karma glitchmr
15:04 aloha glitchmr has karma of 5.
15:07 nodmonkey joined #perl6
15:10 moritz r: say :(::T ::S $x).parameters[0].type_captures.perl
15:10 p6eval rakudo 4eeffc: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤=​==SORRY!===␤error:imcc:Sub '11_1342797029.34056' not found␤␤     in …
15:10 moritz bug!
15:10 moritz r: say :(::T $x).parameters[0].type_captures.perl
15:10 p6eval rakudo 4eeffc: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤=​==SORRY!===␤error:imcc:Sub '11_1342797055.49862' not found␤␤     in …
15:11 moritz r: say :(::T $x)
15:11 p6eval rakudo 4eeffc: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤=​==SORRY!===␤error:imcc:Sub '11_1342797064.24714' not found␤␤     in …
15:11 moritz r: :(::T $x)
15:11 p6eval rakudo 4eeffc: OUTPUT«use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context  in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤=​==SORRY!===␤error:imcc:Sub '11_1342797070.34498' not found␤␤     in …
15:11 moritz r: sub f(::T ::U $x) { }; say &f.signature.params[0].type_captures.perl
15:11 p6eval rakudo 4eeffc: OUTPUT«Array.new("T", "U")␤»
15:12 * moritz submits rakudobug
15:14 dalek doc: cd5c790 | moritz++ | lib/Parameter.pod:
15:14 dalek doc: more Parameter docs
15:14 dalek doc: review: https://github.com/perl6/doc/commit/cd5c790423
15:16 moritz 787
15:16 moritz sorry
15:25 kaare_ joined #perl6
15:27 thelazydeveloper joined #perl6
15:30 tanzdebil joined #perl6
15:30 tanzdebil moin, moin!
15:31 masak tanzdebil: hi there!
15:36 pmichaud masak++ # compiler release, thanks!
15:36 masak you're welcome.
15:36 * masak raises his tea cup for many releases to come
15:37 pmichaud I'm still planning to do next week's Star release.
15:43 moritz pmichaud: I'll write some deprecation notice about the IO subsystem
15:45 moritz pmichaud: also since the feedback from users on managing changes has been very sparse, I'd suggest to add a note to the announceme
15:45 moritz that calls people to comment
15:46 pmichaud +1
15:49 leprevost joined #perl6
15:59 jnthn r: :($sig, $literals, $we-hasn't-em) # I think
15:59 p6eval rakudo 4eeffc:  ( no output )
16:00 jnthn oh...maybe we kinda do :)
16:00 jnthn Must just be about typevars then
16:00 flussence random question! how can I introspect a sub/method to get its arity?
16:01 masak r: say (my sub ($a, $b) {}).arity
16:01 p6eval rakudo 4eeffc: OUTPUT«2␤»
16:01 jnthn r: sub foo($a) { }; say &foo.arity
16:01 p6eval rakudo 4eeffc: OUTPUT«1␤»
16:01 flussence (more specifically, I have an object and I just want to grep its methods that take no args)
16:01 masak r: say (my sub ($a, $b?) {})."$_"() for <arity count>
16:01 p6eval rakudo 4eeffc: OUTPUT«1␤2␤»
16:02 jnthn .^methods.grep(*.arity == 0)>>.name # or so
16:02 masak oh that's nice.
16:02 flussence I was looking through Method.^methods and I must've missed that. oh well.
16:02 jnthn r: say Int.^methods.grep(*.arity == 0)>>.name
16:02 p6eval rakudo 4eeffc: OUTPUT«␤»
16:02 jnthn r: say Int.^methods.grep(*.arity == 1)>>.name
16:02 p6eval rakudo 4eeffc: OUTPUT«Int Num Rat FatRat abs Bridge chr sqrt floor round ceiling sign conj rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotanh acotanh cis Complex log exp truncate isNaN Real log10 suc…
16:02 masak flussence: but note the difference between .arity and .count above.
16:02 jnthn Note that the invocant contributes to the arity.
16:02 masak flussence: make sure you're using the one you want.
16:02 jnthn So you really want == 1
16:05 timotimo r: say $_.name, $_.arity, $_.count for Int.^methods
16:05 p6eval rakudo 4eeffc: OUTPUT«Int11␤Num11␤Rat12␤FatRat12␤abs11␤Bridge​11␤chr11␤sqrt11␤base22␤floor11␤round11␤ceiling​11␤sign1Inf␤conj11␤rand11␤sin11␤asin11␤cos11␤a​cos11␤tan11␤atan11␤atan21Inf␤sec11␤asec11␤cose​c11␤acosec11␤cotan11␤acotan11␤sinh11␤asinh11␤c​osh11␤acosh11␤tanh11␤atanh11␤sech11␤asech1…
16:05 japhb moritz, any objection to merging the html-search branch of doc?
16:05 timotimo how come the count of atan2 is infinity?
16:06 tanzdebil joined #perl6
16:06 tanzdebil (sorry, dropping in and out)
16:06 tanzdebil anyway, I've got a little parametric roles question, if anyone's up for that
16:07 tanzdebil basically, it seems that we can parametrize on one (or more) variables which are scalar-like, but not on anything array-like, at present (4.4.0).
16:07 tanzdebil ie. we can do "role Foo[$x]" but not "role Foo[@x]", or $@x if that matters.
16:07 tanzdebil correct?
16:09 jnthn Hm, I'd epect role Foo[@x] to work
16:09 pmichaud me to
16:09 pmichaud *too
16:09 pmichaud it just puts a Positional constraint on the parameter
16:10 muixirt joined #perl6
16:10 jnthn r: role Foo[@x] { }
16:10 p6eval rakudo 4eeffc:  ( no output )
16:10 jnthn r: role Foo[@x] { }; class C does Foo[[1,2,3]] { }
16:10 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Cannot use '[1,2,3]' as an argument to a parametric role as its value is not known at compile time at line 2, near " { }"␤»
16:10 jnthn Ah.
16:10 pmichaud r:  role XYZ[@a] { };   class ABC does XYZ[Array] { };  say ABC.WHAT;
16:10 p6eval rakudo 4eeffc: OUTPUT«ABC()␤»
16:10 jnthn r: role Foo[@x] { }; class C does Foo[(constant @ = [1,2,3])] { }
16:10 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Can only use get_who on a SixModelObject␤»
16:11 jnthn eek, that's probably an error reporting fail
16:11 jnthn r: role Foo[@x] { }; constant @foo = [1,2,3]; class C does Foo[@foo] { }
16:11 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Cannot use '@foo' as an argument to a parametric role as its value is not known at compile time at line 2, near " { }"␤»
16:11 jnthn hmmm.
16:11 tanzdebil well the declaration works, but it's the "does" that breaks.
16:11 jnthn yEAH
16:11 jnthn *Yeah
16:11 pmichaud r: role Foo[@x];  my $x = 5 but Role[(1,2,3)];
16:11 muixirt is the compiler released?
16:11 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&Role' called (line 1)␤»
16:12 tanzdebil yup, Foo[<abc>] is where it breaks.
16:12 pmichaud r: role Foo[@x];  my $x = 5 but Foo[(1,2,3)];
16:12 p6eval rakudo 4eeffc:  ( no output )
16:12 pmichaud r: role Foo[@x];  my $x = 5 but Foo[(1,2,3)];  say $x;
16:12 p6eval rakudo 4eeffc:  ( no output )
16:12 pmichaud well, note that <abc> isn't a Positional.
16:12 jnthn pmichaud:  { }, not ;
16:12 jnthn pmichaud: You didn't actually use the role there.
16:12 pmichaud r: role Foo[@x] { };  my $x = 5 but Foo[(1,2,3)];  say $x;
16:12 p6eval rakudo 4eeffc: OUTPUT«5␤»
16:12 pmichaud r: role Foo[@x] { };  my $x = 5 but Foo[(1,2,3)];  say $x ~~ Foo
16:12 p6eval rakudo 4eeffc: OUTPUT«True␤»
16:13 tanzdebil okay, lemme give that a try...
16:13 jnthn Yeah, it's not a role problem per se, more a "what's considered constant at compile time" one.
16:13 jnthn Well, s/constant/known/
16:13 pmichaud r: role Foo[@x] { method ttt { @x } };  my $x = 5 but Foo[(1,2,3)];  say $x.ttt
16:13 p6eval rakudo 4eeffc: OUTPUT«1 2 3␤»
16:13 masak timotimo: I have no idea.
16:13 pmichaud looks like it works to me :-)
16:13 masak r: say &atan2.arity
16:13 p6eval rakudo 4eeffc: OUTPUT«0␤»
16:13 pmichaud r: role Foo[@x] { method ttt { @x } };  my $x = 5 but Foo[<abc>];  say $x.ttt
16:13 p6eval rakudo 4eeffc: OUTPUT«None of the parametric role variants for 'Foo' matched the arguments supplied.␤Cannot call '_block1433'; none of these signatures match:␤:(Mu , @x)␤␤  in any specialize at src/gen/Metamodel.pm:1898␤  in any specialize at src/gen/Metamodel.pm:1556␤  in <anon> at src…
16:14 timotimo r: say Int.atan2.arity
16:14 p6eval rakudo 4eeffc: OUTPUT«Parameter '' requires an instance, but a type object was passed␤  in method Bridge at src/gen/CORE.setting:2749␤  in method atan2 at src/gen/CORE.setting:2586␤  in block <anon> at /tmp/vtp8Us3s5T:1␤␤»
16:14 masak r: say Int.find_method('atan2').arity
16:14 p6eval rakudo 4eeffc: OUTPUT«No such method 'find_method' for invocant of type 'Int'␤  in block <anon> at /tmp/5hpMlBEmG4:1␤␤»
16:14 timotimo r: say &Int.atan2.arity
16:14 p6eval rakudo 4eeffc: OUTPUT«use of uninitialized value of type Nil in numeric context  in block <anon> at /tmp/jOExmQzD9b:1␤␤No such method 'arity' for invocant of type 'Num'␤  in block <anon> at /tmp/jOExmQzD9b:1␤␤»
16:14 masak r: say Int.^find_method('atan2').arity
16:14 p6eval rakudo 4eeffc: OUTPUT«1␤»
16:14 timotimo ah.
16:14 masak r: say Int.^find_method('atan2').count
16:14 p6eval rakudo 4eeffc: OUTPUT«Inf␤»
16:14 masak r: say &atan2.count
16:14 p6eval rakudo 4eeffc: OUTPUT«Inf␤»
16:14 alvis joined #perl6
16:14 masak seems a bit much.
16:14 jnthn pmichaud: It's trying to use the role with compile time composition that's at issue, it seems, since there's not a way to pass one.
16:14 jnthn pmichaud: Part of the issue is knowing what we know... :)
16:15 masak r: say atan2(1, 2, 3, 4, 'a bunch of molasses', 'twin waterfalls', Pair.new)
16:15 p6eval rakudo 4eeffc: OUTPUT«Cannot call 'atan2'; none of these signatures match:␤:(Num:D $a, Num:D $b = { ... })␤:(Real \$a, Real \$b)␤:(\$a, \$b)␤␤  in block <anon> at /tmp/tRaksyAgng:1␤␤»
16:15 pmichaud jnthn: sure, but the basic question of "can we do 'role Foo[@x] { ... }'?"   is answered "Yes."
16:15 jnthn pmichaud: Yes, true. :)
16:15 pmichaud i.e., the parameter isn't limited to being a scalar.
16:15 jnthn Right.
16:16 pmichaud proto sub atan(|$) {*}
16:16 jnthn pmichaud: For the upcoming Star, do you want me to spend some tuits on the Windows setup thing?
16:16 pmichaud jnthn: I was planning to do that if needed, but you can also if you like.
16:16 jnthn pmichaud: Or are you gonna be in a tuitful situation in the next days?
16:16 jnthn pmichaud: Well, it's really if you hvae time or not :)
16:16 jnthn pmichaud: I'd really like it to happen and can put tuits on it, but equally I can get toqast pushed along too :)
16:16 pmichaud e.g., if you feel strongly that it really needs to be MSVC+Active instead of Strawberry :-)
16:17 pmichaud I'm committed to make it happen, I expect to have tuits.
16:17 jnthn pmichaud: I don't feel it needs to be, I just know that if it's me that does it we probably get that. ;-)
16:17 masak pmichaud: yes, but many subs have that proto, and don't have a count of Inf.
16:17 jnthn pmichaud: OK, I leave it with you then; lemme know if you need any input/testing/help etc.
16:17 masak proto sub ceiling(|$)          { * }
16:17 pmichaud jnthn: +1
16:17 jnthn r: say &ceiling.count
16:17 p6eval rakudo 4eeffc: OUTPUT«Inf␤»
16:17 masak r: say &ceiling.count
16:17 p6eval rakudo 4eeffc: OUTPUT«Inf␤»
16:18 pmichaud r:  say &ceiling.count
16:18 p6eval rakudo 4eeffc: OUTPUT«Inf␤»
16:18 masak hm.
16:18 masak or maybe they all do. :/
16:18 pmichaud To fix that, change the |$ to a $
16:18 masak aye.
16:18 pmichaud ...but that means that all instances of multi &atan can only ever have one argument.
16:18 pmichaud (which perhaps is fine... that's just the resulting implication)
16:19 flussence r: class Foo { method new(Str $a, Str $b?) {...}; submethod BUILD(Str :$a, Str :$b?) {...}; method bar { ... } }; say Foo.^methods(:local).grep(*.count == 1)
16:19 p6eval rakudo 4eeffc: OUTPUT«BUILD bar␤»
16:19 flussence named params mess me up a bit...
16:21 PacoAir_ joined #perl6
16:21 jnthn *.signature.params == 1 # may cut it
16:21 flussence == 2 seems to work, that doesn't seem right though :S
16:22 dalek star: 1034038 | pmichaud++ | skel/docs/announce/2012.07:
16:22 dalek star: Add draft announcement for 2012.07.
16:22 dalek star: review: https://github.com/rakudo/star/commit/1034038cd7
16:22 pmichaud the invocant is one of the parameters.
16:22 jnthn oh, yes
16:22 snearch joined #perl6
16:22 * masak beer outside &
16:22 jnthn beer &
16:22 pmichaud thus BUILD can take at most one positional; the invocant
16:22 pmichaud all:  feel free to update the 2012.07 star announcement with stuff
16:23 PacoAir_ joined #perl6
16:23 flussence I can understand the Foo.bar(Foo) part, but not where it's getting a second one from...
16:24 pmichaud ...second one?
16:24 flussence r: class Foo { method new(Str $a, Str $b?) {...}; submethod BUILD(Str :$a, Str :$b?) {...}; method bar { ... } }; say Foo.^methods(:local).grep(*.signature.params == 2)
16:24 p6eval rakudo 4eeffc: OUTPUT«bar␤»
16:25 pmichaud methods have an implicit slurpy hash, I think.
16:25 flussence oh, ok.
16:25 tanzdebil patrick:  yes, that example you fed to the bot -- "role Foo[@x] { method ttt { @x } };  my $x = 5 but Foo[(1,2,3)];  say $x.ttt" -- was what I was trying to do, basically.
16:25 pmichaud r: class Foo { method bar { ... } };  say Foo.^methods(:local).grep(*.signature.params == 2).[0]
16:25 p6eval rakudo 4eeffc: OUTPUT«bar␤»
16:25 pmichaud r: class Foo { method bar { ... } };  say Foo.^methods(:local).grep(*.signature.params == 2).[0].perl
16:25 p6eval rakudo 4eeffc: OUTPUT«method bar(Foo , Mu *%_) { ... }␤»
16:25 pmichaud flussence: there ya go
16:26 flussence it's still == 2 if I define it as "method bar()", is that supposed to happen?
16:26 pmichaud yes, methods always get the slurpy hash.
16:26 flussence ok then
16:26 pmichaud note that .params.Numeric is not always related to .count or .arity :)
16:27 drbean joined #perl6
16:28 pmichaud I'm afk, lunch and errands
16:28 MayDaniel joined #perl6
16:28 sergot Failed to load libpcre again...
16:28 sergot Only for me? :)
16:29 PacoAir joined #perl6
16:37 tanzdebil joined #perl6
16:38 tanzdebil back again...
16:38 moritz japhb: no objections
16:38 moritz japhb: i haven't looked at in detail
16:38 moritz japhb: but I think it's fine
16:39 tanzdebil jnthn, patrick: so yeah, the @x needs to be a constant, got that.
16:39 tanzdebil but it seems to work only in the "but" case, but not in the "does" case.   right?
16:39 tanzdebil that's what I was experiencing (sorry, could have been more clear).
16:40 moritz tanzdebil: what code are you talking about?
16:40 * moritz misses context
16:40 tanzdebil moritz:  this was from a few minutes back...
16:43 tanzdebil r: role Foo[@x] { method ttt { @x } };  class Bar does Foo[(1,2,3)];  my $x = Bar.new; say $x.ttt
16:43 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Cannot use '(1,2,3)' as an argument to a parametric role as its value is not known at compile time at line 2, near ";  my $x ="␤»
16:43 moritz ah
16:43 moritz I guess it should simply evaluate the expression
16:43 tanzdebil r: role Foo[@x] { method ttt { @x } };  my $x = 5 but Foo[(1,2,3)];  say $x.ttt
16:43 p6eval rakudo 4eeffc: OUTPUT«1 2 3␤»
16:44 tanzdebil so that's the issue.
16:44 moritz instead of looking at whether it's known
16:44 moritz tanzdebil: yes, 'but' is run time here
16:44 moritz I might know how to fix that
16:44 tanzdebil but the (1,2,3) looks a lot like a compile time constant :)
16:45 moritz it does :-)
16:45 moritz but it compiles to infix:<,>(1, 2, 3)
16:45 tanzdebil so is there another way to present it?
16:46 MayDaniel joined #perl6
16:46 moritz r: role Foo[@x] { method ttt { @x } }; class A does Foo[ BEGIN { 1, 2, 3 }] { }
16:46 p6eval rakudo 4eeffc:  ( no output )
16:46 moritz r: role Foo[@x] { method ttt { @x } }; class A does Foo[ BEGIN { 1, 2, 3 }] { }; say A.new.tt
16:46 p6eval rakudo 4eeffc: OUTPUT«No such method 'tt' for invocant of type 'A'␤  in block <anon> at /tmp/lbk7G0NGPl:1␤␤»
16:46 moritz r: role Foo[@x] { method ttt { @x } }; class A does Foo[ BEGIN { 1, 2, 3 }] { }; say A.new.ttt
16:46 p6eval rakudo 4eeffc: OUTPUT«1 2 3␤»
16:47 tanzdebil righty, then.
16:47 moritz that's a workaround really
16:47 moritz it should just work
16:47 tanzdebil but at least something.
16:49 tanzdebil ...and will save me from committing a somewhat more awkward hack.  so thanks, everyone!
16:50 tanzdebil ...but does (1,2,3) really need to be compiled, then?
16:51 moritz well, role-into-class composition is at compile time
16:51 moritz so whatever you write in there is evaluated at compile time
16:51 tanzdebil which is cool
16:51 moritz suppose you wrote
16:51 tanzdebil right
16:51 moritz my ($a, $b) = (1, 2);
16:51 tanzdebil well, yeah, that's obviously an expression.
16:52 moritz class A is Foo[($a, 2, $b)] { }
16:52 tanzdebil the trick is that (1,2,3) doesn't "look" like an expr.
16:52 moritz right
16:52 moritz but our constant folder is not smart enough to detect that :(
16:52 tanzdebil but then maybe I'm not looking at it right
16:52 tanzdebil fair enough.  not a complaint, but just a thought.
16:52 moritz so I'd argue that it's better to simply always evalute the stuff in there at compile time
16:52 moritz *evaluate
16:52 moritz which wasn't possible at the time this code was written
17:02 thou o/
17:03 Chillance joined #perl6
17:04 thou is there a de-facto modern perl logging module?
17:05 thou (that i can steal API from)
17:06 tadzik .u circle
17:06 phenny U+25CB WHITE CIRCLE (○)
17:07 tanzdebil joined #perl6
17:07 tanzdebil (back after a 10 min drop)
17:11 arnsholt Good thing I didn't push my warnings cleanups. Apparently I brokeded something
17:13 arnsholt Any git ninja tricks for amending commits in the middle of a history?
17:13 daxim git rebase --interactive
17:14 daxim when in the editor, change the word   pick  to  e
17:15 arnsholt Thanks!
17:15 daxim I do that a dozen times a day because like all humans I am made out of 80% fail
17:16 daxim the usual history-munging caveat applies:  this is only safe to do on unpublished commits
17:18 mucker joined #perl6
17:19 ChibaPet left #perl6
17:20 mucker joined #perl6
17:20 arnsholt Durr. I'm an absolute moron
17:21 mucker joined #perl6
17:21 tadzik http://tjs.azalayah.net/web/index.html \o/
17:21 tadzik mpo with emmentaler test results
17:24 nodmonkey joined #perl6
17:24 arnsholt The problem: I changed a bunch of "return foo" in a switch to retval = foo and return retval at the end
17:25 arnsholt What I didn't do was to put in the breaks >.<
17:25 tadzik :)
17:25 arnsholt daxim++ # rebase --interactive
17:27 daxim http://paste.scsys.co.uk/203154    # you might be interested in my .gitconfig
17:30 arnsholt Cool, thanks
17:33 tadzik http://tjs.azalayah.net/web/index.html now with nice onmouseover tooltips
17:36 rurban daxim: ri for rebase --interactive? I have rb for rebase and rbc, rbi
17:41 daxim precious precious keystrokes
17:42 tadzik heh, I didn't alias commit to ci, because I'd rather not commit stuff accidentally or without consideration
17:42 tadzik imagine having git checkouf -f master; git clean -fdx aliased to some short keystroke. Life in fear :)
17:44 crab2313 joined #perl6
17:47 takadonet joined #perl6
17:47 takadonet hey all
17:47 tadzik hey takadonet
17:48 takadonet look time no see
17:48 flussence o/
17:53 dalek doc: 1b78322 | (Geoffrey Broadwell)++ | / (2 files):
17:53 dalek doc: Add generation of HTML search page from search_template.html; requires jQuery UI
17:53 dalek doc: review: https://github.com/perl6/doc/commit/1b78322ba9
17:53 dalek doc: 034fe94 | (Geoffrey Broadwell)++ | search_template.html:
17:53 dalek doc: Add a noscript banner to search_template.html
17:53 dalek doc: review: https://github.com/perl6/doc/commit/034fe94d39
17:53 dalek doc: 9bacf67 | (Geoffrey Broadwell)++ | html/ (15 files):
17:53 dalek doc: Add jQuery and jQuery UI components needed for new search page
17:53 dalek doc: review: https://github.com/perl6/doc/commit/9bacf6706b
17:53 dalek doc: 3e6a6a7 | (Geoffrey Broadwell)++ | / (17 files):
17:53 dalek doc: Merge branch 'html-search'
17:53 dalek doc: review: https://github.com/perl6/doc/commit/3e6a6a707a
17:54 japhb moritz, can you htmlify and sync to doc.perl6.org?  I doubt I have the permissions ...
17:54 japhb Or does it happen automatically?
17:55 sorear good * #perl6
17:55 phenny sorear: 11:42Z <colomon> tell sorear Can you give me a quick overview of unidata / UCD.cs?  I'm still thinking of trying to implement titlecase and maybe fc, but I'm finding the code kind of opaque...
17:56 sorear colomon: around?
17:59 silug joined #perl6
18:02 vlixes joined #perl6
18:04 pupoque joined #perl6
18:07 colomon sorear: am now
18:08 colomon sorear: need to run to the grocery soon, but can talk for a few minutes if you've got the time.
18:09 sorear unifile: an ad-hoc archive of processed densely-coded unicode tables
18:09 vmspb joined #perl6
18:09 colomon sorear: did you create it?
18:09 sorear yes
18:09 * colomon has found the tables for case folding and case changing and downloaded them....
18:10 sorear sorear/multi-language-ucd contains a perl script that generates unifile from the Unicode 6.1 data tables
18:10 colomon oooo
18:10 sorear afair unifile already contains all of the machine readable data from 6.1
18:10 colomon that's on your github?
18:11 sorear yes
18:11 colomon just cloned it.  :)
18:12 sorear so it looks like we have a 'Property' class which stores the inflated data tables
18:13 sorear call DataSet.GetTable("moo") to pull out the table "moo" and inflate it
18:16 colomon what are those tables?  I see "na", "na1", and "JSN"?
18:17 colomon na is named aliases?
18:17 sorear the tables which represent properties are named after the short names in PropertyAliases.txt
18:17 sorear Name, Unicode_1_Name, Jamo_Short_Name
18:18 sorear n: say "\c[HANGUL SYLLABLE GEUL]" # JSN is used for this
18:18 p6eval niecza v19-13-g442e075: OUTPUT«글␤»
18:18 colomon I see
18:19 sorear I think named aliases is just NamedAlias or so
18:19 colomon So if I say DataSet.GetTable("Cased") I will have a table of all the cased letters?
18:19 sorear yes
18:20 sorear formatted as a LimitedProperty object with values Y and N
18:21 sorear you may also find use for string properties like tc (Titlecase_Mapping)
18:21 colomon oooo, yes, that sounds very true
18:21 sorear if you haven't read the relevant sections of the unicode spec, I recommend doing so; the interfaces you are playing with are quite low level
18:22 colomon is it available online?  I think I've only read summaries.
18:23 sorear yes
18:23 colomon so if I do GetTable("tc"), I get a StringProperty?  If I look up a codepoint using it, will I get another codepoint?
18:23 colomon (it being the StringProperty)
18:24 colomon errr, guess it will be a string encoding that codepoint?
18:24 sorear you might get more than one codepoint.
18:25 sorear colomon: is unicode.org down for you too?
18:25 sirrobert What's the name of the thing where you can create a custom type that wraps two other types?  (e.g. StrInt to accept either Str or Int)
18:25 colomon hmmm... but all of them representing a single "answer", right?
18:25 colomon sorear: looks like.
18:26 sorear when it comes back up, the file you want is www.unicode.org/versions/Unicode6.1.0/ch03.pdf
18:26 sorear sirrobert: Union types.
18:26 sirrobert ah, thanks
18:26 colomon sorear: thank you
18:27 sorear case mapping can get a bit fiddly with things like ß and the Greek terminal and medial sigmas
18:27 colomon hopefully that will be enough to get me started out in the wilderness next week.  If not, I may have to see if I can get an internet connection in the middle of nowhere.
18:27 colomon sorear: understood.
18:32 moritz japhb: will resync, just a moment...
18:32 sirrobert Ok... google is being a jerk =)  Can anyone help me out with some syntax for defining a union type type for, say, Bool and Str?
18:33 moritz subset BoolStr of Cool where any(Str, Bool); # should work
18:34 sorear union types are entirely conjectural at this point, they aren't really in the spec
18:34 moritz #C#
18:34 sirrobert moritz:  Thanks; what's "Cool" ?
18:34 sirrobert sorear: noted =)
18:34 moritz sorry, ronja speaking :-)
18:34 moritz sirrobert: http://doc.perl6.org/type/Cool
18:34 flussence is there any difference in this case between that and Mu?
18:36 colomon sorear++ # gotta run buy noodles for evening potluck now....
18:38 sorear .oO( ronja thinks we should move to ##csharp? )
18:40 atrodo joined #perl6
18:48 timotimo is the periodic table of operators still up to date? it's from 2009, did nothing in it change?
18:51 timotimo r: ?^9
18:51 p6eval rakudo 4eeffc:  ( no output )
18:51 timotimo r: say ?^9
18:51 p6eval rakudo 4eeffc: OUTPUT«False␤»
18:51 timotimo r: say !9
18:51 p6eval rakudo 4eeffc: OUTPUT«False␤»
18:51 timotimo what's the big difference between the two?
18:51 sorear r: say !(True | False)
18:51 p6eval rakudo 4eeffc: OUTPUT«False␤»
18:51 sorear r: say ?^(True | False)
18:51 p6eval rakudo 4eeffc: OUTPUT«False␤»
18:52 sorear n: say ?^(True | False)
18:52 p6eval niecza v19-13-g442e075: OUTPUT«any(Bool::False, Bool::True)␤»
18:52 sorear n: say !(True | False)
18:52 p6eval niecza v19-13-g442e075: OUTPUT«False␤»
18:52 timotimo ah, it doesn't evaluate junctions, is that it?
18:52 timotimo "doesn't force bool context" perhaps?
18:52 sorear it behaves differently with junctons in niecza
18:57 timotimo oh, Rop, that's fun
19:00 moritz japhb: oh, and if you give me a public ssh key of yours, I can try to set up permissions for you to sync doc.perl6.org too
19:03 GlitchMr ?^ is for consistency as far I know
19:03 GlitchMr It's boolean not, just like !
19:04 GlitchMr ? means boolean, and ^ (as prefix) means not
19:04 GlitchMr Unless it's upto operator
19:05 moritz r: say Num ~~ Cool
19:05 p6eval rakudo 4eeffc: OUTPUT«True␤»
19:06 moritz r: say CORE::.keys
19:06 p6eval rakudo 4eeffc: OUTPUT«&infix:<does> EXPORTHOW &COMP_EXCEPTION Pod Set Nil &THROW &set Baggy &postfix:<i> &RETURN-PARCEL &MAKE_REGEX AST CallFrame &bag Version &METAOP_HYPER &return-rw &return &METAOP_HYPER_POSTFIX &trait_mod:<will> &min &take-rw &infix:<max> &METAOP_HYPER_PREFIX &take &…
19:07 moritz r: say CORE::.grep(!*.defined).grep(*.isa(Cool))
19:07 p6eval rakudo 4eeffc: OUTPUT«␤»
19:07 spaceships joined #perl6
19:07 moritz r: say CORE::.grep(!*.defined).
19:07 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤Confused␤at /tmp/RLOmUAZJDp:1␤»
19:07 moritz r: say CORE::.grep(!*.defined)
19:07 p6eval rakudo 4eeffc: OUTPUT«␤»
19:07 moritz r: say CORE::[0].WHAT
19:07 p6eval rakudo 4eeffc: OUTPUT«PseudoStash()␤»
19:07 moritz r: say CORE::.keys.perl
19:08 p6eval rakudo 4eeffc: OUTPUT«("\&infix:<does>", "EXPORTHOW", "\&COMP_EXCEPTION", "Pod", "Set", "Nil", "\&THROW", "\&set", "Baggy", "\&postfix:<i>", "\&RETURN-PARCEL", "\&MAKE_REGEX", "AST", "CallFrame", "\&bag", "Version", "\&METAOP_HYPER", "\&return-rw", "\&return", "\&METAOP_HYPER_POSTFIX", …
19:08 moritz r: say CORE::.grep({!.value.defined && .value ~~ Cool})>>.key
19:08 p6eval rakudo 4eeffc: OUTPUT«␤»
19:08 moritz r: say CORE::.grep({!.value.defined})
19:08 p6eval rakudo 4eeffc: OUTPUT«␤»
19:10 moritz r: say CORE::.pairs[^10].perl
19:10 p6eval rakudo 4eeffc: OUTPUT«("\&infix:<does>" => 3, "EXPORTHOW" => 39, "\&COMP_EXCEPTION" => 43, "Pod" => 47, "Set" => 51, "Nil" => 87, "\&THROW" => 91, "\&set" => 119, "Baggy" => 127, "\&postfix:<i>" => 143)␤»
19:10 moritz what are those numbers?
19:11 skids joined #perl6
19:13 flussence maybe it's possible something horrible is happening and pointer offsets are leaking out...
19:14 moritz probably indexes, not pointers
19:14 moritz but still LTA I'd guess
19:14 robinsmidsrod joined #perl6
19:15 moritz nqp::bindattr($stash, EnumMap, '$!storage',
19:15 moritz pir::getattribute__PPs($ctx, 'lex_pad'));
19:15 moritz seems like it stores the lexpad directly
19:17 moritz r: say CORE::.keys.grep(/^<[A..Z]>/).map( { ::($_) } ).grep(Cool);
19:17 p6eval rakudo 4eeffc: OUTPUT«No type check cache and no type_check method in meta-object␤  in method reify at src/gen/CORE.setting:4953␤  in method reify at src/gen/CORE.setting:4964␤  in method reify at src/gen/CORE.setting:5055␤  in method reify at src/gen/CORE.setting:4964␤  in method reify…
19:18 moritz now WTF am I doing wrong this time :(
19:18 moritz r: say ::('LazyScalar')
19:18 p6eval rakudo 4eeffc: OUTPUT«LazyScalar()␤»
19:22 colomon sorear: unicode.org back up now.
19:23 moritz r: say Date ~~ Cool
19:23 p6eval rakudo 4eeffc: OUTPUT«False␤»
19:24 japhb_ joined #perl6
19:24 sorear colomon: yay!
19:25 colomon sorear: any words of wisdom on breaking up C# strings into codepoints?
19:25 moritz japhb++ # http://doc.perl6.org/search
19:26 japhb_ moritz, Glad you like it.  :-)
19:26 japhb_ Thanks for doing the sync, btw.
19:26 dalek rakudo/nom: b15d33b | moritz++ | src/core/Parameter.pm:
19:26 dalek rakudo/nom: expose sub signatures of a Parameter
19:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b15d33b1e5
19:28 sorear colomon: C# strings are encoded in UTF-16.  look at codes and ord in Builtins
19:31 colomon sorear: ah, the classic MS approach.
19:32 sorear here and I thought it was because Java did it that way and C# started as a Java clone
19:33 colomon sorear: nope, MS C/C++ work the same way
19:36 benabik wide chars were fairly stand for a little while.
19:36 benabik And once MS did it that way, it has to do it that way forever.
19:38 colomon as I understand it, these days wchar_t is 16 bit on MS and 32 bit on unix-y stuff, meaning they are completely non-standard.  :(
19:39 * colomon has to have portable Unicode handling C++ code.
19:40 benabik Huh.  I thought it as 16 in ISO C++
19:41 benabik Oh.  No, it's unspecified like every other type in C.  :-/
19:42 sorear I thiiink there's a spec requirement that wchar_t should be for a fixed width encoding of the native character set
19:42 sorear which means that on Unicode platforms it ought to have at least 21 bits
19:44 benabik The only requirement is that conversions from char to wchar_t is done via zero-extension.  Nothing else, so it can be a low as 8n
19:44 benabik *8b
19:44 benabik left #perl6
19:44 benabik joined #perl6
19:45 benabik ref: http://unicode.org/versions/Unicode4.0.0/ch05.pdf - 5.2, page 109
19:47 [Coke] +# 07/20/2012 - rakudo++ (22935); niecza (89.76%); pugs (40.13%)
19:49 huf joined #perl6
19:49 [Coke] p: say "asdf".flip
19:49 p6eval pugs: OUTPUT«*** No such method in class Str: "&flip"␤    at /tmp/kiPX93Ado8 line 1, column 5 - line 2, column 1␤»
19:50 [Coke] p: say 40.13/89.76
19:50 p6eval pugs: OUTPUT«0.44708110516934046​34581105169340463458111␤»
19:50 * [Coke] aims for pugs running 50% of niecza's tests. ;)
19:50 [Coke] who runs p6eval?
19:51 timotimo [Coke]: you mean "until next week"?
19:52 sorear [Coke]: moritz and me
19:53 flussence .oO( shouldn't "asdf".flip return "ɟpsɐ"? )
19:54 benabik flussence: I think that's .rotate
19:54 [Coke] sorear: can you rebuild pugs?
19:54 tadzik that's .backflip
19:55 timotimo what about .barrelroll?
19:55 sorear [Coke]: probably, limited clue how.
19:55 timotimo Cool.barrelroll :)
20:00 moritz I thought you could roll [Coke] barrels :-)
20:00 sorear [Coke]: I'm about to install GHC on feather3!  No wonder pugs wouldn't build
20:00 moritz sorear: don't install stuff on feather3
20:01 moritz sorear: we build all the compilers for p6eval on feather1, and rsync the results over to feather3
20:01 sorear moritz: I'm listening
20:03 sorear ok, found the real pugs build
20:04 prettyrobots joined #perl6
20:08 sorear yeah I have no clue how to get this to work.
20:08 sorear cabal dep issues.
20:10 fridim_ joined #perl6
20:11 [Coke] probably needs "cabal update; cabal configure"
20:11 moritz and maybe rm -rf ~/.cabal/
20:12 dalek doc: 12a4b7c | moritz++ | lib/Cool.pod:
20:12 dalek doc: [Cool] list of classes that inherit from Cool
20:12 dalek doc: review: https://github.com/perl6/doc/commit/12a4b7cedf
20:12 dalek doc: 91f904f | moritz++ | sync:
20:12 dalek doc: [sync] log in as p6doc user
20:12 dalek doc: review: https://github.com/perl6/doc/commit/91f904f891
20:15 birdwindupbird joined #perl6
20:21 moritz anybody else want permissions on feather2 to resync the doc.perl6.org HTML files?
20:21 moritz you need rakudo and Pod::To::HTML for that, and rsync
20:21 masak evening, #perl6
20:21 moritz and /msg me your public SSH key
20:21 moritz \o masak
20:21 masak oh! jnthn and I should've been on #cqrs-perl6 today... we did a bunch of nice CQRS work on our hackathon.
20:21 sorear evening masak
20:22 masak well, next time.
20:22 masak we're still learning stuff and being amazed at how applicable all this is.
20:23 dpuu joined #perl6
20:23 sorear cabal: Couldn't read cabal file "HUnit/1.2.5.0/HUnit.cabal"
20:23 sorear this is after rm -rf and update
20:24 sorear i'm not going to spend any more time on this
20:24 benabik cabal--
20:24 dpuu Question about laziness. Using rakudo 12:06, I tried: perl6 -e '.say for gather { my $x = 1; for 1..10 { take $x++; sleep 1 } }'
20:24 dpuu it sleeps 10 seconds and then prints values 1 .. 10
20:25 tadzik I think for is not lazy enough
20:25 tadzik (yet)
20:25 dpuu My understanding of laziness was to get one value per second
20:25 tadzik it ought to be
20:25 dpuu I also tried (...)>>.say
20:25 masak yeah, don't do that one.
20:25 dpuu Also waits 10 seconds, but emits in random order
20:25 masak right.
20:26 masak >> un-preserves execution order.
20:26 takadonet left #perl6
20:26 masak in Rakudo, it messes the order up intentionally.
20:26 dpuu OK, I can understand that. It's intended for parallelism, afterall.
20:27 masak correct.
20:31 sorear dpuu: I suspect that using "take" inside "for" will not work well because "for" uses gather/take internally
20:33 masak r: take 10
20:33 p6eval rakudo b15d33: OUTPUT«take without gather␤  in block <anon> at src/gen/CORE.setting:335␤  in block <anon> at src/gen/CORE.setting:384␤  in block <anon> at /tmp/3ScXU750Rv:1␤␤»
20:33 moritz sorear: I don't think it does, in rakudo
20:33 dpuu It seemed to work from a perspective of functionality -- seems that the magic of lexical scoping worked.
20:33 masak r: for ^10 { take 10 }
20:33 p6eval rakudo b15d33: OUTPUT«take without gather␤  in block <anon> at src/gen/CORE.setting:335␤  in block <anon> at src/gen/CORE.setting:384␤  in block <anon> at /tmp/3qUXkVUUF0:1␤␤»
20:33 moritz sorear: 'for' uses MapIter under the hood, and gather/take use GatherIter
20:33 masak I really don't think `for` should be intercepting `take` in any implementation.
20:33 masak that just feels... wrong.
20:34 masak likewise, it feels wrong for `map` and `grep` to intercept it.
20:34 moritz aye
20:34 [Coke] pugs: say "what?"
20:35 p6eval pugs: OUTPUT«what?␤»
20:35 [Coke] sorear: thanks for trying. I know it's a PITA.
20:40 colomon masak: +1
20:43 prettyrobots joined #perl6
20:48 masak I think I'm fine nowadays with the arguments for `map` and `grep` intercepting `next` et al.
20:48 masak but `take` feels like it just becomes less useful if it ends up inside some `map` and `grep` machinery.
20:50 sorear masak: it _shouldn't_
20:50 masak oh, good.
20:50 sorear take is specced to bind to the lexically enclosing gather if there is one in preference to any dynamic gather
20:52 masak oh, right.
20:53 masak and that was because I kvetched about this once before... :)
20:53 [Coke] https://gist.github.com/3153152
20:54 masak r: my @values = 5, 10 ... 30; $_ /= 2 when * > 10 for @values; say @values
20:54 p6eval rakudo b15d33: OUTPUT«5 10 7.5 10 12.5 15␤»
20:54 masak \o/
20:54 masak [Coke]: could you tell them that back? :)
20:56 masak there's already a way to do that in Perl 6, and it's less special-cased than the proposed 'whenever' way.
20:56 masak oh, I don't even need the * there, I think.
20:56 masak r: my @values = 5, 10 ... 30; $_ /= 2 when $_ > 10 for @values; say @values
20:56 p6eval rakudo b15d33: OUTPUT«5 10 7.5 10 12.5 15␤»
20:56 masak right.
20:57 flussence r: my @values := 5, 10 ... *; say @values[^15].grep(* > 10) »/» 2
20:57 p6eval rakudo b15d33: OUTPUT«7.5 10 12.5 15 17.5 20 22.5 25 27.5 30 32.5 35 37.5␤»
20:57 * colomon is still not really comfortable with grep and map intercepting next, etc.
20:58 masak well, there are arguments both ways.
20:59 masak but the argument for is basically that the `map`/`for` equivalence does run that deep.
21:02 [Coke] masak++ # thanks
21:03 [Coke] they suggest "it" as a synonym for $_. :)
21:03 flussence .oO( I've noticed most of the one-liners I write here are mostly-FP. maybe it's a sign I should go learn haskell... )
21:04 geekosaur 1liners and fp tend to go together...
21:05 masak FP is more than just lack of side effects, though. :)
21:07 jnthn evening :)
21:07 masak jnthn! \o/
21:09 benabik You can even do FP with side effects, although that's much easier in SML than Haskell.
21:09 benabik (well, where side effects == mutable state)
21:10 masak aye.
21:11 sorear flussence: you should also learn J and/or K
21:11 [Coke] J/K
21:11 sorear curiously, neither of these languages has anythig to do with JK flip flops
21:11 masak I agree about learning one of those.
21:12 sorear Which one?
21:12 benabik Huh.  Never heard of those.
21:13 masak either one.
21:13 geekosaur J I know of (and may even remember a little of).  K?  *hits google*
21:13 sorear "and don't confuse K with Lazy K"
21:13 masak sorear: the person I know (hakank) who dabbles in them seems to go back and forth between them regularly.
21:14 [Coke] J is ASCIIAPL, neh?
21:15 * [Coke] wonders if his apl-on-parrot project still even compiles.
21:15 masak there's only one way to find out.
21:15 sorear J is more like APL 2
21:16 masak how so?
21:17 sorear Ken Iverson created APL.  then, he created J to address a couple problems in APL: the character set issue, but also things like improving higher-order functions support
21:17 geekosaur K seems more ASCII-APL-ish, if I can believe the wikipedia article.  J evolves various APL concepts, K seems to be more conservative in that respect
21:18 sorear (the current lead developer of J is Ken's son Eric Iverson.  This amuses me for some reason.)
21:18 Rakudo09 joined #perl6
21:41 crab2313 joined #perl6
21:48 adam7504 joined #perl6
21:50 UncleFester6 joined #perl6
21:52 UncleFester6 BTW the issue with for and laziness is also addressed in RT 112716
21:52 broquaint joined #perl6
21:54 thrn joined #perl6
21:54 flussence UncleFester6: did you see the backlog? That compile error is a parrot GC problem, and there's at least 3 of us getting it now
21:56 sergot good night o/
22:05 UncleFester6 flussence: just backlogged.  Yes I noted that the problem seemed to happen in low memory environments - notebooks and netbooks.  I don't know much about GCs but will take a look.
22:08 thou is there a setlocale() call already available in rakudo? Or is a Locale.pm using NativeCall the right way to go, just for that one function?
22:09 thou btw, for my previous question, i think it makes most sense to do something similar to Log::Any, and implement a simple Log::Any::Adapter to $*ERR as a starting point
22:09 masak loul, I blougged! \o/ http://strangelyconsistent.org/blog/ju​ly-20-putting-the-leaves-in-the-basket
22:09 thou (after doing some reading, and this nice blog: http://blogs.perl.org/users/steven_harya​nto/2010/11/short-grossly-incomplete-com​parison-of-perl-logging-frameworks.html )
22:11 masak again, I challenge people to break my game in ways I didn't anticipate.
22:11 masak I now have 109 tests for the game, all of which pass.
22:11 masak I probably need lots more tests.
22:13 adam7504 joined #perl6
22:14 moritz sysadmin question for feather2: is there a way to restrict user accounts to only allow rsync-over-ssh?
22:14 moritz ie I have a user 'p6doc' which owns /var/www/doc.perl6.org and I want to restrict that user to not allow "normal" logins, just rsync
22:15 masak oh, oh, I read that somewhere about half a year ago...
22:16 masak here: http://troy.jdmz.net/rsync/index.html
22:17 whiteknight joined #perl6
22:18 thou masak: on http://strangelyconsistent.org/blog/ju​ly-17-2012-getting-things-from-the-car the link to "be revealed when we open it" goes to the wrong commit
22:19 thou should be: https://github.com/masak/crypt/commit/d​570802f689a8609df2d4c9ba53a26dbad236db6
22:21 lue masak: may I recommend some synonyms, such as 'x' for 'examine' and single letters for the compass directions and up and down?
22:23 masak thou: thank you, will fix.
22:23 masak lue: absolutely.
22:23 masak lue: are you willing to send pull requests?
22:23 masak if not, I'll simply get to them before the month is over.
22:24 lue Sure, I'll go fork in just a minute (I've thought of a couple of silly extra scenery objects just playing the game as well)
22:25 adam7504_ joined #perl6
22:26 pochi joined #perl6
22:26 moritz masak++ # http://troy.jdmz.net/rsync/index.html
22:26 moritz I never knew about the extra syntax for .authorized_keys
22:26 masak \o/
22:27 prettyrobots joined #perl6
22:29 thou masak: one thing that i keep wishing for is a cleaner (um, what does that mean, though?) way to do stuff like https://github.com/masak/crypt/commit/a309a​bbc97c17956f8466c6bbbb69d8d19bd4aad#L0R497  ; something like the Maybe monad for error handling, so I don't need to do explicit if ... { return True if ...; } return False;
22:30 masak hm, I don't really see now why I wrote it that way.
22:30 masak probably an artifact of copy/paste.
22:32 masak the middle condition there is useless.
22:32 * masak patches
22:33 thou masak, another one that bugs me is:  https://github.com/masak/crypt/blob/a309abbc97​c17956f8466c6bbbb69d8d19bd4aad/bin/crypt#L508   not that i have an idea how to improve it at the moment
22:33 thou seems like autovivification should be happening there
22:34 masak oh, probably.
22:34 masak I'll try that out and see if I get any warnings.
22:34 masak thou++
22:34 thou if not, then a python-esque getWithDefault($key, $default_value) is cleaner
22:35 masak no, we can't have that, can we? :P
22:35 moritz seems like %!exit_aliases{$!player_location}{$direction} // $direction  should do, no?
22:35 thou well, not that python invented it, but that's where i tend to have to use it the most...
22:35 thou i'd like it to
22:35 moritz autovivifcation never happens through read-only accesses
22:36 thou thanks, autovivification is not what i want, i just want that to work w/o warnings or errors
22:36 masak and it does.
22:36 masak committing.
22:37 masak thou: https://github.com/masak/crypt/commit/3​c8d86fbf508fd924089df7534baea304708c8bd https://github.com/masak/crypt/commit/7​2ccf824dc58d680bdbbdbb937edcb126619c63a
22:37 masak thou++
22:37 thou cool
22:38 masak here at crypt enterprises, we value customer feedback.
22:39 thou that second one in particular is a lot more fun to read
22:40 masak :)
22:40 masak I have this thing where sometimes I'm stuck in the workarounds of 2008.
22:40 masak I should probably take a Perl 6 course at some point :P
22:42 thou carl, while i'm on it, the other thing that bugs me is calling !apply_and_return() all the time. i keep hoping for some refactor that calls that automatically. iirc it even got left out at one time when needed, and caused a bug.
22:43 moritz 00:38 < masak> here at crypt enterprises, we value customer feedback
22:43 moritz ok, i want more cryptography, given the name :-)
22:43 masak hehe :)
22:43 masak moritz: I value your feedback :P
22:44 moritz at least rot-128 the save files or so :-)
22:44 thou uh-oh, did i open up the peanut gallery?
22:44 masak thou: yes, I'm on the lookout for such a change too. thing is, it has advantages and disadvantages.
22:44 moritz masak: was that a polite way to say no? :-)
22:44 masak moritz: no :)
22:44 masak moritz: I'll think about it.
22:45 masak mostly I'm just recreating last year's game right now.
22:45 masak but it would be foolish to ban actual improvements.
22:45 masak I recommend playing last year's version (on beijing) and reading the walls everywhere.
22:46 masak or just reading the description file straight off.
22:46 masak (last year's)
22:48 fgomez joined #perl6
22:50 cognominal_ jnthn++ # blogging
22:51 lue r: for ^10 { when 2 { say "2" }; when 5 { say "5"};};
22:51 p6eval rakudo b15d33: OUTPUT«2␤5␤»
22:51 lue :)
22:54 thou masak: still on my code review kick, i think DirectionAliased should make use of opposite(); i know it might mean rooting around in %!exits{.room}, and assuming rooms are already connected, or some other cruftiness; or refactoring just putting aliases directly into the TwoRoomsConnected
22:54 thou feel free to tell me to stop :-)
22:54 UncleFester6 left #perl6
22:55 masak no, this is interesting.
22:55 * lue is currently coding up a generic "synonym expansion" sub in crypt
22:56 masak thou: I can see the argument for making DirectionAliased bidirectional, but I actually consider it a feature that it's not.
22:56 thou i am sad you had to de-`handle`d methods in Crypt::Game; i was hoping the solution would involve finding a way to unpack the |$c param
22:56 masak thou: basically, "in" and "out" are not primary directions. they don't point anywhere in particular.
22:57 thou but they are in %opposites :-)
22:57 masak thou: I'm sad about that too. I don't understand well enough why the signatures can not be preserved through `handles`.
22:58 masak thou: hm, what are they doing in %opposites? that seems wrong.
22:58 thou take 'em out!
22:58 masak on it.
22:59 masak gone.
23:01 lue masak: can the player check what he's carrying yet? (the "inventory" command)
23:02 masak no, not yet.
23:02 masak though most of the mechanics for enabling that are in place one way or another.
23:02 masak the container model is mostly in place, for example.
23:03 thrn left #perl6
23:03 lue So I won't include the "i" synonym yet.
23:04 * masak is curious to see what solution lue ends up with
23:04 masak lue: have you looked at last year's solution for that?
23:05 masak you might find it enlightening.
23:05 lue uh, no :) /me looks
23:06 masak https://github.com/masak/crypt/commits/2011
23:07 masak or https://github.com/masak/crypt/tree/2011 , rather.
23:07 moritz jnthn: I've tried http://moritz.faui2k3.org/tmp/role-sig.patch to make 'does Foo[(1, 2, 3)]' work, but now I get  ./perl6 -e 'role Foo[@x] {method x() { say @x.perl }; class C does Foo[(1, 2, 3)] { }; C.new.x'  =>  None of the parametric role variants for 'Foo' matched the arguments supplied. Cannot call ''; none of these signatures match:   (and then a newline, and nothing more)
23:08 moritz rerunning witih --ll-exception, that's from nqp;Perl6;Metamodel;Paramet​ricRoleGroupHOW;specialize
23:09 moritz could it be that specialize doesn't like reference types or something?
23:11 lue masak: I made a hash like that for the directions, but the others are essentially hard-coded in my expand_cmd sub (although I was thinking of replacing it all with a general "here's what to expand" hash)
23:11 * lue in fact does just such a generalization
23:12 thou ok, i'm off for the weekend. have fun, #perl6
23:12 kurahaupo joined #perl6
23:13 Coleoid joined #perl6
23:14 masak thou: \o
23:16 moritz r: role A[$x] { }; class C does A[1+1] { }
23:16 p6eval rakudo b15d33: OUTPUT«===SORRY!===␤Cannot use '1+1' as an argument to a parametric role as its value is not known at compile time at line 2, near " { }"␤»
23:16 moritz that one works locally
23:22 Vlavv joined #perl6
23:24 moritz jnthn: never mind, I was just being stupid :-)
23:25 moritz forgot a curly, so the role was still open, and it didn't like that
23:27 dalek rakudo/nom: 81328c3 | moritz++ | src/Perl6/World.pm:
23:27 dalek rakudo/nom: evaluate argument list for compile time role application instead of whining that it is not known
23:27 dalek rakudo/nom:
23:27 dalek rakudo/nom: tanzdebil++ for bringing it to my attention
23:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/81328c3d0c
23:27 moritz sleep&
23:29 cognominal joined #perl6
23:37 lue masak: pull requested. Now I'll just add some stuff to the game that I feel like adding to it ("clouds" scenery object, etc.)
23:38 lue oh, one thing I think you'd like to fix masak is that I can't touch (or even examine!) the fire that blocks my path.
23:39 sorear $ examine fire
23:39 sorear The fire is emitting thermal radiation which makes it painful to look at.  You do not get a good look at it.
23:40 sorear $ pick up firs
23:40 sorear With what, your bare hands?
23:40 sorear $ catch fire
23:40 sorear OK.
23:40 * lue suddenly thinks of the "escape" command you can type in the old Hitchhiker's Guide text game
23:41 sorear what does it do?
23:41 kurahaupo joined #perl6
23:41 lue >escape
23:41 lue You are so keen on escape that you literally leap through the fabric of the space-time continuum. You wake up in a shack on tenth-century
23:41 lue Earth. A dressing gown, a toothbrush, and a flathead axe lie by your bed. Before you have a chance to move, Mongol hordes sweep magnificently
23:41 lue across the plains of central Asia. They knock down your shack and burn the remains with you inside. You lose interest in the rest of the game.
23:42 masak ;)
23:42 moritz sorear: invoce the HCF opcode? .-)
23:43 masak lue: I'll have a look at the pull request tomorrow. going to bed now.
23:43 lue alright, goodnight masak o/
23:44 lue .oO(> catch fire \nIgnoring all warning, you successfully bathe yourself in one of man's greatest discoveries\n***You have died***)
23:45 masak 'night, #perl6
23:46 fgomez joined #perl6
23:59 user_5450 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs