Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-01-25

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 brokenchicken What it means is a LTA error for whatever problem your code has :)
00:00 brokenchicken (or a bug)
00:02 jdv79 its happening on a p5 sub call in my app but i can't golf it yet
00:02 jdv79 in isolation is works fine
00:02 jdv79 *it
00:04 brokenchicken *shrug* I only see it mentioned in World in symbol lookup: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/World.nqp#L3927 in Actions on EXPORT sub: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L5719 and as a method defined on stash
00:04 brokenchicken Run with --ll-exception it should give better stacktrace
00:04 brokenchicken Is it called a stacktrace or a backtrace?
00:04 * brokenchicken goes to play Witcher 2 for a bit :)
00:12 jdv79 ah ha
00:13 jdv79 something to do with having use XML; and use XML::Entites:from<Perl5> in the same scope
00:13 jdv79 shouldn't that work?
00:15 brokenchicken Yeah, but there are a couple of bugs that involve stuff like that doing wrong things
00:15 jdv79 nine: ^^^
00:15 jdv79 i guess i'll bug it
00:15 jdv79 well, i unfortunately need to do that:(
00:16 brokenchicken Like https://rt.perl.org/Ticket/Display.html?id=130200#ticket-history and https://rt.perl.org/Ticket/Display.html?id=129856#ticket-history and https://rt.perl.org/Ticket/Display.html?id=129856#ticket-history and https://rt.perl.org/Ticket/Display.html?id=126426#ticket-history
00:17 brokenchicken XML is just a type object right, you don't need any subs or anything? Don't know if it'll help, but maybe try `use XML` in a separate file and then do constant XXML is export = XML;
00:17 brokenchicken And then in the file with XML::Entities, you won't have XML:: namespace
00:18 brokenchicken (I'm just making shit up as I go along, I've no idea if this would work :P)
00:21 jdv79 well, XML does export sbus
00:21 jdv79 subs
00:21 jdv79 from-xml() for instance
00:22 brokenchicken ok, same stuff
00:23 brokenchicken constant &something-or-other = &from-xml; but that's buggy too, so do something like our $whatever is export = &from-xml; or sub whatever(|c) is export { from-xml |c }
00:24 brokenchicken or sub EXPORT { { '&from-xml' => &from-xml } }
00:25 jdv79 can i just use XML somewhere else and just call XML::from-xml()?
00:25 jdv79 that seems to not work either
00:26 brokenchicken You'd be able to call that only from where you used it... and only if those subs are `our` subs
00:27 jdv79 oh right
00:30 jdv79 brokenchicken: your 2nd to last suggestion seems to wokr!
00:30 jdv79 work even
00:30 jdv79 thanks
00:31 brokenchicken w00t!
00:33 pyrimidine joined #perl6
00:39 BenGoldberg joined #perl6
00:44 BenGoldberg m: use XML;
00:44 camelia rakudo-moar e5ca5c: OUTPUT«===SORRY!===␤Could not find XML at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-1/share/perl6␤    CompUnit::Repositor…»
00:44 BenGoldberg m: say $*CWD
00:44 camelia rakudo-moar e5ca5c: OUTPUT«"/home/camelia".IO␤»
00:46 BenGoldberg m: say "/home/camelia/rakudo-m-inst-1/share/perl6/site".IO.dir
00:46 camelia rakudo-moar e5ca5c: OUTPUT«("/home/camelia/rakudo-m-inst-1/share/perl6/site/short".IO "/home/camelia/rakudo-m-inst-1/share/perl6/site/precomp".IO "/home/camelia/rakudo-m-inst-1/share/perl6/site/sources".IO "/home/camelia/rakudo-m-inst-1/share/perl6/site/resources".IO "/home/camelia/…»
00:46 BenGoldberg m: say "/home/camelia/rakudo-m-inst-1/share/perl6".IO.dir
00:46 camelia rakudo-moar e5ca5c: OUTPUT«("/home/camelia/rakudo-m-inst-1/share/perl6/lib".IO "/home/camelia/rakudo-m-inst-1/share/perl6/runtime".IO "/home/camelia/rakudo-m-inst-1/share/perl6/short".IO "/home/camelia/rakudo-m-inst-1/share/perl6/precomp".IO "/home/camelia/rakudo-m-inst-1/share/perl…»
00:46 BenGoldberg m: say +"/home/camelia/rakudo-m-inst-1/share/perl6".IO.dir
00:46 camelia rakudo-moar e5ca5c: OUTPUT«12␤»
00:48 jdv79 tony-o: HTML::Parser::XML fails its tests for me
00:50 Actualeyes joined #perl6
00:54 tony-o jdv79: taking a look at it right now.
00:55 tony-o jdv79: what version of XML and perl6 are you using?
00:56 jdv79 how do i get the version of XML?
00:56 tony-o sorry - i didn't see the p6 at the bottom of the gist
00:57 lep-delete joined #perl6
00:57 tony-o jdv79: zef info XML
00:58 jdv79 0.0.2
00:58 agentzh joined #perl6
00:59 BenGoldberg m: say 'ab' ~~ rx!abc!
00:59 camelia rakudo-moar e5ca5c: OUTPUT«Nil␤»
00:59 BenGoldberg m: say 'ab' ~~ rx!ab!
00:59 camelia rakudo-moar e5ca5c: OUTPUT«「ab」␤»
00:59 BenGoldberg m: say 'ab' ~~ rx!{rx/a/}{rx/b/}!
00:59 camelia rakudo-moar e5ca5c: OUTPUT«「」␤»
00:59 jdv79 the errors seem like more of the same sort of lexical ns stuff
00:59 jdv79 that's going around lately:(
01:00 BenGoldberg m: my $a = rx/a/; my $b = rx/b/; say 'ab' ~~ rx!$a$b!
01:00 camelia rakudo-moar e5ca5c: OUTPUT«「ab」␤»
01:00 tony-o yea i'm having a problem reproducing the issue
01:00 Geth doc: 0d88b21100 | (Samantha McVey)++ | doc/Type/IO/Path.pod6
01:00 Geth doc: Better examples for .basename and .dirname
01:00 Geth doc:
01:00 Geth doc: Old examples were not as clear as they could have been, and did not
01:00 Geth doc: show examples for all the cases the user may want to know the result of.
01:00 Geth doc: review: https://github.com/perl6/doc/commit/0d88b21100
01:00 tony-o i'm rebuilding moar/p6 right now
01:00 BenGoldberg m: my $a = rx/a/; my $b = rx/b/; say 'ab' ~~ rx!{$a}$b!
01:00 camelia rakudo-moar e5ca5c: OUTPUT«「b」␤»
01:01 BenGoldberg m: my $a = rx/a/; my $b = rx/b/; say 'ab' ~~ rx!${$a}$b!
01:01 camelia rakudo-moar e5ca5c: OUTPUT«Nil␤»
01:01 * BenGoldberg is confused
01:01 tony-o jdv79: is that moar-blead or just moar?
01:02 tony-o BenGoldberg: what output are you expecing?
01:03 BenGoldberg I am expecting rx/{...}/ to act much like qq/{...}/.
01:04 * BenGoldberg should probably go reread the docs.  It probably is supposed to do something more interesting.
01:04 BenGoldberg m: "{1+2}".say
01:04 camelia rakudo-moar e5ca5c: OUTPUT«3␤»
01:05 BenGoldberg m: rx"{1+2}".say;
01:05 camelia rakudo-moar e5ca5c: OUTPUT«rx"{1+2}"␤»
01:05 tony-o m: rx"${1+3}".say
01:05 camelia rakudo-moar e5ca5c: OUTPUT«rx"${1+3}"␤»
01:06 tony-o jdv79: please do a pull on that repo and give it another shot at testing.
01:07 jdv79 oh look it works!
01:07 jdv79 well, installed
01:08 brokenchicken BenGoldberg: IMO worth rakudobugging. There may well be a good explanation for what it's doing, but it could also be a bug :)
01:09 brokenchicken m: my $a = rx/a/; my $b = rx/b/; say 'ab' ~~ rx!{dd $a; }$b!
01:09 camelia rakudo-moar e5ca5c: OUTPUT«Regex $a = rx/a/␤Regex $a = rx/a/␤「b」␤»
01:09 brokenchicken hmm
01:09 brokenchicken m: my $a = 'a'; my $b = 'b'; say 'ab' ~~ rx!{$a}$b!
01:09 camelia rakudo-moar e5ca5c: OUTPUT«「b」␤»
01:10 brokenchicken m: my $a = 'a'; my $b = 'b'; say 'ab' ~~ rx!<({$a}$b)>!
01:10 camelia rakudo-moar e5ca5c: OUTPUT«「b」␤»
01:10 brokenchicken m: my $a = 'a'; my $b = 'b'; say 'ab' ~~ rx!<({$a}{$b})>!
01:10 camelia rakudo-moar e5ca5c: OUTPUT«「」␤»
01:10 tony-o jdv79: i haven't looked at that module in ages, it was originally for web::scraper
01:10 * brokenchicken has no idea wtf it's doing
01:10 tony-o which is probably broken, now that i think of it
01:10 jdv79 well, it seems to be working now in real code
01:10 jdv79 thanks!
01:10 tony-o no problem
01:10 kurahaupo__ joined #perl6
01:13 cibs joined #perl6
01:15 BenGoldberg m: dd "aaa" =~ /a{3}/;
01:15 camelia rakudo-moar e5ca5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~␤at <tmp>:1␤------> 3dd "aaa" =~7⏏5 /a{3}/;␤»
01:16 BenGoldberg m: dd "aaa" ~~ /a{3}/;
01:16 camelia rakudo-moar e5ca5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of {N,M} as general quantifier; in Perl 6 please use ** N..M (or ** N..*)␤at <tmp>:1␤------> 3dd "aaa" ~~ /a{3}7⏏5/;␤»
01:16 brokenchicken m: dd "aaa" ~~ /a  {3}/;
01:16 camelia rakudo-moar e5ca5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of {N,M} as general quantifier; in Perl 6 please use ** N..M (or ** N..*)␤at <tmp>:1␤------> 3dd "aaa" ~~ /a  {3}7⏏5/;␤»
01:16 BenGoldberg That rules out that explanation.
01:16 brokenchicken m: dd "aaa" ~~ /a  {'3'}/;
01:16 camelia rakudo-moar e5ca5c: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "aaa", to => 1, from => 0)␤»
01:16 BenGoldberg m: dd "aaa" ~~ /a ** 3/;
01:16 camelia rakudo-moar e5ca5c: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "aaa", to => 3, from => 0)␤»
01:16 samcv how do i do: `"/".IO.dir.grep(.basename ~~ /etc/)
01:16 brokenchicken samcv: "/".IO.child("etc")
01:17 samcv that's not what i want
01:17 samcv there's multiple files with similar names i need to return only those
01:17 samcv by matching against regex. but i only want to match against the base names
01:17 BenGoldberg m: dd "/".IO.dir.grep: { $_.basename ~~ /etc/ }
01:17 camelia rakudo-moar e5ca5c: OUTPUT«("/etc".IO(:SPEC(IO::Spec::Unix)),).Seq␤»
01:18 BenGoldberg m: say "/".IO.dir.grep: { $_.basename ~~ /etc/ }
01:18 camelia rakudo-moar e5ca5c: OUTPUT«("/etc".IO)␤»
01:18 samcv ok so i want grep with { } then
01:18 BenGoldberg m: say "/".IO.dir.grep: *.basename ~~ /etc/
01:18 camelia rakudo-moar e5ca5c: OUTPUT«WhateverCode object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤()␤»
01:18 samcv also what doc page lists the syntax for method: stuff here
01:18 samcv with the colon. i know some of them but i'd like to see the exact working of it
01:18 brokenchicken same as ()
01:19 BenGoldberg m: say "/".IO.dir.grep( { $_.basename ~~ /etc/ } )
01:19 camelia rakudo-moar e5ca5c: OUTPUT«("/etc".IO)␤»
01:19 cdg joined #perl6
01:20 brokenchicken m: say "/".IO.dir.grep: *.contains: 'etc'
01:20 camelia rakudo-moar e5ca5c: OUTPUT«("/etc".IO)␤»
01:20 BenGoldberg The colon lets you leave off the (), which is useful if you don't have any additional methods to call on the results of the method call. :)
01:20 BenGoldberg m: "/".IO.dir.grep( { $_.basename ~~ /etc/ } ).say; # this would be annoying if you used : instead of ()
01:20 camelia rakudo-moar e5ca5c: OUTPUT«("/etc".IO)␤»
01:20 samcv m: "abc".match: /a/, :g ~ 'thing'
01:20 camelia rakudo-moar e5ca5c: OUTPUT«Cannot resolve caller match(Str: Regex, Str); none of these signatures match:␤    (Any:U $: | is raw)␤    (Cool:D $: $target, *%adverbs)␤    (Str $: Cool:D $pattern, |c is raw)␤    (Str $: Regex:D $pattern, :continue(:$c)!, *%_)␤    (Str $: Regex…»
01:21 raiph Anyone know what I have to put in the email subject line or body to close an rt bug?
01:23 brokenchicken raiph: you could try this, but I don't know if the extension is enabled on our RT instance: http://search.cpan.org/~jesse/RT-Extension-CommandByMail-0.05/lib/RT/Extension/CommandByMail.pm
01:23 brokenchicken m: say "/".IO.dir.grep: /etc/.ACCEPTS: *.basename
01:23 camelia rakudo-moar e5ca5c: OUTPUT«WhateverCode object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤()␤»
01:24 brokenchicken mhm
01:24 brokenchicken m: say "/".IO.dir.grep: *.basename.match: /etc/
01:24 camelia rakudo-moar e5ca5c: OUTPUT«("/etc".IO)␤»
01:26 pyrimidine joined #perl6
01:38 jdv79 hmm.  i wonder if i'm running into Inline::Perl5 bugs or rakudo bugs or p5 bugs or what when p5 libs throw odd errors
01:39 jdv79 for instance:  https://gist.github.com/anonymous/ff92f6fbd69630bb32364be010759983
01:40 jdv79 and who printed this?:  Scalars leaked: 1
01:43 BenGoldberg m: sub defer_incr($foo is rw) { sub { $foo++ } }; my $x = 1; my $incr = defer_incr($x); dd $incr($x) for ^3;
01:43 camelia rakudo-moar e5ca5c: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
01:43 BenGoldberg m: sub defer_incr($foo is rw) { sub { $foo++ } }; my $x = 1; my $incr = defer_incr($x); dd $incr() for ^3;
01:43 camelia rakudo-moar e5ca5c: OUTPUT«1␤2␤3␤»
01:43 BenGoldberg m: sub defer_incr($foo is rw) { sub { $foo++ } }; my $x = 1; my $incr = defer_incr($x); dd $incr() for ^3; dd $x;
01:43 camelia rakudo-moar e5ca5c: OUTPUT«1␤2␤3␤Int $x = 4␤»
01:44 hartenfels jdv79: I encountered that when embedding Perl 5 into another program, the Perl 5 interpreted printed it when shutting down and a scalar still had a reference count at the end.
01:45 raiph brokenchicken: thanks (but didn't work out: https://rt.perl.org/Public/Bug/Display.html?id=130636)
01:46 brokenchicken raiph: how come it's rejected?
01:46 brokenchicken Ah. I see
01:47 brokenchicken It worked now :)
01:47 BenGoldberg m: subset Natural of Int where * > 0; postfix:<!> (Natural $n) { [*] 2..$n }; say 5!;
01:47 camelia rakudo-moar e5ca5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3of Int where * > 0; postfix:<!> (Natural7⏏5 $n) { [*] 2..$n }; say 5!;␤    expecting any of:␤        infix␤        infix stopper␤        statement end…»
01:47 BenGoldberg m: subset Natural of Int where * > 0; sub postfix:<!> (Natural $n) { [*] 2..$n }; say 5!;
01:48 camelia rakudo-moar e5ca5c: OUTPUT«120␤»
01:48 BenGoldberg m: subset Natural of Int where * > 0; sub postfix:<!> (Natural $n) { [*] 2..$n }; say 0!;
01:48 camelia rakudo-moar e5ca5c: OUTPUT«Constraint type check failed for parameter '$n'␤  in sub postfix:<!> at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
01:48 BenGoldberg m: subset Natural of Int where * >= 0; sub postfix:<!> (Natural $n) { [*] 2..$n }; say 0!;
01:48 camelia rakudo-moar e5ca5c: OUTPUT«1␤»
01:48 pyrimidine joined #perl6
01:48 BenGoldberg m: subset Natural of Int where * >= 0; sub postfix:<!> (Natural $n) { [*] 2..$n }; say (-1)!;
01:48 camelia rakudo-moar e5ca5c: OUTPUT«Constraint type check failed for parameter '$n'␤  in sub postfix:<!> at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
01:48 jdv79 hartenfels: ok
01:48 giraffe joined #perl6
01:48 brokenchicken m: sub postfix:<!> (UInt $n) { [*] 2..$n }; say 0!;
01:48 camelia rakudo-moar e5ca5c: OUTPUT«1␤»
01:49 BenGoldberg m: UInt $n = -1;
01:49 camelia rakudo-moar e5ca5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3UInt7⏏5 $n = -1;␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier␤        statement modi…»
01:49 brokenchicken m: say -1 ~~ UInt
01:49 camelia rakudo-moar e5ca5c: OUTPUT«False␤»
01:49 BenGoldberg m: my UInt $n = -1;
01:49 camelia rakudo-moar e5ca5c: OUTPUT«Type check failed in assignment to $n; expected UInt but got Int (-1)␤  in block <unit> at <tmp> line 1␤␤»
01:49 brokenchicken (it's not a true type BTW but just one of core subsets)
01:50 ggoebel joined #perl6
01:53 raiph brokenchicken: what did you do that i didn't (to reject ticket)?
01:53 brokenchicken raiph: clicked the web interface button.
01:54 raiph huh? i tried the web interface. hang on...
01:57 raiph OK. I got myself confused (because commenting doesn't work and then I got logged out and I'm thinking RT is even more broken than usual but in fact it's me that's an idiot, again)
01:57 raiph brokenchicken: thanks :)
02:02 TimToady BenGoldberg: {} doesn't interpolate into regexes; <{}> does.  {} is just for actions
02:02 brokenchicken Ah
02:02 brokenchicken TimToady++ tahnks
02:02 BenGoldberg m: rx"<{1+2}>".say;
02:02 camelia rakudo-moar e5ca5c: OUTPUT«rx"<{1+2}>"␤»
02:03 BenGoldberg m: rx/<{1+2}>/.say;
02:03 camelia rakudo-moar e5ca5c: OUTPUT«rx/<{1+2}>/␤»
02:03 BenGoldberg I'm feeling a little dumb here.
02:03 brokenchicken BenGoldberg: with what?
02:04 brokenchicken m: rx/<{meow meow meow meow}>/.say;
02:04 camelia rakudo-moar e5ca5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    meow used at line 1␤␤»
02:04 brokenchicken m: rx/<{say say say .say}>/.say;
02:04 camelia rakudo-moar e5ca5c: OUTPUT«rx/<{say say say .say}>/␤»
02:04 diakopter oh lol, yoleaux2 isn't in here
02:05 BenGoldberg m: '1' ~~ rx/<{say 'I know whats happening here'}>/;
02:05 camelia rakudo-moar e5ca5c: OUTPUT«I know whats happening here␤I know whats happening here␤»
02:05 BenGoldberg Thanks TimToady++
02:07 BenGoldberg m: 'abc' ~~ rx/<{ <a b c> .pick }>/;
02:07 camelia rakudo-moar e5ca5c: ( no output )
02:07 jdv79 it seems a bunch of errors tent to pour forth when exiting
02:07 BenGoldberg m: dd 'abc' ~~ rx/<{ <a b c> .pick }>/;
02:07 camelia rakudo-moar e5ca5c: OUTPUT«Nil␤»
02:07 BenGoldberg m: dd 'abc' ~~ rx/<{ <a b c> .pick(1) }>/;
02:07 camelia rakudo-moar e5ca5c: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "abc", to => 1, from => 0)␤»
02:07 jdv79 odd.  wonder what that is all about.  Failure objs getting touched or threads being shutdown or what
02:08 BenGoldberg m: dd 'abc' ~~ rx/<{ <a b c> .pick(1) }> ** 2/;
02:08 camelia rakudo-moar e5ca5c: OUTPUT«Nil␤»
02:08 BenGoldberg m: dd 'abc' ~~ rx/<{ <a b c> .pick(1) }> ** 2/;
02:08 camelia rakudo-moar e5ca5c: OUTPUT«Nil␤»
02:08 jdv79 *tend
02:08 brokenchicken jdv79: you're using Perl 5? Maybe some DESTROY stuff ain't getting called like it meant to?
02:08 brokenchicken or on the contrary... is?
02:08 jdv79 i already ran into a handful of p5 threading bugs i think
02:08 jdv79 but this is p6 code throwing errors
02:09 jdv79 all from the p6 XML dist
02:11 pyrimidine joined #perl6
02:17 jdv79 no!  an attempt to free unref'd scalar in a p5 lib and segfault:(
02:17 jdv79 this is not working out very well
02:17 kalkin- joined #perl6
02:17 jdv79 on the positive side there is real motivation to not use p5 as a crutch;)
02:17 jdv79 unless you need to like i do atm:(
02:20 brokenchicken :)
02:31 BenGoldberg Inline::Perl5 is purportedly designed to work in a thread safe manner.
02:32 BenGoldberg If you are getting segfaults, then either something is wrong with Inline::Perl5, or something is wrong with the specific perl5 module you are using.
02:37 jdv79 or something is wrong with rakudo, no?
02:37 mspo impossible!
02:47 ilbot3 joined #perl6
02:47 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!
02:50 dataf3l joined #perl6
02:50 Cabanossi joined #perl6
03:09 cdg joined #perl6
03:09 xtreak joined #perl6
03:11 YEM2040 joined #perl6
03:12 YEM2040 Random noob question if anyone wants to field it. I'm trying to find a editor that I can use on Ubuntu 16.04. I was using padre on 14.04 but seem to be having install issues with padre now.
03:14 samcv YEM2040, check out Atom, with https://github.com/perl6/atom-language-perl6 package
03:14 samcv for perl 6 highlighting
03:16 BenGoldberg huggable, editor
03:16 huggable BenGoldberg, nothing found
03:16 BenGoldberg huggable, editors
03:16 huggable BenGoldberg, nothing found
03:17 BenGoldberg huggable, editors is There is a list of editors and IDEs usable with perl6 here: https://perl6.org/whatever/
03:17 huggable BenGoldberg, nothing found
03:17 BenGoldberg huggable, editors :is: There is a list of editors and IDEs usable with perl6 here: https://perl6.org/whatever/
03:17 huggable BenGoldberg, Added editors as There is a list of editors and IDEs usable with perl6 here: https://perl6.org/whatever/
03:18 BenGoldberg huggable, editor :is: see editors
03:18 huggable BenGoldberg, Added editor as see editors
03:18 YEM2040 Alll right,t hanks Samcv
03:18 BenGoldberg YEM2040, You can also use vim and emacs.
03:20 Cabanossi joined #perl6
03:21 samcv emacs is not one of my favorite operating systems
03:29 giraffe joined #perl6
03:35 Actualeyes left #perl6
03:35 telex joined #perl6
03:44 BenGoldberg Right, I should have said, if you already know how to use either vim or emacs, you can use them with perl6.
03:44 pyrimidine joined #perl6
03:47 noganex_ joined #perl6
04:10 cdg joined #perl6
04:15 dugword joined #perl6
04:16 pyrimidine joined #perl6
04:30 Cabanossi joined #perl6
04:35 xtreak joined #perl6
04:38 _scott joined #perl6
04:39 _scott left #perl6
04:42 pyrimidine joined #perl6
04:52 Actualeyes joined #perl6
04:56 PerlJam joined #perl6
05:00 g__k__ joined #perl6
05:11 cdg joined #perl6
05:12 araujo joined #perl6
05:12 araujo joined #perl6
05:15 Cabanossi joined #perl6
05:46 pyrimidine joined #perl6
05:52 hchienjo joined #perl6
05:53 dugword joined #perl6
05:53 hchienjo m: my $j = True|False; say $j.WHAT;
05:53 camelia rakudo-moar e5ca5c: OUTPUT«(Junction)␤»
05:54 xtreak joined #perl6
05:58 pyrimidi_ joined #perl6
06:09 kenietz joined #perl6
06:09 kenietz hi there, have a question about 'shell'
06:12 cdg joined #perl6
06:12 kenietz when i run an external process with shell it runs ok and the program waits until the external process finishes. but if i capture stderr and stdout with :err and :out the program does not wait the external process
06:14 kenietz is there a way to run external process, capture STDERR and STOUT and yet the main program waits till the process finishes?
06:15 kenietz so far i could not find any info about it. not in documenation not on the net
06:19 TimToady well, someone has to put the output somewhere
06:19 geekosaur kenietz, that situation is typically called a deadlock
06:19 TimToady the program could produce gigabytes of output, and you can't the system to buffer it all up for you
06:19 TimToady *can't expect
06:20 kenietz i see.
06:21 kenietz so i should read it and put it somewhere but not the screen :)
06:22 geekosaur to one or more files, usually
06:25 TimToady that's the usual practice, if you want to wait till it's done
06:26 TimToady the disk is likelier to have room than storing it up in memory anyway
06:27 kenietz thanks a bunch for the info. every day learning something new. so far i never tried to do such thing so...the "problem" :)
06:27 TimToady we're all somewhere on the same road :)
06:28 kenietz but i suppose i can redirect the outputs to /dev/null if i dont wanna save it. or save and delete after all done
06:30 Cabanossi joined #perl6
06:34 curt__ joined #perl6
06:37 samcv need some help. for some reason some elements in state @slurp-dir get removed...
06:37 samcv https://github.com/samcv/UCD/commit/48588cdf1cbe73a22cf6418d213568f1b437e597#diff-9f2ebc507f13fb48cd055870de7efebcR36
06:38 samcv err wait, so it's cause i'm calling it asking for different folders. maybe could just leave it my, not much performance change
06:39 samcv or just make the state variable a hash or something indexed with the folders i want to store the files
06:39 kenietz left #perl6
06:40 CIAvash joined #perl6
06:40 samcv question though. so some sequences can get consumed. this applys to things in @ sigil variables too y/n?
06:41 samcv or is there any difference. I know @ sigil things have some differences
06:46 hchienjo joined #perl6
06:49 samcv oh it looks like they are being consumed :P in addition to the other problem I mentioned
06:50 kurahaupo__ joined #perl6
06:51 hartenfels1 joined #perl6
06:54 domidumont joined #perl6
06:57 hchienjo joined #perl6
07:00 domidumont joined #perl6
07:09 wamba joined #perl6
07:10 jmb2041 joined #perl6
07:10 jmb2041 hello
07:10 jmb2041 is anyone in here also in #perl?  It says I am banned but I have no idea why
07:10 jmb2041 how do I get it fixed?
07:12 samcv m: my Seq $thing = (1,3,4).Seq; say $thing.iterator
07:12 camelia rakudo-moar e5ca5c: OUTPUT«<anon|177770608>.new␤»
07:12 cdg joined #perl6
07:15 samcv m: my Seq $thing = (1,3,4).Seq; say $thing.iterator.gist
07:15 camelia rakudo-moar e5ca5c: OUTPUT«<anon|177770608>.new␤»
07:16 samcv jmb2041, i could ask why you are banned but idk if they will tell me
07:16 jmb2041 I'm guessing it is an old IP address
07:16 jmb2041 since FIOS recycles them
07:17 samcv yeah you're not blocked by username
07:17 jmb2041 thanks
07:19 AlexDaniel joined #perl6
07:19 nine jdv79: quite ironically Inline::Perl5 didn't survive merging of lexical_module_load quite as well as I thought it would. I'm in the process of rewriting the part that creates wrapper classes but $dayjob leaves me quite drained lately :/
07:19 samcv <Grinnz> there is a ban for *!*jason@*.bltmmd.fios.verizon.net
07:19 samcv <samcv> hmm
07:19 samcv <Grinnz> and his ident is jason, so it looks intended
07:19 samcv <Grinnz> but i don't know who placed it
07:19 jmb2041 In any event, someone may know the simple answer to this -- I am archiving all news stories associated with Trump and I use LWP::UserAgent to get those stories.  nytimes ends in an endless redirect (example:  https://www.nytimes.com/2017/01/24/us/politics/keystone-dakota-pipeline-trump.html) but works when using wget -qO- ... could this be related to the user agent string?
07:20 samcv yes that likely could. can you see the headers and compare them between wget
07:20 samcv and LWP::UserAgent
07:20 samcv what useragent are you using?
07:21 jmb2041 $ua->agent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");
07:21 jmb2041 I went and got the user agent of my version of chrome and just used that
07:21 nine jmb2041: try using wget's user agent
07:21 samcv yeah maybe it thinks you're trying to be sneaky
07:21 nine jmb2041: looks like they permit access to robots so they show up in search engines but require normal users to log in
07:22 samcv i like how NYT has free access to historical news articles. that is super awesome
07:22 jmb2041 is there another header besides user agent that specifies something as a robot?
07:22 nine jmb2041: no
07:23 samcv well. there are clever methods of detection
07:23 samcv but mostly the answer is no
07:23 jmb2041 I sort of cheated in my script and said if LWP fails to end up with 200, to just do "my $output = `wget -qO- $url`;" ... but that's not ideal.  So I'll try finding the user agent of wget
07:24 samcv cloudflare is sometimes annoying as hell. i have an IRC bot that grabs url titles. and cloudflare wouldn't let me first grab the header, and then if the bot deemed the page text to grab the rest of the page
07:24 samcv ended up having to parse the headers and the page content together to work around that and make my own url title grabber
07:24 samcv also it bails as soon as it gets the title
07:24 samcv so doesn't have to grab the whole page
07:25 nine User-Agent: Wget/1.18 (linux-gnu)
07:25 jmb2041 In a perfect universe, there would be an API for all of this from all the major news providers -- it still doesn't solve actually extracting the article out of the HTML, which one has to write a different parser for each one until it breaks from an update on their end
07:25 samcv buggable, stats
07:25 samcv buggable, help
07:25 buggable samcv, tags | tag SOMETAG | eco | eco Some search term | speed
07:25 samcv buggable, speed
07:25 buggable samcv, ▇▄▄▅▅▄▅▅▅▆▅▆▆▇▅▅█▅▅▇▄▂▁▂▄▂▂▅▄▃█▂▂▃▁▂▂▃▁▂▂▃▇▂▅▄▂▂▂▂ data for 2017-01-03–2017-01-24; range: 4.873s–5.758s
07:25 samcv heh jmb2041
07:26 samcv NYT coincidentally uses perl to collate all of their different news sources into one central thing
07:26 samcv and created NYTProf module to profile that code.
07:26 samcv Failing new york times! :P
07:27 moritz TimBunce++
07:27 jmb2041 oh heh ... that's right.  That's where that profiler came from
07:29 jmb2041 honestly, I didn't even know there was a 303 until I looked at the response dump
07:30 jmb2041 301, 302 are normally ones I see
07:30 samcv i love how staged this photo looks https://pbs.twimg.com/media/C29C0NUUQAANKyq.jpg:large like he told everybody ok i'm gonna sign this paper
07:30 samcv everybody get in the shot so we make make this seem really official and important
07:31 samcv don't think they'd be standing on the side of the desk and not on the other side
07:31 jast complete coincidence
07:31 samcv this is the most candid one i've seen him post https://pbs.twimg.com/media/C284hSBVIAAblKz.jpg
07:33 samcv i'm thinking they had a meeting like that and then trump said, ok we need to go to the oval office to take a picture
07:34 samcv anyway I digress. this is not #perl6 related :P
07:34 jmb2041 I am also keeping all submissions made to Reddit within elasticsearch -> example:  https://elasticsearch.pushshift.io/?q=perl6%20AND%20(score:%3E10%20OR%20num_comments:%3E10)&amp;sort=created_utc:desc&amp;size=125
07:34 jmb2041 (all comments as well)
07:34 jmb2041 the elasticsearch cluster is open to use
07:34 samcv i have not heard of elasticsearch. can you tell me something about it?
07:34 jmb2041 Are you familiar with sphinxsearch?
07:35 geekosaur joined #perl6
07:35 samcv no
07:35 jmb2041 MySQL fulltext search or PostgreSQL's text search?
07:35 jmb2041 It's basically like those but on steroids
07:35 jmb2041 You give it JSON documents and it indexes everything for you
07:35 samcv ah
07:36 samcv and where is this stored
07:36 jmb2041 I purchased 256GB of ram to hold all the documents (3 billion+)
07:36 jmb2041 It's on my server
07:37 samcv ah ok
07:37 samcv nice!
07:37 jmb2041 For instance, if you wanted to see all the comments made recently about Perl 6, this would be the endpoint:  https://apiv2.pushshift.io/reddit/comment/search/?q=%22perl%206%22
07:37 jmb2041 it gives a JSON response, so you will probably want a JSON prettifier (but I should probably eventually just prettify it from the server at the expense of a few extra bytes)
07:38 CIAvash joined #perl6
07:40 xtreak joined #perl6
07:41 aindilis joined #perl6
08:01 labster joined #perl6
08:09 ChoHag joined #perl6
08:13 cdg joined #perl6
08:17 xtreak joined #perl6
08:18 cibs joined #perl6
08:26 ChoHag joined #perl6
08:30 Cabanossi joined #perl6
08:31 ufobat joined #perl6
08:34 samcv jmb2041, ok so your ban was supposed to be 24 hours
08:34 samcv working on getting it removed now
08:36 zakharyas joined #perl6
08:41 as___ joined #perl6
08:42 as___ Hi guys. Is there a way to get the output similar to what -MO=Deparse does but with Rakudo?
08:45 moritz as___: you can use --target=ast to get rakudo's AST representation
08:46 as___ it's too different :)
08:47 moritz as___: what problem are you trying to solve?
08:58 parv joined #perl6
09:02 [ptc] joined #perl6
09:02 Actualeyes left #perl6
09:07 jonas1 joined #perl6
09:08 bjz joined #perl6
09:14 cdg joined #perl6
09:18 dakkar joined #perl6
09:37 abraxxa joined #perl6
09:45 Cabanossi joined #perl6
09:45 rindolf joined #perl6
10:00 timotimo the profiler perl6 gets should pun off of NYTProf ... like maybe TNRProf? (Times New Roman)
10:07 jast NQPProf... no wait, that's different
10:10 timotimo New Quark Primes?
10:11 DrForr DayProf?
10:14 jast ooh, that's evil, I like it
10:14 timotimo wow, that's amazing
10:14 timotimo it'll be quite different, though. clearly.
10:14 jast yeah, have it generate HTML with a dark colour scheme
10:15 timotimo 'cause Day 'n' NYT, the lonely coder seems to write his code at nite
10:15 jast code by night, profile ny day
10:15 jast *by
10:20 bjz joined #perl6
10:21 parv or nigh
10:30 Cabanossi joined #perl6
10:39 espadrine_ joined #perl6
10:48 gregf_ sudo su -
10:48 gregf_ :/ sorry
10:49 jnthn Enter password:
10:49 jnthn ;)
10:49 gregf_ M0r3c0ff33
10:49 gregf_ ;)
10:50 timotimo hunter2
10:58 perlawhirl joined #perl6
10:58 raschipi joined #perl6
11:00 Cabanossi joined #perl6
11:08 zakharyas joined #perl6
11:13 pyrimidine joined #perl6
11:15 cdg joined #perl6
11:25 pyrimidine joined #perl6
11:30 Cabanossi joined #perl6
11:59 xtreak joined #perl6
12:00 Cabanossi joined #perl6
12:07 samcv hunter3
12:07 samcv had to change my passwonrd last time cause idiot on irc
12:07 samcv tricked me into tnyping my password!
12:07 timotimo i know that feel
12:07 * jeek puts on his robe and wizard hat.
12:07 timotimo i'm already at 123478 :(
12:08 * samcv changes pw to hunter4
12:08 DrForr 00000000 - if it's good enough for nuclear weapons it's good enough for me.
12:08 DrForr shit.
12:09 TEttinger that's a surprisingly bad password
12:10 * raschipi changes password to ********
12:10 TEttinger that's terrible and I love it
12:10 raschipi I like this password because I can see what I'm typing in some prompts.
12:11 TEttinger password: /me enters invalid UTF-8 sequence
12:12 raschipi Start with a BOM and go from there.
12:12 timotimo windows lets you enter a chatacter by pressing ctrl-backspace
12:12 timotimo i never actually looked at what you get when you do that
12:12 TEttinger there's a NUL in there, some skin color emoji applied to CJK chars
12:16 cdg joined #perl6
12:17 raschipi I have read some papers about changing the way Linux treats filenames from "some bytes" to "valid utf-8", but it's not going forward because Unicode isn't used everywhere yet.
12:30 Cabanossi joined #perl6
12:38 z8 joined #perl6
12:39 pyrimidine joined #perl6
12:42 brillenfux joined #perl6
12:46 cdg joined #perl6
12:57 Actualeyes joined #perl6
13:00 Cabanossi joined #perl6
13:16 aborazmeh joined #perl6
13:16 aborazmeh joined #perl6
13:24 pyrimidine joined #perl6
13:30 samcv as of latest commit, unicode name/sequence name lookup is now insensitive \o/
13:30 samcv and added the rest of the sequences, so now we have full coverage
13:31 samcv https://github.com/MoarVM/MoarVM/commit/2544eb5302f3ccf13a3600637c3e081c67366da4
13:33 brokenchicken samcv: are \c[family] and several other ZWSs not part of standard yet?
13:34 samcv those are
13:34 samcv and have been fixed
13:34 brokenchicken m: "\c[kiss]"
13:34 camelia rakudo-moar 483e4f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [kiss]␤at <tmp>:1␤------> 3"\c[kiss7⏏5]"␤»
13:34 brokenchicken ah, ok
13:34 samcv see the commit i explain
13:34 samcv why the families get fixed now
13:34 samcv in the last sententce
13:35 samcv those family ones used commas in them to seperate boy,girl etc
13:35 brokenchicken Ahh
13:35 samcv which are not needed at all, and conflict with the standard commas seperated codeponit names that are part of ISO or uh. some other standard system. not sure if that's why they were in perl 6
13:35 samcv but there's some thing i forget which that standardized that
13:35 samcv (not part of unicode)
13:35 samcv well not the UCD.
13:36 samcv ISO or someody
13:37 yqt joined #perl6
13:43 teatime joined #perl6
13:45 Cabanossi joined #perl6
13:45 cibs joined #perl6
13:47 holyghost joined #perl6
13:48 samcv time for bed. night all o/
13:48 dudz night
13:49 dudz good work today
13:50 brokenchicken m: "\c[kiss]".say
13:50 camelia rakudo-moar 483e4f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [kiss]␤at <tmp>:1␤------> 3"\c[kiss7⏏5]".say␤»
13:53 brokenchicken m: "\c[kiss]".say
13:53 camelia rakudo-moar cca24d: OUTPUT«????␤»
13:53 brokenchicken w00t
13:53 brokenchicken m: "\c[family: man, man, girl]".say
13:54 camelia rakudo-moar cca24d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [family: man]␤at <tmp>:1␤------> 3"\c[family: man7⏏5, man, girl]".say␤»
13:54 brokenchicken m: "\c[family: man man girl]".say
13:54 camelia rakudo-moar cca24d: OUTPUT«????‍????‍????␤»
13:54 brokenchicken m: "\c[family: woman woman girl girl]".say
13:54 camelia rakudo-moar cca24d: OUTPUT«????‍????‍????‍????␤»
13:55 brokenchicken So the rule is we need to toss a comma from names because we have special meaning for it?
13:55 brokenchicken m: "\c[family: woman woman girl girl, woman playing handball: medium skin tone]".say
13:55 camelia rakudo-moar cca24d: OUTPUT«????‍????‍????‍????????????‍♀️␤»
13:55 cschwenz joined #perl6
13:55 brokenchicken neat
13:55 cschwenz p6: class Foo { has Promise $!x; method aaa() { $!x = Promise.start({ loop { sleep 1; }; }); return; }; method bbb() { $!x.break( 'ccc...' ); return; }; }; my $asdf = Foo.new(); $asdf.aaa(); $asdf.bbb();
13:55 camelia rakudo-moar cca24d: OUTPUT«Access denied to keep/break this Promise; already vowed␤  in method bbb at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:55 brokenchicken Don't render right on my screen, but neat! :)
13:55 cschwenz what am i doing wrong in the above code?
13:56 dataf3l joined #perl6
13:56 brokenchicken cschwenz: Trying to break an already vowed promise
13:56 cschwenz brokenchicken: where is the .vow?
13:56 brokenchicken cschwenz: I think it'd just be Promise.new; instead of an idle loop
13:57 brokenchicken cschwenz: start vows it
13:57 cschwenz that does it as well
13:57 jnthn It doesn't make any sense to call .break on a Promise you get back from start
13:57 jnthn It's kept/broken as a result of the scheduled code
13:58 cschwenz okay my use case is HTTP::Server::Tiny which has a "control-promise => …"
13:58 cschwenz how do i use said control-promise?
13:58 brokenchicken p6: class Foo { has Promise $!x; method aaa() { $!x = Promise.new; }); return; }; method bbb() { $!x.vow.break( 'ccc...' ); return; }; }; my $asdf = Foo.new(); $asdf.aaa(); $asdf.bbb();
13:58 camelia rakudo-moar cca24d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3$!x; method aaa() { $!x = Promise.new; }7⏏5); return; }; method bbb() { $!x.vow.bre␤    expecting any of:␤        postfix␤        statement end␤        sta…»
13:58 brokenchicken p6: class Foo { has Promise $!x; method aaa() { $!x = Promise.new; }; return; }; method bbb() { $!x.vow.break( 'ccc...' ); return; }; }; my $asdf = Foo.new(); $asdf.aaa(); $asdf.bbb();
13:58 camelia rakudo-moar cca24d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot understand $!x in this context␤at <tmp>:1␤------> 3se.new; }; return; }; method bbb() { $!x7⏏5.vow.break( 'ccc...' ); return; }; }; my␤»
13:59 brokenchicken bah. can't read on this termiana l;:D
13:59 jnthn Or write :P
13:59 cschwenz :-P
13:59 brokenchicken p6: class Foo { has Promise $!x; method aaa() { $!x = Promise.new; return; }; method bbb() { $!x.vow.break( "ccc..." ); return; }; }; my $asdf = Foo.new(); $asdf.aaa(); $asdf.bbb();
13:59 camelia rakudo-moar cca24d: ( no output )
14:00 brokenchicken p6: class Foo { has Promise $.x; method aaa() { $!x = Promise.new; return; }; method bbb() { $!x.vow.break( "ccc..." ); return; }; }; my $asdf = Foo.new(); $asdf.aaa(); $asdf.bbb(); say $asdf.x.status
14:00 camelia rakudo-moar cca24d: OUTPUT«Broken␤»
14:00 brokenchicken like that
14:00 perlpilot joined #perl6
14:00 brokenchicken p6: class Foo { has Promise $.x; method aaa() { $!x = Promise.new; return; }; method bbb() { $!x.vow.break( "ccc..." ); return; }; }; my $asdf = Foo.new(); $asdf.aaa(); $asdf.bbb(); say $asdf.x.result
14:00 camelia rakudo-moar cca24d: OUTPUT«Tried to get the result of a broken Promise␤  in block <unit> at <tmp> line 1␤␤Original exception:␤    Died with X::AdHoc+{X::Promise::Broken}␤      in block <unit> at <tmp> line 1␤␤»
14:00 jnthn cschwenz: I'd gues that you do something like my $p = Promise.new; and then pass $p, and later keep/break it
14:00 sena_kun joined #perl6
14:00 cschwenz jnthn: okay, will try that
14:00 jnthn The vow is something that a bit of code can obtain to ensure that nobody but it can keep/break the Promise, fwiw
14:02 cschwenz \o/  thanks all, it's working now! :-)
14:02 brokenchicken \o/
14:04 Geth doc: 84c32739fd | (Zoffix Znet)++ | doc/Type/Promise.pod6
14:04 Geth doc: s/result/cause/ for Promise.break
14:04 Geth doc:
14:04 Geth doc: To avoid suggesting the cause of breakage is obtainable from .result method
14:04 Geth doc: review: https://github.com/perl6/doc/commit/84c32739fd
14:10 cschwenz as %INC no longer exists in Perl6, is it even possible to unload a loaded module?  (my use case is i need to force a recompile of a module)
14:14 moritz I don't think there are provisions yet for unloading modules
14:14 cschwenz :-(
14:14 cschwenz dang
14:14 mst jnthn: did nine's work on lexical 'use' land yet?
14:14 jnthn mst: Yes
14:15 mst cschwenz: so, 'use' is now (correctly) lexical, so you can basically load the modules within a scope, and 'reload' by loading it again within a new scope, I think
14:15 cschwenz mst: okay, will try that…  :-)
14:16 mst whether this 100% works yet I've no idea though, since I've not previously encountered anybody except me who was crazy enough to want to do this and I haven't got round to trying yet
14:16 cschwenz :-D
14:16 jnthn Would have to check with nine but my first guess is that's not sufficient, since use = need + import, need being the level you're trying to invalidate for a "reload" mechanism, but all of the lexicality falls under the import part.
14:17 brokenchicken don't work for me
14:17 jnthn Somehow you'd also need to trick it into thinking it was loading a new version of the module
14:17 perlpilot Isn't there a "manual" way to compile a module?
14:17 jnthn There's probably some neat way to make that happen with a CompUnitRepo implementation.
14:18 mst well, I'm assuming if it needs recompiling it's now a different CU so far as the CUR is concerned
14:18 jnthn Yeah
14:18 mst so in *theory* this should be doable
14:19 cschwenz would something as simple as changing ":ver<0.1.1>" to ":ver<0.1.2>" trigger a recompile?
14:19 jnthn I don't know how much of my original design for this stuff survives; I kinda handed it off. But originally there was a delegation model, which I believe is retained, so if you stuck something at the head of the chain with an "invalidate now" switch it may be able to stick a fresh downstream chain in place that thinks nothing was loaded yet.
14:19 * jnthn waves hands :)
14:20 jnthn cschwenz: Yes, provided the `use` was also trying to use the new version
14:20 cale2 joined #perl6
14:20 lukaramu joined #perl6
14:21 cschwenz hmm, then the code i'm writing might be wtf-y enough to work.  :-P
14:22 brokenchicken m: -> $a, $b { ($a, $b).join.say }("a"|"b", "z"|"y")
14:22 camelia rakudo-moar cca24d: OUTPUT«any("a", "b")any("z", "y")␤»
14:22 brokenchicken how come it's not autothreading?
14:22 jnthn What are you expecting to auto-thread?
14:22 brokenchicken m: sub ($a, $b) { ($a, $b).join.say }("a"|"b", "z"|"y")
14:22 camelia rakudo-moar cca24d: OUTPUT«az␤ay␤bz␤by␤»
14:23 brokenchicken like that
14:23 jnthn Oh
14:23 jnthn Because the default type for params of a block is Mu, not Any
14:23 brokenchicken Ah. Thanks
14:23 brokenchicken TIL
14:23 jnthn Years and years ago, we had it as Any on pointy blocks too, which cause a number of surprises :)
14:24 jnthn *caused
14:24 lizmat http://stackoverflow.com/questions/41853855/are-constants-supposed-to-be-imported-automatically
14:24 jnthn `for @array-of-junctions -> $junc { }` got fun :)
14:25 jnthn lizmat: constants are our-scoped by default so end up as global symbols in the module
14:26 jnthn lizmat: Since nine's lexical import changes, those too are brought in as lexicals
14:26 jnthn So the conflict is legit.
14:26 lizmat so anything our scoped is exported ?
14:26 jnthn It's just the same as if you have a class Foo { } in the module and do a my class Foo { } when importing
14:26 jnthn Sure
14:26 brokenchicken So you don't even need an is export on subs just make them `our`?
14:27 jnthn If they're in the mainline, then yes
14:27 jnthn That's one of the...uh...interesting...consequences of the lexical module loading changes :)
14:27 brokenchicken wow
14:27 lizmat hmmm  TIL
14:27 * jnthn figured folks realized this and were OK with it :)
14:27 * perlpilot didn't realize it either
14:28 * brokenchicken neither
14:28 jnthn hehe :)
14:28 jnthn I guess (hope :)) nine did :)
14:28 cale2 m: -> $a, $b { -> $x, $y { $a + $b + $x + $y } }(1, 2)(3, 4)
14:28 camelia rakudo-moar cca24d: ( no output )
14:28 cale2 m: -> $a, $b { -> $x, $y { say $a + $b + $x + $y } }(1, 2)(3, 4)
14:28 camelia rakudo-moar cca24d: OUTPUT«10␤»
14:28 cale2 So functions are sort of curried inward like haskell
14:29 astj joined #perl6
14:32 brokenchicken hm, that constant export doesn't seem to work if you put `unit module ...` in the file?
14:32 jnthn brokenchicken: Right, because then it's not being declared in GLOBAL
14:33 brokenchicken Oh, OK. This makes it all less scary :) And also shows I'm missing something important.
14:33 brokenchicken All separate files got a "main line" which is GLOBAL and all stuff gets shoved into it?
14:34 brokenchicken We probably have docs for that donwe...
14:34 brokenchicken :)
14:34 jnthn Yes, you always start out in GLOBAL
14:40 khw joined #perl6
14:41 kurahaupo__ joined #perl6
14:45 Cabanossi joined #perl6
14:46 pyrimidine joined #perl6
14:46 kurahaupo__ joined #perl6
15:00 abraxxa joined #perl6
15:03 pyrimidine joined #perl6
15:07 astj joined #perl6
15:08 skids joined #perl6
15:12 lizmat joined #perl6
15:12 brokenchicken Adding to yesterday's discussion of regex block interpolation, you can do it like this:
15:12 brokenchicken m: say "foo" ~~ /:my $v; {$v = "foo"} $v/
15:12 camelia rakudo-moar 3a77cb: OUTPUT«「foo」␤»
15:12 brokenchicken (assuming you don't want to treat it as regex and just want it as a string)
15:13 brokenchicken oh
15:13 brokenchicken Even better!
15:13 brokenchicken m: say "foo" ~~ /"{"foo"}"/
15:13 camelia rakudo-moar 3a77cb: OUTPUT«「foo」␤»
15:13 brokenchicken m: say "fo.+meows" ~~ /"{"fo.+"}"/
15:13 camelia rakudo-moar 3a77cb: OUTPUT«「fo.+」␤»
15:13 brokenchicken awesome
15:13 brokenchicken m: say "fo.+meows" ~~ /{"fo.+"}/
15:13 camelia rakudo-moar 3a77cb: OUTPUT«「」␤»
15:13 brokenchicken m: say "fo.+meows" ~~ /<{"fo.+"}>/
15:13 camelia rakudo-moar 3a77cb: OUTPUT«「fo.+meows」␤»
15:16 Geth doc: 8c2dd6f77b | (Christopher Bottoms)++ | doc/Language/terms.pod6
15:16 Geth doc: Indicate scope of "constant" term and give example
15:16 Geth doc:
15:16 Geth doc: Just learned that "constant" is our-scoped (see http://stackoverflow.com/a/41854296/215487), so I figured this fact should be documented.
15:16 Geth doc: review: https://github.com/perl6/doc/commit/8c2dd6f77b
15:20 dataf3l joined #perl6
15:22 CIAvash joined #perl6
15:22 pyrimidine joined #perl6
15:27 cschwenz if i have "use Foo::Bar:ver<0.1.2>;" and Foo::Bar:ver<0.1.1> has previously been used (i can see both via "say flat $*REPO.repo-chain.map(*.loaded);"), how can i specify which one to use?  i want to say "Foo::Bar:ver<0.1.2>.new().baz()" but that gives "Invalid type smiley 'ver' used in type name" and if i simply say "Foo::Bar.new().baz()" perl6 complains about not finding ".baz()" — because it's looking for it in th
15:28 brokenchicken I don't think they both can be loaded into the same namespace (and so doing the :ver<> on anything but load isn't needed)
15:29 brokenchicken m: use Test; say flat $*REPO.repo-chain.map(*.loaded);
15:29 camelia rakudo-moar 3a77cb: OUTPUT«(Test)␤»
15:29 brokenchicken cool
15:29 brokenchicken m: use Test:ver<6.c>; say flat $*REPO.repo-chain.map(*.loaded);
15:29 camelia rakudo-moar 3a77cb: OUTPUT«(Test)␤»
15:30 zdenek_ joined #perl6
15:31 cschwenz p6: class Foo::Bar:ver<0.1.1> { method asdf() { say "zxcv"; }; }; class Foo::Bar:ver<0.1.2> { method baz() { say "BAZ"; }; }; use Foo::Bar:ver<0.1.1>; Foo::Bar.asdf(); say flat $*REPO.repo-chain.map(*.loaded); use Foo::Bar:ver<0.1.2>; say flat $*REPO.repo-chain.map(*.loaded);
15:31 camelia rakudo-moar 3a77cb: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Redeclaration of symbol 'Foo::Bar'␤at <tmp>:1␤------> 3 "zxcv"; }; }; class Foo::Bar:ver<0.1.2>7⏏5 { method baz() { say "BAZ"; }; }; use F␤    expecting any of:␤        generic role␤»
15:32 abraxxa joined #perl6
15:35 brokenchicken m: use TAP:ver<6.c>; say from-json((flat $*REPO.repo-chain.map(*.loaded))[0].distribution.meta);
15:35 camelia rakudo-moar 3a77cb: OUTPUT«Invalid JSON: auth   perl␤files      ␤name   CORE␤provides   CompUnit::Repository::Staging   lib/CompUnit/Repository/Staging.pm      cver    2017.01-49-g3a77cb5␤file        C57EBB9F7A3922A4DA48EE8FCF34A4DC55942942␤time   1467658119.76737␤NativeCall     lib/NativeCall.pm6
15:35 camelia ..    cver    2…»
15:35 brokenchicken Invalid JSON? heh
15:35 brokenchicken Oh, it's a proper Hash already. Ooops :)
15:36 brokenchicken m: use TAP:ver<6.c>; (flat $*REPO.repo-chain.map(*.loaded))[0].distribution.meta.<provides>.keys.sort.say;
15:36 camelia rakudo-moar 3a77cb: OUTPUT«(CompUnit::Repository::Staging NativeCall NativeCall::Compiler::GNU NativeCall::Compiler::MSVC NativeCall::Types Pod::To::Text TAP Test experimental newline)␤»
15:36 brokenchicken That's pretty cool.
15:37 brokenchicken And what's cooler is I've done that with zero docs or source digging :) MOP++
15:39 CIAvash m: say ((* + 5) R∘ (* × 2))(20) # Shouldn't this work?
15:39 camelia rakudo-moar 3a77cb: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤  in block <unit> at <tmp> line 1␤␤»
15:40 CIAvash m: my (&a, &b) = (* + 5), (* × 2); say (&a R∘ &b)(20)
15:40 camelia rakudo-moar 3a77cb: OUTPUT«50␤»
15:44 brokenchicken w00t. I successfully achieved hot reloading....
15:44 brokenchicken more or less... like V2 compared to spaceflight :)
15:45 brokenchicken With EVALFILE that just hands me the type object when it's done: https://gist.github.com/zoffixznet/4ea1ae8c8087c3620fbc21e78526d41b
15:47 brokenchicken CIAvash: I'd guess it's making a single closure that takes two args rather than two separate closures
15:47 brokenchicken m: say ((* + 5) R/ (* × 2))(20, 42)
15:47 camelia rakudo-moar 3a77cb: OUTPUT«3.36␤»
15:48 brokenchicken m: say ((* + 5) R/ (* × 2))(100, 20)
15:48 camelia rakudo-moar 3a77cb: OUTPUT«0.380952␤»
15:48 brokenchicken m: say ((* + 5) R/ (* × 2))(20, 100)
15:48 camelia rakudo-moar 3a77cb: OUTPUT«8␤»
15:48 brokenchicken yup
15:50 brokenchicken hm
15:50 brokenchicken "The function combinator infix:<∘> or infix:<o> combines two functions, so that the left function is called with the return value of the right function. The number of return values of the right function has to match the arity of the left function."
15:50 brokenchicken Can't the function always return just one value?
15:51 brokenchicken I mean, doesn't the function always return just one value?
15:52 raschipi It can return a list.
15:54 brokenchicken raschipi: which is still one value?
15:54 raschipi A slip, then.
15:55 brokenchicken raschipi: which is still one value
15:55 raschipi Which will slip into a capture.
15:56 brokenchicken m: sub foo ($x, $y, $z) {dd $x}( sub bar {slip <a b c>}() )
15:57 camelia rakudo-moar e7ea4c: OUTPUT«Too few positionals passed; expected 3 arguments but got 1␤  in sub foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
15:57 brokenchicken Nope
15:57 cschwenz is http://design.perl6.org/S11.html out-of-date/invalid?
15:58 brokenchicken cschwenz: all documents on that site are historical and aren't being kep up to date. Though AFAIK there only marginal differences between S11 and current Rakudo impl
15:58 brokenchicken like resources stuff
15:58 brokenchicken I'm not sure what else.
16:00 Cabanossi joined #perl6
16:00 cschwenz asking because, quoting from http://design.perl6.org/S11.html#Versioning :  "[…] the module is required to declare its full name so that installations can know its unique, immutable identity, such that multiple versions by different authors can coexist, all of them available to any installed version of Perl." and "However use searches for modules matching a version prefix […]"
16:01 cschwenz brokenchicken:  :-(
16:01 AlexDaniel joined #perl6
16:02 brokenchicken Well yeah, version is mandatory in META file. I think one difference between that text is what a "module" is. IIRC the version is taken from META file and used for all the modules in the distribution. And the :ver stuff in individual files is ignored.
16:03 AlexDaniel o/
16:04 cschwenz then why does perl6 go through the trouble of supporting ":ver<>" and ":auth<>" if it is only going to ignore it?  :-(
16:04 cschwenz o/ AlexDaniel
16:04 AlexDaniel and this concludes my finals… phew
16:04 pyrimidine joined #perl6
16:04 brokenchicken cschwenz: it's not ignored on loading
16:05 brokenchicken m: use Test:<6.c>
16:05 camelia rakudo-moar e7ea4c: OUTPUT«===SORRY!===␤Could not find Test:<6.c> at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-2/share/perl6/site␤    /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-2/share/perl6␤    CompUnit::Re…»
16:05 brokenchicken m: use Test:ver<6.c>
16:05 camelia rakudo-moar e7ea4c: ( no output )
16:05 brokenchicken m: use Test:ver<6.d>
16:05 camelia rakudo-moar e7ea4c: OUTPUT«===SORRY!===␤Could not find Test:ver<6.d> at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-2/share/perl6/site␤    /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-2/share/perl6␤    CompUnit:…»
16:05 brokenchicken And :auth is also supported for loading.
16:05 brokenchicken AlexDaniel: your finals? You're in school?
16:06 brokenchicken heh
16:06 brokenchicken cschwenz got too dissapointed with P6? :)
16:06 AlexDaniel brokenchicken: hmmm, aren't these called finals in university as well?
16:06 CIAvash brokenchicken: thanks
16:06 brokenchicken AlexDaniel: yeah, and univsity is called a "school" too
16:07 AlexDaniel oh… didn't know about that
16:07 brokenchicken Yeah, "highschool / middleschool / preschool" is the specific versions of schools pre-college/university
16:07 brokenchicken "secondary school / primary school" too
16:08 brokenchicken So... any word on the function composition op and that you can't return more than one value?
16:09 AlexDaniel the last one can return more than one, no?
16:09 moritz brokenchicken: it's a known limitation
16:09 * [Coke] is so happy to see doc updates after discussions in here!
16:10 telex joined #perl6
16:12 Geth doc: 80298e56cf | (Zoffix Znet)++ | doc/Type/Callable.pod6
16:12 Geth doc: Change wording for ∘ to not suggest that it's possible
16:12 Geth doc:
16:12 Geth doc: to return more than one value from a function
16:12 Geth doc: review: https://github.com/perl6/doc/commit/80298e56cf
16:12 brokenchicken m: sub (|){}.arity.say
16:12 camelia rakudo-moar 42a1ef: OUTPUT«0␤»
16:12 CIAvash m: say ((* + *) ∘ {$^a, 2})(20)
16:12 camelia rakudo-moar 42a1ef: OUTPUT«22␤»
16:12 brokenchicken hmmm
16:12 abraxxa joined #perl6
16:13 brokenchicken CIAvash: I don't get why that works...
16:14 brokenchicken m: say ((* + * + *) ∘ {1, 2, 3})()
16:14 camelia rakudo-moar 42a1ef: OUTPUT«6␤»
16:14 CIAvash brokenchicken: https://github.com/rakudo/rakudo/blob/nom/src/core/operators.pm#L718
16:14 brokenchicken m: say ((* + * + *) ∘ sub () {1, 2, 3})()
16:14 camelia rakudo-moar 42a1ef: OUTPUT«6␤»
16:15 brokenchicken Oh, so there ain't no limitation at all.
16:15 brokenchicken 'cause args get slipped
16:16 brokenchicken This is interesting:
16:17 brokenchicken m: say ({dd [$^a]} ∘ {[1, 2, 3]})()
16:17 camelia rakudo-moar 42a1ef: OUTPUT«[[1, 2, 3],]␤Nil␤»
16:17 brokenchicken m: say ({dd [$^a, $^a, $^b]} ∘ {[1, 2, 3]})()
16:17 camelia rakudo-moar 42a1ef: OUTPUT«Too many positionals passed; expected 2 arguments but got 3␤  in block <unit> at <tmp> line 1␤␤»
16:17 brokenchicken oops
16:17 brokenchicken m: say ({dd [$^a, $^, $^c]} ∘ {[1, 2, 3]})()
16:17 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Preceding context expects a term, but found infix , instead␤at <tmp>:1␤------> 3say ({dd [$^a, $^,7⏏5 $^c]} ∘ {[1, 2, 3]})()␤»
16:17 brokenchicken m: say ({dd [$^a, $^b, $^c]} ∘ {[1, 2, 3]})()
16:17 camelia rakudo-moar 42a1ef: OUTPUT«[1, 2, 3]␤Nil␤»
16:17 brokenchicken So it works with 3 args or with 1 arg
16:17 brokenchicken kinda weird
16:19 brokenchicken m: sub { dd [$^x] }(|[1, 2, 3])
16:19 camelia rakudo-moar 42a1ef: OUTPUT«Too many positionals passed; expected 1 argument but got 3␤  in sub  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
16:19 brokenchicken Oh... pffft... " (&f).count > 1 ??"
16:20 brokenchicken Right. No limitation. If .count is > 1, the return of first function is slipped in
16:20 * brokenchicken will fix the docs after lunch
16:21 CIAvash m: say ([R∘] (* + 5), (* × 2))(20)
16:21 camelia rakudo-moar 42a1ef: OUTPUT«50␤»
16:21 gregf_ whats ∘?
16:21 CIAvash function composition operator
16:23 gregf_ i see. im afraid that hasnt made much sense to me :/ #guess its time to google
16:23 gregf_ cheers anyway
16:23 CIAvash https://docs.perl6.org/type/Callable#infix:%3C%E2%88%98%3E
16:24 gregf_ hmm, borrowed from FP, haskell.. presumably :)
16:24 CIAvash f ∘ g is f(g(x))
16:25 gregf_ nice
16:27 pyrimidine joined #perl6
16:28 CQ joined #perl6
16:28 brokenchicken gregf_: it's also present in math
16:31 gregf__ joined #perl6
16:32 gregf__ brokenchick: sorry missed that :/
16:32 gregf__ *chicken
16:32 gregf__ :/ shouldve used the tab *sigh*
16:34 brokenchicken :)
16:34 pyrimidine joined #perl6
16:36 jdv79 nine: i get it.  thanks.  but for now ill just remove i::p5 so i can continue:(
16:37 jdv79 likely just proc out to p5...
16:38 cale2 Currently watching this video on types by the Racket guy: https://youtu.be/XTl7Jn_kmio
16:38 cale2 Pretty relevant to p6's system of subtypes and gradual typing I think
16:44 cibs joined #perl6
16:45 andrzejku_ joined #perl6
16:45 andrzejku_ hello
16:46 andrzejku_ is perl6 ready for commercial application?
16:47 brokenchicken andrzejku_: depends on the application.
16:47 brokenchicken andrzejku_: and on your risk tolerance
16:47 cschwenz joined #perl6
16:47 andrzejku_ ok so what a tolerance risk?
16:48 st_elmo joined #perl6
16:49 brokenchicken andrzejku_: if a disaster strikes and Perl 6 stops being developed. Can you afford to rewrite that application in another language or will your business go bankrupt
16:50 Geth doc: 503fb20b19 | (Zoffix Znet)++ | doc/Type/Callable.pod6
16:50 Geth doc: Improve docs for infix:<∘>
16:50 Geth doc:
16:50 Geth doc: - In math this is called function *composition*, so use more familiar terms
16:50 Geth doc: - Use `composed` as composed function name instead of `f-g`, which looks like a minus between two subs
16:50 Geth doc: - Fix the arity stuff: document that .count>1 routines get args slipped into them
16:50 Geth doc: - Include example for .count>1 version. Note that this version is NOT equivalent to 2.&g.&f
16:50 Geth doc:     as original example shows
16:50 Geth doc: review: https://github.com/perl6/doc/commit/503fb20b19
16:50 andrzejku_ fuck
16:51 andrzejku_ brokenchicken, :( that's sad
16:51 brokenchicken You have to put a dollar in the swear jar.
16:51 brokenchicken andrzejku_: why is it sad? The case applies to any freshly-released piece of tech.
16:52 brokenchicken Some people invested in MySpace. Others invested in Facebook. Some people lost. Some made bunch of money. Tis life.
16:53 gregf__ andrzejku_: more risk .. more money *ducks*
16:53 cale2 andrezejku_: Most open source projects eventually get "commercial support" later on. Think of FP Complete for Haskell, for example.
16:53 kalkin- joined #perl6
16:57 andrzejku_ tadzik, hey
17:13 pyrimidine joined #perl6
17:18 wamba joined #perl6
17:22 brokenchicken m: sub comment:sym<♥> {}
17:22 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot add tokens of category 'comment'␤at <tmp>:1␤------> 3sub comment:sym<♥>7⏏5 {}␤»
17:22 brokenchicken hmm... tokens and categories...
17:23 brokenchicken What kind of tokens can be added that way?
17:24 brokenchicken m: sub term:sym<♥> {}
17:24 camelia rakudo-moar 42a1ef: ( no output )
17:24 cibs joined #perl6
17:24 brokenchicken ahh
17:24 perigrin ornithopters mostly.
17:25 brokenchicken m: sub term:sym<♥> {42}; say ♥
17:25 camelia rakudo-moar 42a1ef: OUTPUT«42␤»
17:25 brokenchicken cool. Didn't know you could use `:sym` there
17:26 TimToady if so, it's an accident of implementation, and possibly not supported in the future
17:26 brokenchicken Ah
17:27 brokenchicken m: sub infix:sym<♥> {$^a + $^b}; say 42 ♥ 100
17:27 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '&infix:<♥>' is not declared␤at <tmp>:1␤------> 3sub infix:sym<♥> {$^a + $^b}; say 42 7⏏5♥ 100␤»
17:27 TimToady :sym is reserved for naming methods, not operators
17:27 TimToady we want to keep those sets of names unique
17:27 TimToady s/unique/disjoint/
17:29 brokenchicken m: sub term:boogavooga<♥> {42}; say ♥
17:29 camelia rakudo-moar 42a1ef: OUTPUT«42␤»
17:29 TimToady or we won't be able to distinguish token foo:sym<bar> from operator &foo:<bar>
17:29 brokenchicken heh, seems it takes any old trash up in there
17:29 TimToady (within the grammar where the token is has-ed
17:29 TimToady )
17:29 * TimToady should get coffee into his typing figners
17:32 perlpilot Is there a test in roast for this?  (possibly with the above explanation as a comment nearby)
17:33 TimToady so yeah, we should reserve :boogavooga for future extensions :)
17:33 TimToady perlpilot: I presume that's a rhetorical question :)
17:33 perlpilot :-)
17:34 pyrimidine joined #perl6
17:39 travis-ci joined #perl6
17:39 travis-ci Doc build errored. Zoffix Znet 'Change wording for ∘ to not suggest that it's possible
17:39 travis-ci https://travis-ci.org/perl6/doc/builds/195230161 https://github.com/perl6/doc/compare/8c2dd6f77bfe...80298e56cf07
17:39 travis-ci left #perl6
17:43 brokenchicken "The job exceeded the maximum time limit for jobs, and has been terminated."
17:43 brokenchicken noice
17:44 brokenchicken .oO( You had one job! )
17:47 brokenchicken m: sub infix_prefix_meta_operator:sym<P> {}
17:47 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot add tokens of category 'infix_prefix_meta_operator'␤at <tmp>:1␤------> 3sub infix_prefix_meta_operator:sym<P>7⏏5 {}␤»
17:47 brokenchicken Ok... but:
17:47 brokenchicken m: sub infix_prefix_meta_operator:sym<R> {}
17:47 camelia rakudo-moar 42a1ef: ( no output )
17:47 brokenchicken :)
17:47 brokenchicken (same for Z X and S)
17:49 andrzejku_ joined #perl6
17:50 brokenchicken m: sub infix_postfix_meta_operator:sym<$@> {}
17:50 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot add tokens of category 'infix_postfix_meta_operator'␤at <tmp>:1␤------> 3sub infix_postfix_meta_operator:sym<$@>7⏏5 {}␤»
17:50 brokenchicken m: sub infix_postfix_meta_operator:sym<=> {}
17:50 camelia rakudo-moar 42a1ef: ( no output )
17:50 brokenchicken heh
17:50 brokenchicken It's as if it accepts anything that is a token in Perl6/Grammar
17:52 brokenchicken well, of main language braid
17:53 brokenchicken m: sub comment:sym<#> {}
17:53 camelia rakudo-moar 42a1ef: ( no output )
17:53 brokenchicken m: sub pod_content:sym<block> {}
17:53 camelia rakudo-moar 42a1ef: ( no output )
17:54 brokenchicken .tell samcv too lazy to make an Issue, but noticed this chunk has messed up highlighting: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L839-L857
17:54 yoleaux brokenchicken: I'll pass your message to samcv.
17:55 pmurias joined #perl6
17:55 astj joined #perl6
17:57 brokenchicken m: sub terminator:sym<;> {}; sub statement_control:sym<if> {}; sub statement_prefix:sym<BEGIN> {}; sub statement_mod_loop:sym<given> {}
17:57 camelia rakudo-moar 42a1ef: ( no output )
17:59 brokenchicken Oh, lol. And this is why: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L4628-L4630
18:02 brokenchicken m: sub comment:sym<#> { say "w00t"}; comment:sym<#>
18:02 camelia rakudo-moar 42a1ef: OUTPUT«w00t␤»
18:03 brokenchicken heh, and it actually works as a normal sub ^_^
18:07 z8 joined #perl6
18:08 TimToady m: sub foo:bar:baz<!@#$> { say "t00w" }; foo:bar:baz<!@#$>
18:08 camelia rakudo-moar 42a1ef: OUTPUT«t00w␤»
18:08 TimToady it's just an extended name, nothing special
18:09 brokenchicken You cheated! :)
18:09 brokenchicken m: sub foo:baz<!@#$> { say "t00w" }; foo:baz<!@#$>
18:09 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot add tokens of category 'foo'␤at <tmp>:1␤------> 3sub foo:baz<!@#$>7⏏5 { say "t00w" }; foo:baz<!@#$>␤»
18:09 brokenchicken Should this then not die and let the user use extended name?
18:10 brokenchicken It throws here when failing to find infix/prefix/whatever: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L4663
18:10 TimToady I would restrict only the foo:<!@#$> form there
18:10 TimToady where key is ''
18:11 brokenchicken OK
18:11 TimToady we might possibly reserve :sym at that point as well
18:12 TimToady and the whole mechanism is not something we want to encourage abuse of, until we know what other keys we might want to reserve in the future
18:12 brokenchicken .oO( :monkey-guts<..> )
18:12 TimToady the mechanism is just a generalization of a way to sneak non-ident chars into a name, and we don't really know where we might want to use that someday
18:14 lukiramu joined #perl6
18:14 TimToady here:be<dragons!>
18:14 brokenchicken m: dd [:<foo>]
18:14 camelia rakudo-moar 42a1ef: OUTPUT«["foo"]␤»
18:14 brokenchicken no '' => 'foo' ?
18:14 TimToady m: say (:<foo>)
18:14 camelia rakudo-moar 42a1ef: OUTPUT«foo␤»
18:15 TimToady hmm
18:15 TimToady m: say (:<foo>).WHAT
18:15 camelia rakudo-moar 42a1ef: OUTPUT«(Str)␤»
18:15 TimToady oopsie
18:15 brokenchicken heh
18:15 TimToady m: say (:('foo')).WHAT
18:15 camelia rakudo-moar 42a1ef: OUTPUT«(Signature)␤»
18:15 TimToady heh
18:15 domidumont joined #perl6
18:15 TimToady m: say (:['foo']).WHAT
18:16 camelia rakudo-moar 42a1ef: OUTPUT«(Array)␤»
18:16 TimToady I guess the bare one are somewhat reserved too
18:16 TimToady :{} is for object arrays, for instance
18:16 TimToady m: say (:{'foo'})  # should fail
18:16 camelia rakudo-moar 42a1ef: OUTPUT«-> ;; $_? is raw { #`(Block|43378048) ... }␤»
18:17 TimToady or that :)
18:17 TimToady m: say (:{:hi})  # should fail
18:17 camelia rakudo-moar 42a1ef: OUTPUT«{hi => True}␤»
18:17 TimToady *n't
18:17 TimToady m: say (:{ 1 => 2})
18:17 camelia rakudo-moar 42a1ef: OUTPUT«{1 => 2}␤»
18:17 TimToady m: say (:{ 1 => 2}).keys[0].WHAT
18:17 camelia rakudo-moar 42a1ef: OUTPUT«(Int)␤»
18:19 TimToady m: say :[42] eqv [42]
18:19 camelia rakudo-moar 42a1ef: OUTPUT«True␤»
18:19 TimToady not so sure we shouldn't reserve the colon there...
18:20 TimToady and on :<>
18:20 espadrine_ joined #perl6
18:20 brokenchicken Like make it die saying it's reserved?
18:21 TimToady probably, unless there's some wrinkle I don't remember that we rely on
18:21 TimToady we're definitely putting :() and :{} to special use right now
18:22 TimToady so maybe :[1,2,3] would figure out it's Array[Int] or something someday
18:28 knut_ joined #perl6
18:30 Cabanossi joined #perl6
18:34 pyrimidine joined #perl6
18:36 labster joined #perl6
18:37 agentzh joined #perl6
18:42 labster joined #perl6
18:52 brokenchicken ugh.. PaleMoon--  Worked OK -> New version -> Got a few bugs -> New version -> Doesn't even start now :(
18:52 brokenchicken Need a better browser :(
18:53 brokenchicken oh, it needs a newer glibc
18:53 brokenchicken Need a better OS :}
18:59 * TimToady just needs a better
18:59 leah2 joined #perl6
19:01 * TimToady actually already has lots of betters, except when he doesn't
19:01 nicq20 joined #perl6
19:03 brokenchicken :)
19:11 rmusial joined #perl6
19:13 nicq20 In the Actions.nqp file of Rakudo, what is '$*W'?
19:13 nicq20 https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L7258
19:14 brokenchicken nicq20: Perl6/World.nqp
19:14 pyrimidine joined #perl6
19:14 brokenchicken https://github.com/rakudo/rakudo/blob/nom/src/Perl6/World.nqp
19:15 jnthn In summary: grammar = syntax, actions = semantics, world = declarations
19:17 nicq20 So, World is the environment that the code runs in?
19:17 moritz yes
19:17 moritz lexpads, variables, all that good stuff
19:18 nicq20 Only available at compile?
19:20 moritz correct
19:20 moritz there are other ways to introspect lexpads etc. at run time
19:23 nicq20 Funny the kind of stuff you find out when fiddling with slangs.
19:24 domidumont joined #perl6
19:24 nicq20 *grumble* still can't get to work though *grumble*
19:30 Cabanossi joined #perl6
19:32 z8 joined #perl6
19:33 kyan joined #perl6
19:33 Cabanossi joined #perl6
19:33 bjz joined #perl6
19:34 pyrimidine joined #perl6
19:35 Cabanossi joined #perl6
19:38 girafe joined #perl6
19:38 samcv m: say "\c[space]"
19:38 camelia rakudo-moar 42a1ef: OUTPUT« ␤»
19:38 yoleaux 17:55Z <brokenchicken> samcv: too lazy to make an Issue, but noticed this chunk has messed up highlighting: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L839-L857
19:38 samcv yay case insensitivity!!
19:40 nicq20 When making actions for a slang, what would be the best way to return a number? I'm just trying to get the bare word `two` to be seen as Int.new(2).
19:40 samcv m: "\c[united states, couple with heart: woman man]".say
19:40 camelia rakudo-moar 42a1ef: OUTPUT«????????????‍❤️‍????␤»
19:40 diakopter bahahaha
19:40 brokenchicken nicq20: you don't need a slang for that tho, do you?
19:41 nicq20 Probably not. But where's the fun in that? :)
19:41 brokenchicken heh
19:41 brokenchicken buggable: eco roman
19:41 buggable brokenchicken, Slang::Roman 'A slang to allow Roman numerals': https://github.com/drforr/perl6-slang-roman
19:41 brokenchicken nicq20: maybe there's a hint in htat module ^
19:43 brokenchicken m: "\c[family: man man girl girl, woman shrugging: medium-light skin tone]".say
19:43 camelia rakudo-moar 42a1ef: OUTPUT«????‍????‍????‍????????????‍♀️␤»
19:43 brokenchicken wonder when they'll add skin tones to family emojis :)
19:43 z8 joined #perl6
19:44 moritz let's rename Unicode to EmjoiFactory
19:45 brokenchicken I think we need a family extension: mix sexes, skin tones, number of parents, and number of kids.
19:46 moritz or we could start to use alphabets again to express words and feelings :-)
19:46 bwisti joined #perl6
19:46 brokenchicken hahaha :D
19:46 nicq20 brokenchicken: Been looking at that for a bit now. Not quite the same as it binds a function to it (I just want a number). Seems to keep giving a X::Multi::NoMatch exception. :/
19:47 nicq20 I replaced the QAST::Op with a QAST::IVal with no luck.
19:48 brokenchicken NoMath doing what?
19:48 andrzejku_ hey guys
19:48 andrzejku_ x)
19:49 brokenchicken Chezch!
19:49 brokenchicken Cześć even
19:51 andrzejku_ I got a dream to create Perl6 game engine :D
19:53 nicq20 andrzejku_: Sounds fun! :)
19:53 brokenchicken You should make dice poker in Perl 6.
19:53 andrzejku_ :D
19:53 andrzejku_ it is
19:59 [Coke] m: "\c[united states, couple with heart: woman man]".chars.say
19:59 camelia rakudo-moar 42a1ef: OUTPUT«2␤»
20:05 rmusial joined #perl6
20:06 Geth doc: b806f3ede8 | (Samantha McVey)++ | doc/Language/unicode.pod6
20:06 Geth doc: Add initial Unicode page
20:06 Geth doc: review: https://github.com/perl6/doc/commit/b806f3ede8
20:06 agentzh joined #perl6
20:07 samcv what do people think of this so far. can i say which compiliers have different levels of support?
20:11 brokenchicken "Additionally, in Rakudo blead and in the next monthly release of Perl 6 these names are all now case-insensitive:" <--- this is not exactly accurate. Perl 6 releases are 6.c, 6.d, 6.etc language release. There aren't any monthly Perl 6 releases. It's Rakudo compiler that gets released (and for regular users they aren't even monthly, as they get them from Rakudo Star). But IMO we shouldn't mention such minute
20:11 brokenchicken implementation details in the docs, as they are for Perl 6 language and not for just a particular implementation. Once we have infrastructure, we'll be marking stuff that got support in 6.d, 6.e, etc, but for now we kinda just document what is the latest and greatest.
20:12 brokenchicken "can i say which compiliers have". Well, we have only one right now that's still actively developed, isn't it?
20:13 st_elmo joined #perl6
20:14 brokenchicken And would be nice for docs to mention the comma business in char names. If I go to ZWS catalogue and copy-paste a name with a comma in it, it ain't gonna work
20:14 brokenchicken m: "\c[family: woman, woman, boy, boy]".say
20:14 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [family: woman]␤at <tmp>:1␤------> 3"\c[family: woman7⏏5, woman, boy, boy]".say␤»
20:14 FROGGS joined #perl6
20:14 TimToady samcv: I don't understand the phrase "for breaking up words"
20:14 brokenchicken kinda weird to have such a special case, TBH
20:15 brokenchicken c: "\c[BELL,PENGUIN]".say
20:15 samcv that is a typo
20:15 brokenchicken mc: "\c[BELL,PENGUIN]".say
20:15 committable6 brokenchicken, ¦«2015.12»: ␇????
20:15 TimToady we should perhaps move our delimiter to something other than comma, if the uc is going to claim comma
20:15 pyrimidine joined #perl6
20:15 samcv my computer is lagging to hell. gonna reboot
20:15 samcv they don't
20:15 samcv comma delimiter is good
20:15 samcv brb
20:15 perlpilot .oO( Everyone wants the colon )
20:16 andrzejku_ joined #perl6
20:16 perlpilot (well, semi-colon would be a better delimiter IMHO)
20:16 TimToady mine too, if we want to allow commas within a character name
20:17 TimToady and it's non-Englishy to make : bind tigher than ,
20:17 TimToady *tighter
20:18 brokenchicken right, 'cause all of the bazillion *emoji* website list them with commas, like "Family: Man, Man, Boy, Boy"
20:18 TimToady goodness, how'd lunch time sneak up so fast?
20:19 moritz jnthn++ PR#1004
20:19 * brokenchicken waits for samcv to come back and say why comma's good
20:20 Tonik joined #perl6
20:21 samcv commas are fine for delimiting the names i think
20:22 samcv and there's other standards i can't remember that use commas
20:22 samcv idk tho do people really think semi colon would be good there?
20:22 brokenchicken samcv: what about names that have commas in them? Won't that confuse users when they try to use the name with commas and perl tells them it's an invalid char?
20:23 brokenchicken Like a bunch of ZWS stuff. Are there any standard names for them?
20:23 samcv yeah the ones in those unicode files
20:23 samcv but I think it's fine just to leave out the commas
20:23 samcv they don't have any syntactic meaning
20:23 newnew joined #perl6
20:24 samcv i mean the emoji sequence names don't fit the super tight conforming ascii uppercase only of the UCD type names and sequences
20:24 pmurias joined #perl6
20:25 brokenchicken m: (^0x110000).grep(*.uniname.contains(",")).elems.say
20:25 camelia rakudo-moar 42a1ef: OUTPUT«0␤»
20:25 samcv there are none
20:25 brokenchicken fair nuf
20:25 samcv only A-Z, '-' and ' '
20:27 pecastro joined #perl6
20:27 TimToady but if people *want* to write Family: Man, Man, Boy, Boy maybe we should let 'em
20:27 Geth doc: 9578de5e0a | (Samantha McVey)++ | doc/Language/unicode.pod6
20:27 Geth doc: Unicode file, add some links, fit into less columns
20:27 Geth doc: review: https://github.com/perl6/doc/commit/9578de5e0a
20:27 brokenchicken +1
20:28 samcv i mean but the spec already uses commas though? idk how we can get around that
20:28 samcv what if they add a name that has a semocolon in it
20:28 samcv lol.
20:28 brokenchicken :)
20:28 brokenchicken I dunno... make it a 6.d material?
20:29 samcv i need to fix
20:29 samcv m: "\c[keycap: #]"
20:29 camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [keycap:]␤at <tmp>:1␤------> 3"\c[keycap:7⏏5 #]"␤»
20:29 TimToady well, in the short term, could split on semi if there, otherwise on comma
20:29 samcv since for some reason we allow comments in there
20:29 brokenchicken I never suspected \c[] can take multiple chars at the same time
20:29 brokenchicken m: "\x[FF62,FF63]".say6
20:29 camelia rakudo-moar 42a1ef: OUTPUT«No such method 'say6' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
20:29 brokenchicken m: "\x[FF62,FF63]".say
20:29 camelia rakudo-moar 42a1ef: OUTPUT«「」␤»
20:30 brokenchicken wow
20:30 brokenchicken OK :)
20:30 TimToady m: say "\c[CR,LF]".ords
20:30 camelia rakudo-moar 42a1ef: OUTPUT«(13 10)␤»
20:30 samcv the emoji names are not intended to be compatible across platforms that may restrict the symbols on it
20:31 samcv but i mean we should allow escaping if we don't already
20:31 brokenchicken If it's just ZWS that got commas in 'em, I think as a short-term it'd be OK to just add a commas check into unknown char exception and say "did you mean a char with commas, toss 'em" or something like that
20:31 samcv yeah
20:32 brokenchicken m: try "\c[Family: Man, Man, Boy, Boy]".say; say $!.^name
20:32 camelia rakudo-moar aecbb3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [Family: Man]␤at <tmp>:1␤------> 3try "\c[Family: Man7⏏5, Man, Boy, Boy]".say; say $!.^name␤»
20:32 cschwenz joined #perl6
20:32 brokenchicken m: try q|"\c[Family: Man, Man, Boy, Boy]".say|.EVAL; say $!.^name
20:32 camelia rakudo-moar aecbb3: OUTPUT«X::Comp::AdHoc␤»
20:32 brokenchicken mkay
20:33 samcv i gotta take a nap. i'll bbl :D
20:36 cschwenz so https://github.com/search?p=1&amp;q=org%3Aperl6+IO%3A%3ASocket%3A%3AAsync&amp;type=Code&amp;utf8=✓ isn't finding the source code for IO::Socket::Async.  where will i find said source?
20:37 brokenchicken s: IO::Socket::Async, 'new', \()
20:37 cschwenz the backstory on this is i'm using HTTP::Server::Tiny and i'm getting an "address already in use" error.  i _think_ i've tracked this down to IO::Socket::Async, but i could be wrong on that.
20:37 SourceBaby brokenchicken, Sauce is at https://github.com/rakudo/rakudo/blob/aecbb3e/src/core/IO/Socket/Async.pm#L8
20:37 brokenchicken cschwenz: ^
20:37 cschwenz thanks! :-)
20:37 brokenchicken cschwenz: and all core types are in that repo in src/core/ directory and most have separate files named after the type name
20:38 cschwenz cool :-) i was looking in the wrong repo, d'oh!
20:38 brokenchicken m: IO::Socket::Async.^lookup('new').file.say
20:38 camelia rakudo-moar aecbb3: OUTPUT«SETTING::src/core/IO/Socket/Async.pm␤»
20:38 brokenchicken and that too. Hooray introspection \o/
20:39 bjz_ joined #perl6
20:40 pmurias joined #perl6
20:41 cschwenz s: nqp, 'asynclisten', \()
20:41 SourceBaby cschwenz, Something's wrong: â�¤ERR: [31m===[0mSORRY![31m===[0m Error while compiling -eâ�¤Undeclared routine:â�¤    nqp used at line 6â�¤â�¤
20:41 cschwenz s: nqp::asynclisten
20:41 SourceBaby cschwenz, Something's wrong: â�¤ERR: [31m===[0mSORRY![31m===[0m Error while compiling -eâ�¤Could not find nqp::asynclisten, did you forget 'use nqp;' ?â�¤at -e:6â�¤------> [32m    put sourcery( nqp::asynclisten [33mâ��[31m)[1];[0mâ�¤    expecting any of:â�¤        argument listâ�¤
20:42 brokenchicken heh
20:42 brokenchicken No one can master that bot :)
20:42 brokenchicken cschwenz: the nqp:: stuff is in repo https://github.com/perl6/nqp/
20:43 cschwenz thanks :-)
20:43 brokenchicken cschwenz: some (but not all) ops are documented in https://github.com/perl6/nqp/blob/master/docs/ops.markdown  nqp::p6* ops are documented in https://github.com/rakudo/rakudo/blob/nom/docs/ops.markdown
20:44 brokenchicken cschwenz: and the final piece of the puzzle—the MoarVM—lives in https://github.com/MoarVM/MoarVM/
20:44 agentzh joined #perl6
20:45 cschwenz awesome, thanks for the pointers :-)
20:49 pmurias brokenchicken: re rewrite, I'm sure there are plenty of businesses using no longer maintained technology
20:52 pyrimidine joined #perl6
21:06 agentzh Ran into a very strange rakudo variable declaration error: https://gist.github.com/agentzh/1e272ca1415cefe30c19f4c7d76be9bf
21:06 agentzh cannot reproduce this error when put the offending p6 code in isolation.
21:07 agentzh any hints or pointers in debugging this?
21:07 agentzh it's strange that rakudo complaints that @param-names is not declared while it was just declared with "my" only 2 lines above.
21:08 agentzh could anyone knowledgeable help me out here?
21:08 moritz agentzh: this typically happens if something confuses the parser, so that the "my" doesn't look like a declaration
21:08 moritz agentzh: like a missing closing quote
21:08 agentzh moritz: thanks for the hint!
21:09 agentzh looks like some interpolation pitfalls.
21:09 moritz agentzh: or anything that could gobbles up the my
21:09 brokenchicken agentzh, try backslashing that ( in the string
21:09 agentzh moritz: just found it! thanks!
21:09 brokenchicken What was it?
21:09 agentzh brokenchicken: yeah, i just figured it out myself too.
21:10 agentzh the ( needs to be escaped.
21:10 agentzh just you said.
21:10 agentzh *just like what you said
21:10 brokenchicken weird, I thought those only worked for &-sigiled vars
21:10 moritz nope
21:10 agentzh brokenchicken: yeah, that's a surprise.
21:10 moritz anything that starts with a sigil and ends with a postcircumfix
21:11 agentzh moritz: i hope the interpolation rule is more strict :)
21:11 brokenchicken agentzh, another tip for debugging very strange bugs: run with --optimize=off flag to turn off optimer
21:11 moritz m: my $x = 42; say qq[<a href="foo">$x</a>];
21:11 camelia rakudo-moar 49e2d4: OUTPUT«Type Int does not support associative indexing.␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
21:11 agentzh brokenchicken: awesome! i'll put it on my note.
21:11 agentzh thanks!
21:17 nicq20 left #perl6
21:21 KotH joined #perl6
21:30 cschwenz joined #perl6
21:30 Cabanossi joined #perl6
21:40 jast joined #perl6
21:43 agentzh joined #perl6
21:43 kyan joined #perl6
21:44 * [Coke] wonders if any of the #perl 6 regulars work in the financial IT sector.
21:44 [Coke] (accounting, taxes, that sort of thing)
21:54 pyrimidine joined #perl6
21:57 astj joined #perl6
22:00 Cabanossi joined #perl6
22:03 TEttinger joined #perl6
22:08 timotimo there has been a rakudo build half-finished for one and a quarter hours already
22:08 sivoais joined #perl6
22:13 Geth doc: 02c5fe89f2 | (Timo Paulssen)++ | doc/Language/unicode.pod6
22:13 Geth doc: make unicode.pod6 parse by adding =end pod
22:13 Geth doc: review: https://github.com/perl6/doc/commit/02c5fe89f2
22:16 brokenchicken rakudo build where?
22:17 timotimo travis ci
22:17 timotimo https://travis-ci.org/rakudo/rakudo/builds/195227069
22:17 buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (3), or GitHub connectivity (0).
22:17 timotimo it's just sitting there, not starting any of the sub-jobs that remain to be done
22:17 agentzh joined #perl6
22:18 cdg joined #perl6
22:18 agentzh brokenchicken: with --optimize=off, rakudo first-time compilation time for one of my 160 LOC .pm6 file drops from 12+ sec to 6 sec.
22:19 agentzh that's a big improvement to my dev time :)
22:19 brokenchicken heh
22:19 agentzh brokenchicken: i hope the compilation time can be reduced further :)
22:20 brokenchicken agentzh: what Rakudo version are you on?
22:20 agentzh 2017.01
22:20 brokenchicken okay. Then you have all the recent compilation speed improvements :)
22:20 agentzh This is Rakudo version 2017.01 built on MoarVM version 2017.01
22:21 agentzh okay
22:21 agentzh thanks for the info.
22:21 brokenchicken timotimo: weird. Maybe just new travi's "trusty beta"? The other day I pushed a commit in the evening and travis bot said it passed THE NEXT DAY when I was at work
22:22 timotimo yeah, very trusty indeed.
22:22 timotimo agentzh: wow. the optimizer isn't supposed to be that slow
22:23 timotimo well, if it constant-folds something for you that is cpu-intensive to calculate, that'll take a bunch of time, of course
22:23 timotimo but that same time isn't spent during runtime
22:23 agentzh with optimization turned off, my whole 4.3K LOC p6 project compiles in 24.687s with .precomp/ removed.
22:24 agentzh this is a pretty fast machine (macbook pro 15 inch mid-2015 with the configs maxed out).
22:24 brokenchicken And with it turned on what's the time?
22:25 agentzh brokenchicken: running now :)
22:26 brokenchicken m: multi sub infix:<==> (Int $a, Str $b) { $a == $b } # weeeee, infinite compilation time \o/
22:26 agentzh brokenchicken: 0m25.040s w/o --optimize=off
22:26 agentzh so it seems my pervious timing might be something else.
22:26 camelia rakudo-moar 0ad05c: OUTPUT«(timeout)»
22:27 agentzh seems like compilation time is a major issue when developing relatively large p6 projects.
22:28 brokenchicken Yeah, if a lot of modules need to be recompiled after a change.
22:28 agentzh my p6 project will eventually be more than 10K LOC i think.
22:28 cdg joined #perl6
22:29 agentzh anyway, i'll keep --optimize=off to avoid any potential surprises during my own development.
22:30 agentzh is there a way to utilize multiple cores for rakduo to compile multiple modules?
22:30 agentzh i've got 8 logical cores here.
22:31 pecastro joined #perl6
22:32 brokenchicken Don't think so
22:32 agentzh ok
22:32 sena_kun joined #perl6
22:33 gfldex technically yes, but it's still very unstable
22:33 brokenchicken agentzh: it's worth noting that a few months back, I was running coverage reported on Rakudo compiled without the optimizer and spectests would occasionally flap, even though on optimized version they didn't. So, if you start getting weird errors, try with optimizer turned on :)
22:33 brokenchicken Oh right, cause you can manually tell it what to compile right?
22:34 brokenchicken And you could have some sort of build script launcher running in multiple threads precompiling what it can in parallel, and then shooting off the main script that would find everything precompiled already
22:34 gfldex you create a .p6 file per module and a Makefile with the rules
22:34 gfldex then you run make -j6
22:34 brokenchicken intersting
22:34 brokenchicken Wonder if there's anything that can be cooked up with the CUR api
22:35 agentzh brokenchicken: that makes sense, the default settings should be mostly exercised one.
22:35 agentzh gfldex: i still need to figure out the topological order right?
22:35 gfldex yes
22:35 agentzh gfldex: any tool that i can use directly for that?
22:35 gfldex but a Makefile can do that for you
22:36 gfldex and it wouldn't be hard to find the use statements in modules and generate the Makefile
22:36 agentzh gfldex: *nod*
22:36 agentzh will try.
22:36 gfldex agentzh: there will be
22:37 agentzh will write a simple p5 script to generate the makefile snippet.
22:37 agentzh since i have so many .pm6 files
22:37 brokenchicken there's RAKUDO_MODULE_DEBUG env var you can turn on and it'll probably give you enough sequential info to figure out some sort of topoligical info?
22:37 agentzh manual writing the makefile would be too tedious and error prone :)
22:37 gfldex that's one of the things I want to do with meta6-bin
22:38 agentzh brokenchicken: interesting. will check it out.
22:38 agentzh gfldex: nice
22:39 agentzh brokenchicken: that's very useful :)
22:39 agentzh thanks!
22:39 agentzh gfldex: thanks for the makefile tip!
22:40 sena_kun there are quite a lot of dd usage occurences in docs now, about 150 sentences(+/-20). I assume that almost all of them(except for debugging-related page) should be replaced with something else?
22:41 * brokenchicken shrugs
22:42 gfldex rechnically yes but in some cases that would be quite tricky
22:42 gfldex and it would reduce readability in many cases
22:43 brokenchicken If it's so persistent at staying, perhaps it's worth keeping it and just go with the flow, until we actually encounter problems due to its presence. It *is* documented as rakudo only debug thing.
22:43 gfldex i would also expect quite a few modules in the ecosystem to sport dd
22:43 * brokenchicken wonders what pmichaud would think of it
22:43 sena_kun yes, it can be. just as a thought for yet another "in this century"-issue.
22:44 gfldex the only issue I have with dd is that I use vim :->
22:45 brokenchicken .oO( spec `dd` as a generic debuging tool, with no promises on actual content it outputs... )
22:46 sena_kun I don't use vim nor dd, just noticed. anyway, it's better to keep working on pod files instead...
22:49 zakharyas joined #perl6
22:49 gfldex we should either spec it or introduce use Rakudo::dd
22:58 gfldex m: sub f($a,$b,$c){ say $a,$b,$c }; sub debug(|c){ say 'debug'; |c }; f |debug 1,2,3;
22:58 camelia rakudo-moar 0ad05c: OUTPUT«debug␤123␤»
22:59 gfldex m: say dd 1,2,3;
22:59 camelia rakudo-moar 0ad05c: OUTPUT«1␤2␤3␤Nil␤»
22:59 gfldex if dd would return the capture it takes, one could "inline" dd
23:00 Cabanossi joined #perl6
23:01 agentzh gfldex: sorry, one quick question: for my makefile pre-comp purposes, perl6 -c should be sufficient, right?
23:01 agentzh the -c option
23:01 gfldex i don't know
23:01 agentzh gfldex: okay, i'll try it out.
23:01 gfldex find lib/.precomp -ls should tell you
23:04 matiaslina joined #perl6
23:08 telex joined #perl6
23:09 eyck joined #perl6
23:09 geekosaur joined #perl6
23:11 pmurias joined #perl6
23:12 cdg_ joined #perl6
23:16 rmusial joined #perl6
23:18 Khisanth joined #perl6
23:18 cdg joined #perl6
23:18 agentzh it's a bit tricky to map the .pm6 file to the precomp files.
23:19 agentzh seems like rakudo still tries to re-compile the dep modules even though they were just run by `perl -c`.
23:19 agentzh *perl6 -c
23:19 [Coke] (dd) in -general-, don't use it. in practice, doesn't matter until we have a competitor to rakudo that doesn't support it
23:20 [Coke] (given that it's documented as rakudo only right now)
23:21 sena_kun [Coke], I didn't plan to use it, just was a bit concerned about existing usage examples. Anyway, thanks for clarification.
23:28 cdg_ joined #perl6
23:30 agentzh is there a way to force rakduo to avoid recompiling a comp unit's deps?
23:31 agentzh seems like the cached entries are based on random-like keys or somethign?
23:31 agentzh are the cache keys are solely based on file contents' checksum?
23:32 agentzh if rakudo always tries to recompile its dep modules then the make -jN parallelism will not work.
23:32 agentzh and that's also my current benchmark result.
23:33 agentzh make -j8 makes no difference in compilation time.
23:33 cdg joined #perl6
23:33 agentzh using either perl6 -c /path/to/file.pm6 or just perl6 /path/to/file.pm6
23:33 agentzh any hint here?
23:35 gfldex agentzh: you may have stepped on a bug
23:35 perlawhirl joined #perl6
23:36 gfldex we use caching when building the docs
23:36 gfldex and that works quite nicely
23:37 gfldex agentzh: see https://github.com/perl6/perl6-pod-to-bigpage/blob/master/bin/pod2onepage#L64
23:37 agentzh gfldex: i see the "Outdated precompiled" thing in the RAKUDO_MODULE_DEBUG=1 output.
23:37 agentzh is that the culprit?
23:38 gfldex i don't know, you may want to ask nine about precomp
23:39 agentzh gfldex: okay, thanks.
23:39 agentzh here's the output: https://gist.github.com/agentzh/cfc8223752f153031687beda9288fbed
23:40 agentzh oh, seems like RAKUDO_MODULE_DEBUG=1 makes rakudo/moarvm enter an infinite loop.
23:42 perlawhi1l joined #perl6
23:42 agentzh strace shows that moarvm loops at the syscall write(2, "   1  5611 RMD: Performing impor"..., 60) = -1 EAGAIN (Resource temporarily unavailable)
23:45 agentzh gfldex: thanks for the pointer, seems like i'll have to use the CompUnit::PrecompilationRepository API.
23:45 agentzh alas.
23:50 agentzh how to enable moarvm's debuginfo?
23:50 skids joined #perl6
23:51 agentzh while building rakduo with perl Configure.pl --gen-moar --gen-nqp --backends=moar ?
23:51 agentzh the default build does not enable debug symbols in the resulting moarvm it seems.
23:52 brokenchicken Right, it doesn't
23:53 agentzh is there an option?
23:53 brokenchicken $(cd nqp/MoarVM; perl Configure.pl --debug=3 --prefix=../../install; make -j8; make install;)
23:53 brokenchicken And that should do it (no need to recompile rakudo)
23:54 kyan joined #perl6
23:54 agentzh brokenchicken: great. thanks! i'll try it out
23:54 brokenchicken Also, I forget why I think --debug=3 and not some other value, it may be just a flag
23:54 brokenchicken cd nqp/MoarVM; perl Configure.pl --help # lists a bunch of stuff

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

Perl 6 | Reference Documentation | Rakudo