Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-07-20

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:05 Exodist joined #perl6
00:29 Cabanossi joined #perl6
00:30 lookatme joined #perl6
00:30 lookatme morning
00:53 kybr joined #perl6
00:59 Cabanossi joined #perl6
01:01 mr-foobar joined #perl6
01:25 rubio_terra_ joined #perl6
01:30 rubio_terra_ p6: my @a = 1,2; my @b[2;2] = ((1,2),(3,4)); constant @aa = 1,2; constant @bb[2;2] = ((1,2),(3,4));
01:30 camelia rakudo-moar 5b6cd4: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Missing initializer on constant declaration␤at <tmp>:1␤------> 3(3,4)); constant @aa = 1,2; constant @bb7⏏5[2;2] = ((1,2),(3,4));␤»
01:30 rubio_terra_ Why can't I declare a multi-dimensional array constant?
01:30 rubio_terra_ Is this by design?
01:32 mr-foobar joined #perl6
01:36 geekosaur I think there's still a fair amount of NYI with respect to shaped arrays at present
01:38 rubio_terra_ hmm
01:47 lookatme m: my @b[2;2] = ((1,2),(3,4));
01:47 camelia rakudo-moar 5b6cd4: ( no output )
01:47 lookatme m: my @b[2;2] = ((1,2),(3,4)); say @b[0][1];
01:47 camelia rakudo-moar 5b6cd4: OUTPUT: «Partially dimensioned views of shaped arrays not yet implemented. Sorry.␤  in block <unit> at <tmp> line 1␤␤»
01:47 rubio_terra_ p6: my @a[2;2] = ((1,2),(3,4)); say @a[0;1];
01:47 camelia rakudo-moar 5b6cd4: OUTPUT: «2␤»
01:48 ilbot3 joined #perl6
01:48 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
01:49 rubio_terra_ m: constant @a = ((1,2),(3,4)); say @a[1;1];
01:49 camelia rakudo-moar 5b6cd4: OUTPUT: «4␤»
01:49 rubio_terra_ This works for me. :)
01:49 rubio_terra_ No need to use a shaped array.
01:55 mcmillhj joined #perl6
02:00 Cabanossi joined #perl6
02:03 mr-foobar joined #perl6
02:06 lookatme I think this is still a shaped array.
02:11 mcmillhj joined #perl6
02:11 rubio_terra_ It may be. But at least it works that way.
02:13 geekosaur actually "shaped" means the shape is part of the type. although in the case of a constant there may well not be much difference
02:13 giraffe joined #perl6
02:17 lookatme m: constant @a = ((1,2),(3,4)); say @a.shape;
02:17 camelia rakudo-moar 5b6cd4: OUTPUT: «No such method 'shape' for invocant of type 'List'␤  in block <unit> at <tmp> line 1␤␤»
02:18 lookatme m: my @a = ((1,2),(3,4)); say @a.shape;
02:18 camelia rakudo-moar 5b6cd4: OUTPUT: «(*)␤»
02:18 lookatme Oh, it's different
02:19 lookatme m: constant @a = "123123"; say @a;
02:19 camelia rakudo-moar 5b6cd4: OUTPUT: «(123123)␤»
02:29 noganex joined #perl6
03:01 BenGoldberg m: constant @a = ((1,2),(3,4)); dd @a
03:01 camelia rakudo-moar 5b6cd4: OUTPUT: «((1, 2), (3, 4))␤»
03:01 BenGoldberg m: constant @a = ((1,2),(3,4)); say @a.WHAT
03:01 camelia rakudo-moar 5b6cd4: OUTPUT: «(List)␤»
03:01 BenGoldberg m: my @a[42]; dd @a
03:01 camelia rakudo-moar 5b6cd4: OUTPUT: «Array.new(:shape(42,), [Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any])␤»
03:02 BenGoldberg Oooh.
03:02 BenGoldberg m: constant @a := Array.new: :shape(42,), ((1,2),(3,4)); dd @a;
03:02 camelia rakudo-moar 5b6cd4: OUTPUT: «Array.new(:shape(42,), [(1, 2), (3, 4), Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any])␤»
03:03 BenGoldberg m: constant @a := Array.new: :shape(42,), ((1,2),(3,4)); say @a.WHAT;
03:03 camelia rakudo-moar 5b6cd4: OUTPUT: «(Array)␤»
03:03 BenGoldberg m: constant @a := Array.new: :shape(42,), ((1,2),(3,4)); say @a.shape;
03:03 camelia rakudo-moar 5b6cd4: OUTPUT: «(42)␤»
03:04 BenGoldberg rubio_terra_, Multi dimensioned array constant ^
03:04 BenGoldberg m: constant @a := Array.new: :shape(2,2), ((1,2),(3,4)); say @a.shape;
03:04 camelia rakudo-moar 5b6cd4: OUTPUT: «(2 2)␤»
03:04 BenGoldberg m: constant @a := Array.new: :shape(2,2), ((1,2),(3,4)); dd @a;
03:04 camelia rakudo-moar 5b6cd4: OUTPUT: «Array.new(:shape(2, 2), [1, 2], [3, 4])␤»
03:04 BenGoldberg m: constant @a := Array.new: :shape(2,2), ((1,2),(3,4)); say @a[1][1];
03:04 camelia rakudo-moar 5b6cd4: OUTPUT: «Partially dimensioned views of shaped arrays not yet implemented. Sorry.␤  in block <unit> at <tmp> line 1␤␤»
03:04 BenGoldberg m: constant @a := Array.new: :shape(2,2), ((1,2),(3,4)); say @a[1;1];
03:04 camelia rakudo-moar 5b6cd4: OUTPUT: «4␤»
03:05 mr-foobar joined #perl6
03:20 karabas joined #perl6
03:21 karabas p6: say reduce(&[<],0,0,1); say [<] 0,0,1
03:21 camelia rakudo-moar 5b6cd4: OUTPUT: «True␤False␤»
03:23 kybr may this seems crazy, but is there an equivalent to clang-format for perl6? i write mostly c++ and i started forcing all my code to a particular standard on writes.
03:27 karabas p6: say reduce(&[<],0,0); say [<] 0,0
03:27 camelia rakudo-moar 5b6cd4: OUTPUT: «False␤False␤»
03:27 karabas p6: say reduce(&[<],0,0,1); say [<] 0,0,1
03:27 camelia rakudo-moar 5b6cd4: OUTPUT: «True␤False␤»
03:41 BenGoldberg kybr, I think what you want is Perl6::Tidy
03:43 Cabanossi joined #perl6
03:47 zoll left #perl6
03:52 kybr BenGoldberg: cool. i see it here: https://github.com/drforr/perl6-Perl6-Tidy but `zef install Perl6::Tidy` fails: No candidates found matching identity: Perl6::Tidy
03:53 kybr but cool. it's good to know that i'll be able to use it eventually.
04:10 lookatme joined #perl6
04:22 aindilis` joined #perl6
04:24 andrzejku joined #perl6
04:43 Cabanossi joined #perl6
04:52 xtreak joined #perl6
04:53 test joined #perl6
04:57 test1 joined #perl6
04:57 nadim joined #perl6
04:57 test1 left #perl6
04:58 test1 joined #perl6
05:13 andrzejku joined #perl6
05:15 nadim joined #perl6
05:38 xtreak joined #perl6
05:39 xtreak_ joined #perl6
05:44 dolmen joined #perl6
05:58 Cabanossi joined #perl6
06:11 ufobat joined #perl6
06:32 domidumont joined #perl6
06:38 domidumont joined #perl6
06:51 lizmat joined #perl6
06:52 nadim joined #perl6
07:15 TreyHarris joined #perl6
07:18 darutoko joined #perl6
07:18 saison joined #perl6
07:23 pecastro joined #perl6
07:23 saison Hi, if i have a class that contains an array, is it possible to override the [] operator like you can in c++?
07:23 saison I managed to override the + operator, but couldn't get the [] index working :)
07:28 moritz saison: yes, see https://docs.perl6.org/language/subscripts#Custom_types
07:30 saison moritz: thanks!
07:36 dakkar joined #perl6
07:36 abraxxa joined #perl6
07:37 xtreak joined #perl6
07:39 Guest92653 joined #perl6
07:39 parv joined #perl6
07:40 xtreak joined #perl6
07:41 spider-mario joined #perl6
07:42 mr-foobar joined #perl6
07:46 wamba joined #perl6
07:57 Cabanossi joined #perl6
07:58 zakharyas joined #perl6
08:01 domidumont joined #perl6
08:17 alexk joined #perl6
08:17 alexk camelia: help
08:17 camelia alexk: Usage: <(rakudo-moar|p5-to-p6|prof-m|star-m|debug-cat|nqp-js|rakudo-jvm|nqp-moarvm|nqp-jvm|nqp-q|r-j|sm|star|nom|nqp-m|p6|m|p56|rakudo|nqp-mvm|r-m|r-jvm|j|rj|perl6|rm|r|nqp)(?^::\s(?!OUTPUT)) $perl6_program>
08:26 moritz m: say 42
08:26 camelia rakudo-moar 5b6cd4: OUTPUT: «42␤»
08:40 xtreak joined #perl6
08:41 xtreak joined #perl6
08:57 Cabanossi joined #perl6
08:59 pmurias joined #perl6
09:10 aindilis joined #perl6
09:14 xtreak joined #perl6
09:23 imcsk8_ joined #perl6
09:25 mr-foobar joined #perl6
09:30 Guest92653 joined #perl6
09:31 alexk m: for ^500_000 { @ = 'a,b,c;d,e'.split(/<[,;]>/) }; say now - INIT now;
09:31 camelia rakudo-moar 21b9a7: OUTPUT: «(timeout)»
09:32 alexk m: for ^100_000 { @ = 'a,b,c;d,e'.split(/<[,;]>/) }; say now - INIT now;
09:32 camelia rakudo-moar 21b9a7: OUTPUT: «7.44574168␤»
09:32 alexk m: use Inline::Perl5; my $p5 = Inline::Perl5.new; $p5.run(q|my @a; for my $i (1..500_000) { @a = split(/[,;]/, 'a,b,c;d,e,f')}|); say now - INIT now;
09:33 camelia rakudo-moar 21b9a7: OUTPUT: «5===SORRY!5=== Error while compiling /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inline::Perl5)␤An exception occurred while evaluating a constant␤at /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inl…»
09:34 alexk m: for ^500_000 { @ = 'a,b,c,d,e'.split(',') }; say now - INIT now;
09:34 camelia rakudo-moar 21b9a7: OUTPUT: «6.61846318␤»
09:35 alexk m: use nqp;  for ^500_000 { @ = nqp::split(',', 'a,b,c,d,e') }; say now - INIT now;
09:35 camelia rakudo-moar 21b9a7: OUTPUT: «3.2061412␤»
09:36 alexk m: for ^400_000 { @ = 'a,b,c;d,e'.split(/<[,;]>/) }; say now - INIT now;
09:37 camelia rakudo-moar 21b9a7: OUTPUT: «(timeout)»
09:37 timotimo m: for ^400_000 { @ = 'a,b,c;d,e'.split(",", ";") }; say now - INIT now
09:37 camelia rakudo-moar 21b9a7: OUTPUT: «Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5;' (indicated by ⏏)␤  in block <unit> at <tmp> line 1␤␤»
09:38 jnthn I think split can also take an array of things to split on, to avoid the overhead of the regex engine
09:38 timotimo m: for ^400_000 { @ = 'a,b,c;d,e'.split([",", ";"]) }; say now - INIT now
09:38 camelia rakudo-moar 21b9a7: OUTPUT: «(timeout)»
09:42 Cabanossi joined #perl6
09:42 rindolf joined #perl6
09:46 robertle joined #perl6
09:46 alexk m: for ^500_000 { @ = <a b c d e> }; say now - INIT now;
09:46 camelia rakudo-moar 21b9a7: OUTPUT: «2.704391␤»
09:46 nine On the one hand it's scary how advertisement is now so smart that I suddenly see lots of ads for KLM flights to Amsterdam on phoronix.com. On the other hand, how stupid is bombarding someone with ads for a product they already bought?
09:47 alexk m: use nqp;  for ^500_000 { @ = nqp::split(',', 'a,b,c,d,e') }; say now - INIT now;
09:47 camelia rakudo-moar 21b9a7: OUTPUT: «3.2437390␤»
09:49 timotimo nine: you just bought this washing mashine. how about a second one?
09:49 alexk m: use nqp;  for ^500_000 { nqp::split(',', 'a,b,c,d,e') }; say now - INIT now;
09:50 camelia rakudo-moar 21b9a7: OUTPUT: «0.40678281␤»
09:52 jnthn fwiw, nqp::split is marked as pure, and it's entirely possible one that loop gets hot then it's just not doing the split at all
09:52 jnthn 'cus it can see the result is dead
09:52 jnthn m: use nqp;  for ^500_000 { $ = nqp::split(',', 'a,b,c,d,e') }; say now - INIT now;
09:52 camelia rakudo-moar 21b9a7: OUTPUT: «0.4182325␤»
09:53 jnthn That makes sure it is being used (though it appears it actually was, I guess it was being returned and sunk)
09:53 jnthn Tad surprised it wasn't pulled out entirely though
09:55 andrzejku joined #perl6
09:55 alexk jnthn: the point int the example above is that the most time spent in the array assignment @ = ...
09:55 jnthn Yeah
09:56 jnthn It's going to cost something 'cus it has to allocate a Scalar container per item
09:57 timotimo and if you put the declaration of the scalar outside, it'll become a lexical access, which isn't cheap either
09:57 nine timotimo: yeah, who gets by without a high availability washing machine cluster these days?
09:58 jnthn Was just saying that if you have statements in void context, especially nqp:: ops, you need to be careful benchmarking because we do have stuff that will rip out instructions that are pure and produce an unused result
10:05 alexk m: use Inline::Perl5; my $p5 = Inline::Perl5.new; $p5.run(q|my @a; for (1..500_000) { @a = split(/[,;]/, 'a,b,c;d,e,f')}|); say now - INIT now;
10:05 camelia rakudo-moar 21b9a7: OUTPUT: «5===SORRY!5=== Error while compiling /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inline::Perl5)␤An exception occurred while evaluating a constant␤at /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inl…»
10:09 alexk m: use Inline::Perl5; my $p5 = Inline::Perl5.new; $p5.run('print 42;');
10:09 camelia rakudo-moar 21b9a7: OUTPUT: «5===SORRY!5=== Error while compiling /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inline::Perl5)␤An exception occurred while evaluating a constant␤at /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inl…»
10:10 jsimonet .tell Zoffix So the error is generated internally and not by my operation 3.3/0 => (33/10)/0 => ((33/0)/10)? Maybe the exception could be catched and generate another one which present 3.3 to the end user?
10:10 yoleaux jsimonet: I'll pass your message to Zoffix.
10:10 Zoffix joined #perl6
10:10 Zoffix .
10:10 yoleaux 10:10Z <jsimonet> Zoffix: So the error is generated internally and not by my operation 3.3/0 => (33/10)/0 => ((33/0)/10)? Maybe the exception could be catched and generate another one which present 3.3 to the end user?
10:11 Zoffix jsimonet: there's no 3.3 tho
10:11 Zoffix jsimonet: the error is generated by .gist call on Rat that has 33 in numerator and zero in denominator
10:12 nine Darn...camelia's perl does not seem to be compiled with -fPIC anymore
10:13 Zoffix No catching is needed. Just a better exception can be through, like we do in Rational.ceiling: https://github.com/rakudo/rakudo/blob/nom/src/core/Rational.pm#L73-L76
10:13 Zoffix s/through/thrown/;
10:15 jsimonet Zoffix: my bad, ok thank you :)
10:17 Zoffix m: say (3.3/0).Int
10:17 camelia rakudo-moar 02667b: OUTPUT: «Attempt to divide by zerowhen coercing Rational to Int␤  in block <unit> at <tmp> line 1␤␤»
10:17 Zoffix .oO( you had one job... )
10:17 jsimonet I can thy to find and fix it :)
10:19 Zoffix jsimonet: the missing space is the `$_ with $.details` in this commit should be `" $_" with $.details`: https://github.com/rakudo/rakudo/commit/e22508d41a283df9987c3839b7fa6dfbf645597c
10:20 nine m: EVAL 'print "hello world"', :lang<Perl5>
10:20 camelia rakudo-moar 02667b: OUTPUT: «hello world»
10:20 nine alexk: fixed it^^^
10:21 Zoffix jsimonet: And the poor error for the "division by 33" I think can be improved by doing the same exception throwing code as here https://github.com/rakudo/rakudo/blob/nom/src/core/Rational.pm#L73-L76 but in method Str instead: https://github.com/rakudo/rakudo/blob/nom/src/core/Rational.pm#L86
10:21 alexk nine++
10:22 alexk m: use Inline::Perl5; my $p5 = Inline::Perl5.new; $p5.run(q|my @a; for (1..500_000) { @a = split(/[,;]/, 'a,b,c;d,e,f')}|); say now - INIT now;
10:22 camelia rakudo-moar 02667b: OUTPUT: «0.8041398␤»
10:23 nine m: EVAL q|my @a; for (1..500_000) { @a = split(/[,;]/, 'a,b,c;d,e,f')}|, :lang<Perl5>; say now - INIT now;
10:23 camelia rakudo-moar 02667b: OUTPUT: «1.0882945␤»
10:23 nine m: EVAL q|my @a; for (1..500_000) { @a = split(/[,;]/, 'a,b,c;d,e,f')}|, :lang<Perl5>; say now - INIT now;
10:23 camelia rakudo-moar 02667b: OUTPUT: «0.899915␤»
10:24 nine I guess it's a bit higher as it measures the time to load Inline::Perl5, too
10:26 alexk nine: that's ok - just to get an idea how fast perl5's split is ...
10:27 nine ~ crazy fast? ;)
10:28 alexk yeah - especially compared to perl6's regex split ...
10:29 timotimo it's not news that perl6 regexes have gigantic overhead for start/stop
10:29 nine There's so much left to do in the compiler...
10:30 jnthn There always will be. :-)
10:30 jnthn Given the number PhDs earned each year coming up with shiny new optimization techniques :)
10:34 nine We could for example statically optimize a split(/[,;]/, 'a,b,c;d,e,f') to 'a,b,c;d,e,f'.split((',', ';'))
10:37 timotimo yeah if regexes kept around some more info about their contents
10:38 timotimo that'd also be nice for stuff like ~~ m/"foo"/ being turned into a .contains call
10:38 timotimo (same with starts-with and ends-with if there's a ^ or $)
10:38 timotimo (except some newline handling shenanigans
10:38 timotimo i guess)
10:39 Zoffix ? what sort of shinanigans?
10:39 Zoffix Perl 6's $ isn't magical like Perl 5, is it?
10:40 Zoffix m: say "foo\n" ~~ /foo$/
10:40 camelia rakudo-moar 02667b: OUTPUT: «Nil␤»
10:40 timotimo ah, that's nice
10:57 mr-foobar joined #perl6
10:59 vendethiel joined #perl6
11:03 sacomo hi all
11:11 Juerd I used any() in method arguments for the first time. It's amazing how that let me express my thoughts in code with almost no translation
11:12 Juerd And especially, no annoying loop to distract me from what I was doing.
11:17 rurban joined #perl6
11:23 Juerd Is there a way to filter output from put and say, similar to Perl 5's TIEHANDLE?
11:23 mr-fooba_ joined #perl6
11:28 timotimo you can override $*OUT, if you use "but" and a role you'll "keep" whatever was set before
11:28 timotimo i.e. if that was already a "magical" thing
11:29 emeric joined #perl6
11:35 Juerd Hm, overriding is a start. But how do I hijack the output to modify it? And can I still access the original $*OUT to prevent recursion?
11:35 timotimo you can make your role parametric and stash the original $*OUT in the parameter
11:35 timotimo my $*OUT = $*OUT but ChangedFrom[$*OUT];
11:36 lizmat timotimo: that won't work
11:36 lizmat m: my $*OUT = $*OUT; note $*OUT
11:36 camelia rakudo-moar 02667b: OUTPUT: «(Any)␤»
11:36 lizmat it's a trap I got into recently myself
11:37 lizmat m: temp $*OUT = $*OUT; note $*OUT
11:37 camelia rakudo-moar 02667b: OUTPUT: «IO::Handle<IO::Special.new("<STDOUT>")>(opened)␤»
11:37 timotimo ah, of course
11:37 timotimo that's better
11:38 timotimo m: role SaysParameter[$foo] { say $foo.perl ~ " is the parameter; }; temp $*OUT = $*OUT but SaysParameter[$*OUT]
11:38 camelia rakudo-moar 02667b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at <tmp>:1␤------> 3p $*OUT = $*OUT but SaysParameter[$*OUT]7⏏5<EOL>␤    expecting any of:␤        postfix␤»
11:38 timotimo m: role SaysParameter[$foo] { say $foo.perl ~ " is the parameter"; }; temp $*OUT = $*OUT but SaysParameter[$*OUT]
11:38 camelia rakudo-moar 02667b: OUTPUT: «IO::Handle.new(path => IO::Special.new("<STDOUT>"), chomp => Bool::True, nl-in => $["\n", "\r\n"], nl-out => "\n", encoding => "utf8") is the parameter␤»
11:38 timotimo m: role SaysParameter[$foo] { say $foo.perl ~ " is the parameter"; }; temp $*OUT = $*OUT but SaysParameter[$*OUT]; say $*OUT.perl ~ " is the modified one"
11:38 camelia rakudo-moar 02667b: OUTPUT: «IO::Handle.new(path => IO::Special.new("<STDOUT>"), chomp => Bool::True, nl-in => $["\n", "\r\n"], nl-out => "\n", encoding => "utf8") is the parameter␤IO::Handle+{SaysParameter[IO::Handle]}.new(path => IO::Special.new("<STDOUT>"), chomp => Bool::True,…»
11:39 timotimo cool.
11:42 Juerd m: temp $*OUT = $*OUT but role { method print { die 42 } }; print "doesn't die"
11:42 camelia rakudo-moar 02667b: OUTPUT: «Too many positionals passed; expected 1 argument but got 2␤  in method print at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
11:42 timotimo it's not guaranteed that the print sub translates to a print call on the $*OUT
11:43 Cabanossi joined #perl6
11:43 lizmat m: temp $*OUT = $*OUT but role { method print(|) { die 42 } }; print "doesn't die"
11:43 camelia rakudo-moar 02667b: OUTPUT: «42␤  in method print at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
11:43 timotimo currently the IO::Handle class isn't very friendly to subclass
11:43 timotimo oh, well, i guess that's that :)
11:43 Juerd Ooh, what is | called?
11:43 lizmat basically it's short for an unnamed capture
11:43 timotimo anonymous capture
11:44 Juerd And why does this work? :)
11:44 lizmat because sub print calls $*OUT.print ?
11:44 Juerd I mean, why does it work with (|) but not without?
11:45 lizmat because then you have a method that doesn't accept any parameters except the object
11:45 lizmat hence the "expected 1 but got 2"
11:45 Juerd Ah, right. Brain's still stuck in Perl 5 land regarding arguments sometimes
11:46 timotimo if you had used @_, it would have worked, no?
11:46 lizmat I believe you want sub print(*@_) { } then
11:46 Juerd And the 1 but got 2 thing doesn't fully register because the invocant is counted too :)
11:46 Juerd Ran into that a few times, can't get used to it :(
11:46 lizmat yeah, actually, that feels like an LTA error message
11:47 lizmat because the error message *does* know it's about a method
11:50 noganex joined #perl6
11:50 Juerd Hah, the "$*OUT but" thing actually works
11:50 Juerd m: role x[$p] { method print(Str:D $x) { $p.print($x.subst(" ", "-", :global)) } }; temp $*OUT = $*OUT but x[$*OUT]; print "first test"; say "second test"; put "third test";
11:50 camelia rakudo-moar 02667b: OUTPUT: «first-testsecond-test␤third-test␤»
11:51 Juerd And all this because I need a feature in ansi escape sequences that doesn't exist: restore previous color.
11:52 Juerd So I'll just parse the string, keep a stack and pop that with a custom ansi-ish escape.
11:54 Juerd There's not inverse 'when', is there?
11:54 Juerd I have a few ugly "when $_ !~~ ..."
11:55 Juerd I guess I could do "when none ..."
11:59 moritz .oO( unwhen )
12:00 jnthn m: for 'foo', 'bar' { when !/a/ { say 42 }; default { say 0 } }
12:00 camelia rakudo-moar 02667b: OUTPUT: «42␤0␤»
12:01 jnthn Since /a/ in boolean context evaluates against $_ then you can just negate the result
12:01 jnthn m: for 'foo', 'bar' { when not /a/ { say 42 }; default { say 0 } }
12:01 camelia rakudo-moar 02667b: OUTPUT: «42␤0␤»
12:01 jnthn Or that if you prefer it longer :)
12:12 araraloren joined #perl6
12:13 Cabanossi joined #perl6
12:19 zakharyas joined #perl6
12:22 lucasb joined #perl6
12:24 Juerd jnthn: That works for regexes, not for classes :)
12:24 Juerd s/classes/types/
12:25 jnthn ah, you didn't even mention a regex :)
12:25 moritz for types, none(Str) works
12:25 Juerd moritz: I think it works for everything?
12:25 jnthn Not sure why I conclueded that :)
12:25 moritz Juerd: presumably, yes
12:29 ufobat joined #perl6
12:38 brabo joined #perl6
12:45 astj joined #perl6
12:47 astj joined #perl6
12:50 mcmillhj joined #perl6
12:54 xtreak joined #perl6
12:58 astj joined #perl6
12:58 Cabanossi joined #perl6
12:59 rindolf Hi all! https://github.com/shlomif/perl6-examples/blob/shlomif--euler343/categories/euler/prob343-shlomif.p6 is really slow - why? And what can be done about it?
13:02 rindolf https://github.com/shlomif/project-euler/blob/master/project-euler/343/euler_343_v2.bash - this equivalent program in bash and perl 5 is much faster
13:05 moritz rindolf: donate to http://www.perlfoundation.org/perl_6_core_development_fund
13:05 jnthn Perhaps use native types in factor
13:08 astj joined #perl6
13:08 rindolf jnthn: ah
13:09 jnthn But yeah, otherwise there's no much for it except letting the optimizer get better at dealing with non-native integer stuff
13:10 rindolf jnthn: https://docs.perl6.org/type.html - do you mean "int"?
13:10 jnthn Yes
13:10 rindolf jnthn: ok
13:10 xtreak joined #perl6
13:12 perlpilot rindolf: btw, no need for parens around your conditionals.  (I only mention it because it looks weird to me now :)
13:12 rindolf perlpilot: ok
13:19 rindolf jnthn: ok - converted to "int" - it is still very slow - https://github.com/shlomif/perl6-examples/blob/shlomif--euler343/categories/euler/prob343-shlomif.p6 - hit reload
13:31 cdg joined #perl6
13:35 lucasb rindolf: maybe drop the "return" word
13:35 lucasb is that still a thing in rakudo or it has been optimized?
13:36 rurban joined #perl6
13:38 perlpilot rindolf: Here's that shell+P5 version converted to shell+P6: https://gist.github.com/perlpilot/434bea65c71dff73f2991909e4bf6dc6   by my timing, it's slightly faster than the P5 version, but that's probably noise.
13:39 rindolf perlpilot: i see
13:40 lucasb perlpilot: maybe you like the style, but I'm just pointing out that you don't need the extra backslash at "... | factor | \" :)
13:41 perlpilot rindolf: btw, did you try profiling your pure Perl 6 version?
13:41 skids joined #perl6
13:41 rindolf perlpilot: i did
13:41 perlpilot lucasb: nah, I just copied rindolf's and changed stuff.  He had the \  :)
13:41 lucasb ah :)
13:42 Juerd Is there a way to determine whether an exception is a built-in Perl 6 exception type?
13:43 Cabanossi joined #perl6
13:43 spider-mario joined #perl6
13:44 astj joined #perl6
13:44 perlpilot Juerd: I doubt it.
13:44 moritz Juerd: not really; that's rarely a useful distinction
13:45 perlpilot Juerd: I guess you could grep rakudo/src/core/Exception.pm to see if it appears there
13:45 Juerd moritz: I think it is. The built-in ones indicate programming errors, whereas the ones I add are mostly user errors.
13:45 moritz maybe you can look at CORE:: if it's in there somewhere
13:45 Juerd perlpilot: Yep, did do that. They all just inherit from Exception only
13:46 Juerd Of course, I can decorate my own exceptions. Was just curious if I had to
13:47 lucasb maybe differentiate the ones that are under the "X::" namespace and those that are not
13:48 Juerd lucasb: That's harder because smart matching doesn't do prefixes or wildcards :)
13:48 perlpilot lucasb: sure, that would be by convention though ... nothing stopping someone from violating that convention.  (might really matter when it's a 3rd party lib that does so)
13:48 Juerd In my current use case, the difference between X::AdHoc and everything else is good enough
13:49 Juerd Where I'm assuming that all "die Str" are user input errors, and the rest are unexpected.
13:51 lizmat we have some die's still in core though  :-(
13:51 Juerd Oh :(
13:51 Juerd I'll probably create my own exception type with some syntactic sugar then
13:52 lizmat it appears freenode is going to do something new: https://freenode.net/news/freenode-live
13:52 lizmat perhaps something for #perl6 people to show up for?  http://freenode.net/news/freenode-live-exhibit
13:54 ufobat joined #perl6
13:54 lizmat afk for a bit&
14:00 rindolf perlpilot: the Perl 5 translation of my p6 code is also slow - https://github.com/shlomif/project-euler/blob/master/project-euler/343/prob343-shlomif.pl
14:00 rindolf perlpilot: thanks!
14:02 bob777 joined #perl6
14:16 dakkar joined #perl6
14:28 domidumont1 joined #perl6
14:50 araraloren Can anyone use MAC help me ? What's the value of $*KERNEL under OSX ?
14:53 gdonald darwin (16.6.0)
14:54 araraloren gdonald, thanks
15:04 donaldh joined #perl6
15:09 cdg joined #perl6
15:10 geekosaur joined #perl6
15:12 mr-foobar joined #perl6
15:20 bwisti joined #perl6
15:21 hythm hello perl6, I'm working in a file parsing program, wrote Grammar actions class with a hash attribute, and wrote the action method that is called after each line to insert into the hash. I can print the hash content from the method, but when I print it from MAIN it's empty.
15:21 hythm what am i missing? here is the code https://gist.github.com/hythm7/f80b2d291dfdc5cf491ca6437b72fcef
15:23 timotimo i suggest you leave out passing "my %logs" to LogActions.new (so that a new hash gets created for you in the actions class) and then grab it out using the action class' .logs method
15:23 moritz hythm: you seem to be doing a weird mixture of passing around hashes but also modifying a shared hash. I suggest you settle for one paradigma (preferrably returning data instead of mutating it in place)
15:24 astj joined #perl6
15:25 hythm timotimo makes sense, trying that now
15:28 hythm moritz, i think  you are right, this weird mixture is probably due to not fully understand this part of passing data yet,  i need to read more on that
15:29 domidumont joined #perl6
15:30 astj joined #perl6
15:31 AlexDaniel joined #perl6
15:34 astj joined #perl6
15:42 hoelzro joined #perl6
15:42 mr-foobar joined #perl6
15:43 Cabanossi joined #perl6
15:53 cdg joined #perl6
15:54 ChoHag joined #perl6
15:56 Zoffix araraloren: note that $*KERNEL is an object, not a string.
15:56 Zoffix m: $*KERNEL.^methods.say
15:56 camelia rakudo-moar 02667b: OUTPUT: «(BUILD name version release hardware arch archname bits signals signal Str gist auth signature desc)␤»
15:59 araraloren joined #perl6
16:03 moritz m: say $*KERNEL.^name
16:03 camelia rakudo-moar 02667b: OUTPUT: «Kernel␤»
16:08 zakharyas joined #perl6
16:12 rurban joined #perl6
16:12 Cabanossi joined #perl6
16:13 mr-foobar joined #perl6
16:14 araraloren .tell Zoffix Got it, thanks!
16:15 yoleaux araraloren: I'll pass your message to Zoffix.
16:15 Zoffix .
16:15 yoleaux 16:14Z <araraloren> Zoffix: Got it, thanks!
16:15 araraloren m: say $*KERNEL
16:15 camelia rakudo-moar 02667b: OUTPUT: «linux (4.4.70.18.9.default)␤»
16:15 domidumont joined #perl6
16:15 araraloren m: say $*KERNEL.WHAT
16:15 camelia rakudo-moar 02667b: OUTPUT: «(Kernel)␤»
16:16 araraloren m: say "maybe linux ?" if $*KERNEL ~~ /^linux/
16:16 camelia rakudo-moar 02667b: OUTPUT: «maybe linux ?␤»
16:16 araraloren Night!
16:16 araraloren Good night.
16:16 Zoffix m: say "maybe linux ?" if $*KERNEL.name eq 'linux';
16:16 camelia rakudo-moar 02667b: OUTPUT: «maybe linux ?␤»
16:16 astj joined #perl6
16:31 mr-foobar joined #perl6
16:33 lizmat joined #perl6
16:41 mr_ron joined #perl6
16:42 Cabanossi joined #perl6
16:46 setty1 joined #perl6
16:46 mr_ron I am interested in learning a bit about garbage collection.  Yesterday I showed a MoarVM memory panic on #perl6-dev - https://irclog.perlgeek.de/perl6-dev/2017-07-19#i_14893012 .   I reproduced it on my system and it looks like the concatenation just keeps gobbling memory, never frees and eventually runs out.  In this case when memory runs out shouldn't the GC try to recover some?
16:47 ugexe if memory runs out what memory would the GC use to recover memory?
16:48 mr_ron The total string length is 7_000_000 characters and the ulimit is 1 GB
16:50 ChoHag joined #perl6
16:52 andrzejku_ joined #perl6
16:52 mr_ron I guess I am not clear on whether the problem is a memory leak of some kind or a GC failure
16:56 ugexe if you run with `perl6-valgrind-m` it might give you some insight
16:57 mr-fooba_ joined #perl6
16:57 andrzejku joined #perl6
16:58 mcmillhj joined #perl6
17:02 mr_ron never ran valgrind before but just installed and trying ...
17:03 ugexe https://gist.github.com/ugexe/f0b471d176de8eb955bbbd804f5bca09 <- this is the summary I got from it, although I'm not sure what to extrapolate from it
17:06 robertle joined #perl6
17:07 hythm timotimo when I understood that part of not passing %log to the Actions class and made the change in the gist, but what I dont understand is how to grab %logs out, If I used LogActions.new.logs it will be empty because it creates a new object.
17:08 timotimo right, you will want to store your LogActions.new in a variable, pass it to the parse call and later grab $my-log-actions.logs to get the hash
17:08 hythm aaah
17:08 hythm right
17:08 hythm thanks
17:13 mr-foobar joined #perl6
17:13 hythm worked :)
17:16 mr_ron ugexe: your gist seems to show 10GB of heap usage.  Looks like a problem.  No?
17:22 Util joined #perl6
17:26 ugexe i just reran after building with a rakudo built from HEAD and it was `2,093,230,194 bytes allocated` with the same number allocs and frees
17:26 ugexe approx the same anyway
17:29 mr_ron If I set a "ulimit -v 1024000" the in use at exit goes way up to 1/2 GB.  Maybe the in use at exit if it runs to completion allows for freeing some extra memory.
17:30 ugexe probably samcv's recent commits in moarvm are responsible for the reduced bytes allocated https://github.com/MoarVM/MoarVM/commits/master
17:31 * timotimo is working on something
17:31 mr_ron doing rakudobrew build moar now  .. don't know if that will get those commits ...
17:32 ugexe no no, rakudobrew build moar-blead
17:32 mr_ron thx
17:33 ugexe and if you ever want to update moar-blead, always do `rakudobrew nuke moar-blead` before doing `rakudobrew build moar-blead` again
17:34 timotimo mr_ron: what real-world code are you trying to simulate with this repeated concatenation benchmark?
17:35 ugexe he is tryign to learn about garbage collection
17:35 timotimo ah
17:36 mr_ron There is no real world use case.  Perl 5 has no problems here.  For large cases p6 is much slower and runs out of memory.
17:36 mr_ron Cannot build Rakudo with backend 'moar-bleed': this backend does not exist.
17:36 ugexe blead, not bleed
17:36 mr_ron thx
17:37 timotimo i just put in something very similar to what we have for bigints that causes GC to run more often when huge objects are created
17:38 timotimo the thing is that the GC-managed portion of the MVMString is the same size no matter how many characters are in it
17:38 timotimo so we have to teach the GC to count some extra for such big objects
17:38 timotimo anyway, 500_000 still takes ages
17:39 timotimo memory usage sawtooths like crazy
17:40 cdg_ joined #perl6
17:41 timotimo 500000: 586.6925867
17:41 timotimo 462.79user 118.04system 9:46.97elapsed 98%CPU (0avgtext+0avgdata 5392876maxresident)k
17:42 timotimo so "only" 5 gigs
17:44 timotimo running it without that stuff to see how many iterations it survives and when it reaches the same memory usage
17:44 ugexe its significantly faster and uses less memory if you type the $x and $y to str
17:44 timotimo interesting
17:46 ugexe 5.5s vs 0.2s for me on 50k
17:46 timotimo oh wow
17:46 timotimo can you --profile that at all?
17:46 ugexe just add --profile?
17:46 timotimo yeah
17:46 mr_ron you mean my - yes what do you want "--profile"d
17:47 mr_ron s/my/me
17:47 ugexe m: for (50_000) -> $limit {my str $x; my str $y = "x" x 100; $x ~= $y for (1..$limit); say "$limit: ", now - ENTER now}
17:47 camelia rakudo-moar 02667b: OUTPUT: «50000: 0.062815␤»
17:47 timotimo i think it touched the 5 gigs just now, but htop didn't refresh often enough to see
17:48 timotimo at like 370k
17:48 ugexe m: for (50_000) -> $limit {my Str $x; my Str $y = "x" x 100; $x ~= $y for (1..$limit); say "$limit: ", now - ENTER now}
17:48 camelia rakudo-moar 02667b: OUTPUT: «50000: 6.2019572␤»
17:49 timotimo yeah, it takes 410k to reach the same amount of ram that it tops out at with my patch
17:51 timotimo um, what
17:51 timotimo with str instead of Str it finishes using just 80368maxresidentk
17:51 timotimo that's 80 megs
17:58 mr_ron is "MoarVM version 2017.07-6-ga739fc8" blead?
17:58 ugexe yes
18:01 ugexe my $x; my str $y; is all that is needed
18:02 timotimo seems so
18:05 rackstraw joined #perl6
18:05 mr_ron "my str $y" works for me but with blead and a count of 100_000 (without str $y) valgrind shows "in use at exit 2 GB" with the MoarVM panic
18:05 |oLa| joined #perl6
18:07 mr_ron I need to move on to other things right now but but thank you both for all of the insights.
18:07 timotimo 99% time spent in collapse_strands
18:07 mr_ron timotimo: was your biting thing a MoarVM issue or an RT ticket?
18:08 mr_ron timotimo: was your bigint thing a MoarVM issue or an RT ticket?
18:08 gdonald joined #perl6
18:08 timotimo i can push it as a branch
18:09 ugexe "???? " x 100 triples the time with Str, but it stays the same with str too
18:11 mr_ron I'll review the logs tomorrow and try and decide if an RT ticket still makes sense.  Thanks again.
18:12 Juerd Is $foo.+method supposed to call multiple candidates of multi methods?
18:12 Juerd If not, I think the documentation is inaccurate.
18:12 Juerd If so, I think it's broken.
18:13 ChoHag joined #perl6
18:14 mr-foobar joined #perl6
18:15 timotimo For any method name, there may be some number of candidate methods that could handle the request: typically, inherited methods or multi variants. The ordinary "dot" operator dispatches to a method in the standard fashion. There are also "dot" variants that call some number of methods with the same name:
18:16 timotimo $object.+meth(@args)  # calls all methods (1 or more, die if none)
18:17 ugexe m: role Bar { method xxx($a) { say $a * 2 } }; class Foo { method xxx($a) { say $a } }; my $foo = Foo.new; $foo does Bar; $foo.+xxx(1)
18:17 camelia rakudo-moar 02667b: OUTPUT: «2␤1␤»
18:24 jnthn .? and .+ and .* are just about the MRO
18:25 jnthn .+ and .* will call a candidate that it finds at each level of the MRO
18:25 jnthn Multi-dispatch is orthogonal to this. In each class with multi candidates, there is a proto method that dispatches to the appropriate candidate
18:26 jnthn The proto if not present being produced by cloning the one in a parent class, if relevant
18:26 jnthn Or making a new one with an empty candidate list otherwise
18:33 Juerd Thanks for the explanation, I'll file a doc bug
18:37 nadim joined #perl6
18:37 _4d47 joined #perl6
18:38 Juerd Done: https://github.com/perl6/doc/issues/1421
18:46 nine I don't get this. I have a BOOTStr (i.e. a P6Str) in NQP. I unbox_s it, yet it still remains nqp::isstr? How do I get at the darn string?
18:47 timotimo but if you have nqp::isstr it already is a string?
18:48 nine Apparently not. The isstr op seems to check for P6str: GET_REG(cur_op, 0).i64 = obj && REPR(obj)->ID == MVM_REPR_ID_P6str ? 1 : 0;
18:48 jnthn nine: nqp::isstr takes an object, so if you nqp::isstr(nqp::unbox_s($s)) then it will box the result of the unbox
18:48 nine Also if I $err.print() it, it complains about the string being NULL
18:48 jnthn nqp::isnull_s(nqp::unbox_s($s)) will tell you if a null string got boxed, if that's what you're after
18:49 nine Ah isnull_s!
18:51 Zoffix nine: ah, right, I should've mentioned the latest code in nqp for that area isn't doing much :} along with needing nqp::isnull_s instead of nqp::isnull that nqp::can($error, 'message') is always false
18:52 nine Zoffix: yeah, because it's not the $error but $error's payload we need to check
18:54 nine Fix pushed
18:54 Zoffix huh :|
18:55 _4d47 left #perl6
18:56 Zoffix I don't get how that works.
18:56 nine Does it at least work?
18:56 Zoffix You didn't test? :)
18:57 nine I did with the one test case :)
18:57 Zoffix Ok then :)
18:58 Zoffix I thought $error was nqp-type exception, not Exception.pm6 exception
18:58 timotimo maybe through the P6EX mechanism?
18:58 Zoffix timotimo: where is it?
18:58 Geth ¦ ecosystem: 3abfcbdb8b | (Tony O'Dell)++ (committed using GitHub Web editor) | META.list
18:58 Geth ¦ ecosystem: Add YAML::Parser::LibYAML
18:58 Geth ¦ ecosystem: review: https://github.com/perl6/ecosystem/commit/3abfcbdb8b
19:00 Zoffix I see this https://github.com/rakudo/rakudo/blob/nom/src/core/Exception.pm#L343-L355
19:00 Zoffix Well, I'm disappointed such an easy fix eluded me last night :)
19:00 Zoffix nine++
19:02 nine Well it's a small fix, but the isnull_s thing made it not exactly easy
19:02 nine jnthn++ # without that hint, I'd still scratch my head :)
19:03 Juerd What would be an idiomatic way to call multiple candidates of a multi method?
19:05 mr_ron joined #perl6
19:11 mr-fooba_ joined #perl6
19:11 Zoffix nine: that makes me feel even worse, because both the nqp::null was added by my hand AND last night I found out it was supposed to be nqp::null_s, but because changing that alone didn't fix the original problem I never commited it :P
19:11 dct joined #perl6
19:14 Zoffix Juerd: call why?
19:14 Zoffix m: multi x(Int) { say "Int" }; multi x(Cool) { say "Cool" }; multi x(Any) { say "Any" }; $_(42) for &x.cando(\(42))
19:14 camelia rakudo-moar 559c92: OUTPUT: «Int␤Cool␤Any␤»
19:15 Zoffix I've no idea what you're trying to do
19:15 Juerd I have a bunch of objects, and am doing things based on a role
19:16 nhywyll joined #perl6
19:16 Juerd I built it the wrong way around, and instead of having methods in the roles, I was trying to do a multi method somewhere else
19:16 Juerd It did make me curious if that could have worked. Apparently, it could :)
19:16 Juerd Hm, I can't do it with methods in the roles because that wouldn't compose...
19:16 Juerd Meh.
19:17 Juerd Some objects will do multiple roles
19:21 Juerd I currently do this: https://gist.github.com/Juerd/b26ab3fbb704aa9812f4fc1b9ba429ad
19:21 ugexe m: role Bar { method xxx($a) { say $a * 2 } }; role Baz { method xxx($a) { say $a * 3 }; }; class Foo { method xxx($a) { say $a } }; my $foo = Foo.new; ($foo does Bar) does Baz; $foo.+xxx(1)
19:21 camelia rakudo-moar 559c92: OUTPUT: «3␤2␤1␤»
19:22 Juerd I don't understand why that works
19:24 |oLa| joined #perl6
19:26 nine Zoffix: well, all's well that ends well :)
19:27 hythm m: class TestActions { method TOP ($/) { say so "abc" ~~ /abc/ } }; TestActions.new.TOP($/)
19:27 camelia rakudo-moar 559c92: OUTPUT: «Cannot assign to a readonly variable ($/) or a value␤  in method TOP at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
19:28 hythm I understand that it's trying to assign $/ which is already in TOP scope, but how to match against regex inside grammar actions method?
19:29 jnthn Call the parameter something else
19:30 Zoffix m: class TestActions { method TOP ($foo) { say so "abc" ~~ /abc/ } }; TestActions.new.TOP($/)
19:30 camelia rakudo-moar 559c92: OUTPUT: «True␤»
19:30 jnthn (Also, it's a bit of a code smell to be doing parsing in the actions, that would ideally have been taken care of in the grammar.)
19:30 Zoffix And access stuff via  $foo<bar> instead of $<bar>
19:30 jnthn Juerd: Works because each mixin is a new level of inheritance
19:31 jnthn shopping &
19:31 Juerd jnthn: I thought roles didn't do inheritance. Apparently they sometimes do?
19:33 khw joined #perl6
19:33 pecastro joined #perl6
19:35 ugexe consider the difference with `($foo does Bar) does Baz` and `$foo does (Bar,Baz)`
19:36 Juerd Hmm
19:39 hythm Thank you jnth and zoffix, that fixed the problem. looking now onto making grammar take care of that match better
20:02 Morfent joined #perl6
20:12 TEttinger joined #perl6
20:19 jnthn Juerd: The role itself is composed rather than inherited. The `does` trait (in class C does R { }) composes the role into the class. The `does` infix operator performs a runtime mixin, meaning it creates an anonymous subclass of the type of the LHS, composes the role into that subclass, and then changes the type of the object to that new anonymous subclass.
20:20 jnthn class C does R1 does R2 { } will detect conflicts between R1 and R2; $x does (R1, R2) will do similar (it only creates one anon subclass and composes the roles into both)
20:21 Juerd I didn't know the difference between 'does' as a trait and 'does' as an infix was so big
20:25 jnthn They're both composing roles into something, just in one case it's the class being declared (compile time) and in the other case into an individual object (runtime).
20:26 jnthn And the latter is done by the very same mechanism as the first, it's just an anonymous subclass they're being composed into
20:26 jnthn But it runs the same composition code otherwise :)
20:27 jnthn bbiab
20:32 Juerd When is a package defined? I'm getting "The following packages were stubbed but not defined", but I have classes for them.
20:37 Juerd I'm able to work around my circular dependencies with 'augment' but it feels icky :D
20:45 nadim goood evening, can someone, who preferably knows html, have a look at this file https://drive.google.com/open?id=0B2cpZf_We6InWTZfOXdvX0hKSkE   it's a rendering of a data dump, three actually
20:45 nadim I'd like to know if it is possible to avoid the blue border around the button once it is clicked
20:46 nadim also when an element of the structure is folded, it  is not easy to see that it is folded, don't really know how to make folded data look like folded data, ideas welcome
20:50 Morfent joined #perl6
20:52 Mrofnet joined #perl6
20:59 spider-mario joined #perl6
21:00 pecastro joined #perl6
21:01 Mrofnet joined #perl6
21:05 mr-foobar joined #perl6
21:09 eyck joined #perl6
21:12 Cabanossi joined #perl6
21:15 mcmillhj joined #perl6
21:15 mr-foobar joined #perl6
21:28 g41j1n joined #perl6
21:29 mr-fooba_ joined #perl6
21:50 lizmat joined #perl6
21:58 mcmillhj joined #perl6
22:14 mcmillhj joined #perl6
22:20 mr-foobar joined #perl6
22:28 mr-foobar joined #perl6
22:34 cpage_ joined #perl6
22:43 BenGoldberg joined #perl6
22:44 gdonald joined #perl6
22:49 cpage_ joined #perl6
23:09 zoll joined #perl6
23:19 itaipu joined #perl6
23:35 TEttinger joined #perl6
23:39 skids joined #perl6
23:46 AlexDaniel joined #perl6
23:54 pilne joined #perl6
23:57 Cabanossi joined #perl6

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

Perl 6 | Reference Documentation | Rakudo