Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-06-19

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:03 laouji joined #perl6
00:03 b2gills jnthn: the biggest problem I see with your batch change to t/harness is that subroutines are always globally scoped, so it doesn't make a lot of sense to put it inside of an if block.
00:26 kst] joined #perl6
00:27 akakcolin joined #perl6
00:27 colomon Any chance of getting a 32-bit Rakudo running on my Windows XP VM?
00:28 * colomon grabs the R* MSI from March
00:30 colomon hmmm, seems to work
00:40 laouji joined #perl6
00:45 Akagi201 joined #perl6
00:45 laouji joined #perl6
00:47 japhb b2gills: *named* subs are package-scoped in Perl 5, true, but *anon* subs aren't.  So just change 'sub batch {' to 'my $batch = sub {' if that matters.  The thing that makes me chuckle is that it's a functional solution in a way Perl 5 people don't often do.  They'd more likely process each batch as it was created, rather than make an array of batches and map over it.
00:51 japhb Actually, I wouldn't be surprised if recent Perl 5 has my-scoped subs, but I stopped paying attention when 1) I spent a whole bunch of accumulated favors at a previous job just getting them to switch to 5.10 so I wouldn't have to go insane with some RHEL default, and 2) Perl 6 came along.
00:51 japhb *2) A working Perl 6 compiler came along.
00:52 b2gills Perl5 does have lexical subs, if you precede them with `my` added in 5.20
00:52 b2gills http://perldoc.perl.org/perl5200delta.html#Lexical-Subroutines
00:53 b2gills oops it was added in 5.18: http://perldoc.perl.org/perl5180delta.html#Lexical-Subroutines
00:58 colomon joined #perl6
01:00 b2gills I was actually thinking of adding `sub rotor (\@$@) {...}`to bring something like a P6ism to the harness since it is likely to be edited by someone who is more comfortable in Perl6 than Perl5. The biggest problem is that Perl5 doesn't have pair objects, so you would always have to call it as `rotor @a, 50 => 0, 25 => 0`.
01:01 colomon my $tess_stuff = "";
01:01 colomon Variable '$tess_stuff' is not declared
01:01 colomon hmm?
01:02 colomon how is it that I’ve … oh, hmmm
01:06 colomon dang it, p5’s heredoc << is just a texas open quote in p6, isn’t it?
01:11 colomon qq:to
01:11 yeahnoob joined #perl6
01:16 akakcolin joined #perl6
01:24 colomon huh.  I’m invoking perl6 in a windows batch file, and it seems to kill the batch file after completing the p6 script.  :\
01:35 dayangkun joined #perl6
01:45 aborazmeh joined #perl6
01:45 aborazmeh joined #perl6
01:46 tony-o what's your bat file look like
01:47 ugexe probably double clicking a batch file
01:48 tony-o @ECHO on ::for life
01:51 colomon set MV_MODELER=nmtlib
01:51 colomon perl6 build/make_utils_projects.pl %MV_MODELER -on -jt -express +sw
01:51 colomon nmake /fsource_makefile
01:51 colomon etc
01:51 colomon it never gets to the nmake
01:52 tony-o sounds like a problem with the bat file
01:52 colomon If I comment out the line that starts perl6, the file works fine
01:53 tony-o that means that it's definitely a problem with the bat file
01:53 colomon ?
01:53 TimToady joined #perl6
01:54 tony-o what's the output of that perl6 command by itself
01:55 tony-o did you try renaming the bat file?
01:56 colomon wait, you mean my bat file, or the perl6 bat file?
01:57 tony-o the perl6 bat file
01:57 colomon ah
01:57 tony-o if you're starting a perl6 bat file then you need to use 'call' in the bat
01:58 colomon tony-o++
01:58 colomon that did it.  brill!
02:02 * colomon suspects he knew that rule once, but has long since switched away from using Windows.
02:03 BenGoldberg joined #perl6
02:06 b2gills I know! I knew that rule once ( back in the 90's )
02:08 grondilu a new compilation target to look at?  http://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web
02:18 noganex_ joined #perl6
02:30 steve_mc joined #perl6
02:32 zostay joined #perl6
02:38 rmgk_ joined #perl6
02:40 zostay joined #perl6
02:50 zostay joined #perl6
02:55 zostay joined #perl6
02:58 telex joined #perl6
03:11 CQ_ joined #perl6
03:28 austin joined #perl6
03:29 cheshire joined #perl6
03:29 cheshire joined #perl6
03:30 cheshire left #perl6
03:34 kaare_ joined #perl6
03:45 davido__ joined #perl6
03:53 Cheshire joined #perl6
03:56 Cheshire left #perl6
04:20 nige joined #perl6
04:25 Sqirrel joined #perl6
04:30 mudguts joined #perl6
04:32 mudguts Hello all - does anyone know where there's an example of CANDO - perl6's AUTOLOAD?
04:54 nige left #perl6
05:01 ugexe https://github.com/perl6/roast/blob/master/S06-other/introspection.t ?
05:04 ugexe honestly not sure if .cando and .CANDO were/are the same thing
05:05 diegok joined #perl6
05:14 domidumont joined #perl6
05:15 muethos joined #perl6
05:20 domidumont joined #perl6
05:22 dayangkun joined #perl6
05:32 TEttinger hm, not sure if a perl6 question specifically, or if perl... but I tried to install Padre, the perl IDE, off CPAN, and got a weird error
05:33 TEttinger 'Parse::ErrorString::Perl' seems to be the culprit
05:34 TEttinger error log: http://pastie.org/private/bqrtfct0pn2ohknjfsmng#11
05:35 TEttinger anyone have a perl6-syntax-aware editor that they recommend?
05:39 dalek ecosystem: 94fa0e1 | (Sterling Hanenkamp)++ | META.list:
05:39 dalek ecosystem: Adding KnottyPair to the Perl ecosystem
05:39 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/94fa0e1c8d
05:54 FROGGS joined #perl6
06:02 RabidGravy joined #perl6
06:07 skids TEttinger: the vi users here have something they find adequate for newer vim versions
06:07 TEttinger never could get used to vi or emacs
06:09 skids Personally I want my editor to not distract me or deceive me, so I disable most stuff like that.  But emacs has a few must-haves so I've stuck with it.
06:10 diana_olhovik joined #perl6
06:22 JimmyZ_ joined #perl6
06:24 gfldex joined #perl6
06:30 mudguts joined #perl6
06:30 kaare__ joined #perl6
06:32 mudguts ugexex: (sorry - got called away) - if you look at the very bottom of S10 there is a section on autoloading based on a special multi called CANDO.
06:33 mudguts But I cant find a single mention of it *anywhere* else
06:35 JimmyZ_ joined #perl6
06:36 moritz I don't think it's implemented
06:36 moritz we have FALLBACK though
06:37 akakcolin joined #perl6
06:44 mudguts Can you tell me where I can find a FALLBACK example?
06:44 skids I think I used it in Grammar::ABNF.
06:44 skids To case-fold rule names.
06:44 mudguts <looking> bbl
06:45 domidumont joined #perl6
06:46 _mg_ joined #perl6
06:47 akakcoli_ joined #perl6
06:48 Sqirrel joined #perl6
06:50 RabidGravy mudguts, in summary
06:51 RabidGravy m: class Foo { method FALLBACK(*@args) { say "goo" } }; Foo.new.goo
06:51 camelia rakudo-moar df0c3a: OUTPUT«goo␤»
06:53 RabidGravy though
06:53 RabidGravy m: class Foo { method FALLBACK($name, *@args) { say $name, @args } }; Foo.new.goo; Foo.new.blar("zub")
06:53 camelia rakudo-moar df0c3a: OUTPUT«goo␤blarzub␤»
06:54 RabidGravy may make it clearer how it works, it's somewhat tidier that p5's AUTOLOAD
06:57 masak morning, #perl6
06:57 RabidGravy marnin
06:57 moritz \o masak
06:58 rindolf joined #perl6
06:58 masak m: say "m{<a o>.roll}rni{<n ng>.roll}"
06:58 camelia rakudo-moar df0c3a: OUTPUT«marning␤»
06:58 masak m: say "m{<a o>.roll}rni{<n ng>.roll}" for ^3
06:58 camelia rakudo-moar df0c3a: OUTPUT«mornin␤morning␤mornin␤»
07:00 mudguts <back again>...
07:02 Ven joined #perl6
07:04 mudguts RabidGravy:  Thankyou for the explanation.
07:04 mudguts Last question (I hope) - Is there something like indirect object syntax that allows one to lead with a method name?
07:06 RabidGravy in summary, no
07:07 mudguts Cool.  I'll go fiddle with FALLBACK.  cheers.
07:08 masak waitwait, there *is* such a syntax.
07:08 mudguts still here
07:09 masak m: say abs: -42
07:09 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kbd6qsxgiL␤Unsupported use of bare "abs"; in Perl 6 please use .abs if you meant $_, or use an explicit invocant or argument␤at /tmp/kbd6qsxgiL:1␤------> 3say abs7⏏5: -42␤»
07:09 masak hm.
07:09 masak m: say abs -42:
07:09 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S8JDkgecAd␤Confused␤at /tmp/S8JDkgecAd:1␤------> 3say abs -42:7⏏5<EOL>␤    expecting any of:␤        colon pair␤»
07:09 masak though maybe I don't *know* the syntax... :)
07:09 * moritz knows why he doesn't like indirect object syntax
07:09 * masak checks S12
07:10 mudguts no dont... I can do that
07:10 mudguts I'll do so and come back here if I have more questions
07:10 masak m: class C { method close { say "OH HAI" } }; my $handle = C.new; close $handle:;
07:10 camelia rakudo-moar df0c3a: OUTPUT«OH HAI␤»
07:10 masak there you go.
07:11 masak I'm not sure why the abs example above didn't work.
07:11 mudguts well, ok.... I cant do that anywhere near as fast as that... :-)
07:11 masak S12:298, fwiw.
07:11 synbot6 Link: http://design.perl6.org/S12.html#line_298
07:12 mudguts Many thanks.  I'll go fiddle with FALLBACK *and* indirect-object-like syntax
07:12 masak \o/
07:13 FROGGS masak: abs is probably parsed specially to throw that Unsupported at you
07:13 moritz m: say sin 0:
07:13 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U6aCB_Z_zU␤Confused␤at /tmp/U6aCB_Z_zU:1␤------> 3say sin 0:7⏏5<EOL>␤    expecting any of:␤        colon pair␤»
07:13 FROGGS m: my $a = 0; say sin $a:
07:13 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UtNVYmWk_X␤Confused␤at /tmp/UtNVYmWk_X:1␤------> 3my $a = 0; say sin $a:7⏏5<EOL>␤    expecting any of:␤        colon pair␤»
07:13 moritz m: say sqrt 0:
07:13 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Dqp4Cs8tQW␤Confused␤at /tmp/Dqp4Cs8tQW:1␤------> 3say sqrt 0:7⏏5<EOL>␤    expecting any of:␤        colon pair␤»
07:13 moritz m: say(sqrt 0:)
07:13 camelia rakudo-moar df0c3a: OUTPUT«0␤»
07:13 FROGGS m: my $a = 0; sin $a:
07:13 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Rl9gS7OYML␤Confused␤at /tmp/Rl9gS7OYML:1␤------> 3my $a = 0; sin $a:7⏏5<EOL>␤    expecting any of:␤        colon pair␤»
07:14 masak oh, so it's related to listops. surprising.
07:14 mudguts left #perl6
07:18 fez joined #perl6
07:27 * moritz just found a bug in vim
07:27 moritz when you have a file open, and another program modifies the file, vim asks you if you want to reload it
07:27 moritz and if you do, it ignores the modeline in that file
07:29 colomon joined #perl6
07:30 masak moritz: wow.
07:30 masak moritz: submit a vimbug! :)
07:31 moritz masak: I will. But first I'll check if newer vims still do that
07:31 moritz or if it's maybe an oddity in my configuration
07:33 JimmyZ_ joined #perl6
07:34 masak I wonder if we'll ever get good "model refactoring" tooling, like we have relatively simple refactor actions today for Extract Method etc.
07:34 masak model refactors are trickier, but often far more interesting.
07:35 moritz what do you mean by "model refactoring"?
07:35 moritz change the data model?
07:35 masak could me something like, I had a hash somewhere, but now I want to switch to a set instead.
07:36 masak so I have to change not just the declaration, but all places that use that data structure.
07:36 moritz aye
07:36 moritz another common one at $work is "move an attribute to a different object"
07:36 masak right, that'd count too.
07:37 masak right now in 007 I have a situation where I'm changing array-of-thing to array-of-hash-of-thing.
07:37 masak it's error-prone to find and change all the places that use this data structure. I'm glad I have the tests, at least.
07:37 moritz one notes that static typing would also help find the places.
07:38 masak indeed.
07:40 zakharyas joined #perl6
07:40 Ven joined #perl6
07:43 masak m: my @a = { :foo }, { :bar, :baz }; @b = @a.map(*.clone.item); say @b.perl; say @a[0] === @b[0]
07:43 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/x1ni1zkIyW␤Variable '@b' is not declared␤at /tmp/x1ni1zkIyW:1␤------> 3my @a = { :foo }, { :bar, :baz }; 7⏏5@b = @a.map(*.clone.item); say @b.perl; ␤»
07:44 masak m: my @a = { :foo }, { :bar, :baz }; my @b = @a.map(*.clone.item); say @b.perl; say @a[0] === @b[0]
07:44 camelia rakudo-moar df0c3a: OUTPUT«[{:foo}, {:bar, :baz}]<>␤False␤»
07:44 masak apparently, that `.item` is necessary, or the cloned hashes flatten into the array.
07:51 masak m: my @a = { :foo }, { :bar, :baz }; my @b = @a.map({ { .list } }); say @b.perl; say @a[0] === @b[0]
07:51 camelia rakudo-moar df0c3a: OUTPUT«[:foo, :bar, :baz]<>␤False␤»
07:52 masak m: my @a = { :foo }, { :bar, :baz }; my @b = @a.map({ { %$_ } }); say @b.perl; say @a[0] === @b[0]
07:52 camelia rakudo-moar df0c3a: OUTPUT«[:foo, :bar, :baz]<>␤False␤»
07:52 masak hm.
07:53 masak m: my @a = { :foo }, { :bar, :baz }; my @b = @a.map({ .list.hash }); say @b.perl; say @a[0] === @b[0]
07:53 camelia rakudo-moar df0c3a: OUTPUT«[:foo, :bar, :baz]<>␤False␤»
07:53 masak m: my @a = { :foo }, { :bar, :baz }; my @b = @a.map({ .list.hash.item }); say @b.perl; say @a[0] === @b[0]
07:53 camelia rakudo-moar df0c3a: OUTPUT«[{:foo}, {:bar, :baz}]<>␤False␤»
07:55 darutoko joined #perl6
07:57 timotimo moin
07:58 masak moin moin
07:59 masak or, as we'd say in Low Saxon, "mooien Morgen" :)
08:00 * Ven waves
08:00 TEttinger gaaaaah
08:00 DrForr Sounds Dutch to me.
08:00 TEttinger Padre doesn't know how to syntax highlight NQP
08:00 TEttinger token string             { <?[']> <quote_EXPR: ':q'>
08:01 masak TEttinger: patch it! :)
08:01 TEttinger that single quote screws up the whole syntax highlighter
08:01 TEttinger they haven't released since 2013 and the build has been broken for all of 2015
08:01 masak DrForr: it's Dutch, German, Danish... they use it in Luxemburg, too.
08:01 masak TEttinger: oh, that's sad news :/
08:06 DrForr Notify the maintainer?...
08:09 timotimo TEttinger: any editor that's based on TextMate and Atom has perl6 syntax highlighting
08:09 TEttinger timotimo, thanks again, will take a look
08:15 abraxxa joined #perl6
08:19 masak style survey: `%h{$key}:exists`, or `%h{$key} :exists` ?
08:21 moritz the former
08:21 moritz I think of it as postcircumfix:<{ }>(:$exists!)
08:21 moritz so it belongs to the } as close as possible
08:22 moritz (in fact, I'm slightly surprised it doesn't go on the inside
08:22 moritz %h{$key :exists}
08:22 masak :)
08:22 masak I think I can motivate to myself why it doesn't go on the inside. not sure I can verbalize it, though.
08:23 masak something like, adverbs that modify ops come after the op. it's mostly a coincidence that {} has an inside.
08:23 masak of course, that answer is a little bit like saying "it's not X because it's Y".
08:24 arnsholt My parser intuition says that allowing the adverb inside the circumfix would make the parsing gnarly
08:24 masak arnsholt: because adverbs are otherwise so easy to parse? :P
08:25 arnsholt Gnarlier, then =p
08:25 laouji joined #perl6
08:25 masak "gnarlier" is a good slogan for adverbs in general... :P
08:25 timotimo well, there can also be , inside the { }
08:26 timotimo so it's a bit strange to have %foo{"bar", "baz" :exists}
08:26 masak timotimo: right.
08:26 timotimo on the other hands, named arguments are already like that
08:27 masak this looks like it deserves to be linked here: http://stefan-marr.de/papers/pldi-marr-et-al-zero-overhead-metaprogramming/
08:27 TEttinger timotimo, woah, using Atom now, very slick, and it successfully handles [']
08:27 TEttinger but
08:27 masak HN discussion: https://news.ycombinator.com/item?id=9741072
08:27 TEttinger it fails on the very next line with ["]
08:27 timotimo haha
08:27 timotimo oh man
08:28 timotimo grammars really are a tiny bit difficult every now and then
08:28 timotimo i wonder: is gnome shell supposed to take about 1 gig of ram?
08:28 timotimo maybe right now is the time to get back to xfce.
08:31 arnsholt I'm really happy with XMonad, FWIW
08:33 TEttinger https://github.com/atom/language-perl   ok, so this is what it uses. the line that causes it to fail is here,   https://github.com/perl6/nqp/blob/master/examples/rubyish/rubyish.nqp#L231
08:33 TEttinger open source syntax highlighters are nice :)
08:34 abraxxa joined #perl6
08:34 laouji joined #perl6
08:34 TEttinger and I'm wondering, what type of... grammatical construct? is it that ["] is not the start of a string
08:34 masak it's in a rule, yes?
08:35 TEttinger oh!
08:35 masak hm, isn't it <["]> ?
08:35 TEttinger and it breaks github's syntax highlighting too
08:35 TEttinger pretty much, masak
08:35 TEttinger | <?["]> <quote_EXPR: ':qq'>
08:36 masak right.
08:36 masak that's a zero-width character class.
08:36 masak ...I think the term is. :)
08:36 TEttinger a double quote with no closing quote?
08:37 TEttinger that's practically a negative width thing...
08:37 masak both the opening and closing quotes are parsed by quote_EXPR
08:37 masak which is why the `?` is there in `<?["]>`, because it's not consuming the `"`
08:37 jnthn Generally, you can make any <...> assertion a zero-width lookeahead by starting with ?
08:37 TEttinger ah, so the syntax highlighter needs to be aware of '?'
08:38 jnthn <foo> # call rule <foo> and capture if it matches
08:38 jnthn <?foo> # call rule foo, check it matches, but don't advance the cursor
08:38 jnthn uh, and I meant "rule foo" in the first one
08:38 * jnthn still waking up :)
08:38 TEttinger ok, I still don't know why it can have one double quote with no closing quote
08:39 masak should I call it "zero-width", or "positive lookahead"?
08:39 jnthn TEttinger: quote_EXPR matches an opening and a closing
08:39 masak TEttinger: what I said above.
08:39 TEttinger I mean in that line of source
08:39 masak TEttinger: it's a zero-width match!
08:39 jnthn Oh, you mean the syntax highlighter bug
08:39 TEttinger yes
08:39 jnthn Yes, no idea about that :)
08:39 masak it shouldn't count the " as an opening close, is the short answer.
08:40 TEttinger ok
08:40 masak more generally, it shouldn't count anything inside a char class as an opening quote.
08:40 masak or an opening anything.
08:40 masak char classes are very special environments wrt parsing, and they do tend to confuse syntax highlighters for this reason.
08:40 masak regex syntax is already a DSL, but charclasses are even DSL-ier than that.
08:40 TEttinger where a char class is anything within /<.*\[.+\]>/
08:41 TEttinger is that the right uh regex
08:41 timotimo well, ".*" is a bit much
08:41 masak TEttinger: right, modulo things like `?` and other stuff.
08:41 TEttinger .?
08:41 masak well, `<- ["]>` is OK too, IIRC.
08:42 masak maybe just check STD :)
08:44 masak one of the silliest workaround patterns I know in Perl 6: creating an IIFE just to be able to use `~~` in an action method. :)
08:44 laouji joined #perl6
08:44 TEttinger so under what conditions do the contents of <THE STUFF IN HERE> get parsed as a character class?
08:45 masak TEttinger: when there's also a `[]` in there.
08:45 TEttinger x < y[0] && y[1] > z
08:45 masak TEttinger: but I don't know if that's a good way to explain it to the parser.
08:45 masak right.
08:45 TEttinger hm
08:45 masak TEttinger: maybe check how STD has it?
08:46 TEttinger I don't even know what STD is other than something I don't want to need to be tested for
08:46 masak heh.
08:46 masak https://github.com/perl6/std/blob/master/STD.pm6
08:47 TEttinger thanks
08:47 timotimo what's an IIFE?
08:49 masak timotimo: "Immediately Invoked Function Expression". it's a JavaScript term.
08:49 masak timotimo: in this case, the sub insulates against the grammar's $/ and gives a fresh one to match with.
08:51 TEttinger oh wow. github can't even syntax highlight STD.pm6
08:51 TEttinger https://github.com/perl6/std/blob/master/STD.pm6#L283-L286
08:51 timotimo ah
08:51 timotimo i think github uses the same highlighter as textmate and atom and such
08:52 espadrine_ joined #perl6
08:53 TEttinger everything after this line is a string, unless it was supposed to be in double quotes... https://github.com/perl6/std/blob/master/STD.pm6#L3571
08:54 TEttinger and it only stops because it incorrectly parses a comment, wow
08:54 cognominal joined #perl6
08:54 TEttinger https://github.com/perl6/std/blob/master/STD.pm6#L4428
08:55 TEttinger is there any way I could uh, fix this with approaching-zero perl knowledge :)
08:57 TEttinger masak: I can't find the term char class (searched for class) in STD.pm6, does it have any other names?
08:57 timotimo you're looking for cclass_elem and friends
08:57 masak I skimmed the grammar stuff and didn't find it either :/
08:57 timotimo and cclass_expr
08:58 TEttinger err, is this? https://github.com/perl6/std/blob/master/STD.pm6#L5020
08:58 timotimo things between < ... > are called "assertion"
08:58 masak timotimo++
08:59 TEttinger maybe https://github.com/perl6/std/blob/master/STD.pm6#L5185 ?
08:59 kjs_ joined #perl6
09:01 TEttinger ok, yeah.  it looks like quotes get special-special treatment in cclass_elem https://github.com/perl6/std/blob/master/STD.pm6#L5253
09:01 timotimo that isn't for "between [ and ]", though
09:02 timotimo std: / <["hello there"]> /
09:02 camelia std 28329a7: OUTPUT«Potential difficulties:␤  Repeated character (") unexpectedly found in character class at /tmp/IbZNwMacQs line 1:␤------> 3/ <["hello there"]7⏏5> /␤  Repeated character (l) unexpectedly found in character class at /tmp/IbZNwMacQs line 1:␤------> 3/…»
09:02 timotimo this is about <"hi"> instead
09:03 TEttinger is this then, timotimo? https://github.com/perl6/std/blob/master/STD.pm6#L5218
09:03 TEttinger timotimo: the syntax trouble stems from trying to highlight <?["]>
09:03 TEttinger also, <?[']>
09:06 TEttinger if I wasn't clear, this is not a problem with Perl 6, this is a problem with an implementation of syntax highlighting for it
09:06 timotimo i know :)
09:06 TEttinger but I definitely don't "get" the syntax well enough to fix this
09:06 timotimo could be the ? trips the parser up. possibly also <-["]>?
09:07 TEttinger so... somewhere in std.pm6 there's a list of what is valid in a cclass, syntactically, right?
09:10 TEttinger https://github.com/perl6/std/blob/master/STD.pm6#L5144-L5151 maybe?
09:13 laouji joined #perl6
09:13 TEttinger brain... hurts
09:13 timotimo those are things valid between < and >
09:14 timotimo it might get easier when you notice that <sym> inside the token just matches what's in the :sym< ... > at the end of the token's name
09:14 timotimo so token assertion:sym<...> { <sym> } simply matches "..."
09:15 timotimo and the rules for <|>, <?>, <!> and <*> mostly just mean you can have < > with nothing but a single |, ?, ! or * inside
09:18 uncleyear joined #perl6
09:22 TEttinger timotimo, eh? I thought the <> in <|> was part of the syntax for any sym stuff, not just syms inside <> in the src you're reading
09:22 DrForr <<"\x[1234]">> # is legal as well, for example...
09:22 uncleyear joined #perl6
09:23 timotimo you are right; it's just that the < > from assertions and from :sym are overlapping right now
09:23 TEttinger oh ok
09:23 TEttinger so the assertion always is in <>
09:24 timotimo i meant to refer to the parts from here "token assertion:sym<|> { <sym> [ <?before '>'> |" to there
09:24 timotimo to hopefully keep your head from hurting :)
09:24 TEttinger heh
09:24 itz joined #perl6
09:24 timotimo it seems i worded my attempted explanations poorly and made matters worse :D
09:24 TEttinger oh no, this is very "meta" stuff, using perl to parse perl
09:25 TEttinger so there's going to be a lot of confusion however it goes
09:27 TEttinger so should I post a github issue on https://github.com/atom/language-perl so they know that it doesn't parse charclasses correctly when they contain quotes?
09:28 TEttinger or does someone want to send a PR fixing the relatively small perl 6 file?
09:29 masak the trick with very "meta" stuff, metacircularity, and things parsing/evaluating themselves, seems to reside in acknowledging that you are dealing with two things ("parser"/"parsee") which just happen to be the same thing.
09:31 itz hmm the average perl6 module has pod or markdown visible from github rather than via p6doc Module::Name after install
09:31 TEttinger ...do they even handle character classes? https://github.com/atom/language-perl/blob/master/grammars/perl%206.cson
09:31 timotimo TEttinger: i'd prefer that to be fixed in textmate's perl bundle and having it re-converted again
09:31 itz maybe panda should append such pod to the main module
09:31 laouji joined #perl6
09:31 TEttinger timotimo, yeah
09:31 TEttinger is that open source?
09:32 timotimo it is
09:32 timotimo https://github.com/textmate/perl.tmbundle
09:32 TEttinger https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl%206.tmLanguage
09:32 TEttinger ah
09:35 TEttinger hm. https://github.com/atom/language-perl/pull/39
09:38 timotimo well, the perl6.cson file is separate from the perl.cson file
09:38 timotimo though there's probably a derivation of some kind going on?
09:41 TEttinger I didn't see one
09:44 timotimo the perl6.cson file seems pretty small
09:45 timotimo can it be complete without deriving from the perl.cson file?
09:45 timotimo well, it is just a syntax highlighting definition file, not a complete grammar
09:49 itz if perl6 is written in itself is it possible to use its own grammar from externally to parse itself?
09:49 jnthn m: nqp::istype(Int, Numeric)
09:49 camelia rakudo-moar df0c3a: OUTPUT«===============================================================================␤The use of nqp::operations has been deprecated for non-CORE code.  Please␤change your code to not use these non-portable functions.  If you really want␤to keep using nqp:…»
09:49 jnthn m: EVAL 'nqp::istype(Int, Numeric)'
09:49 camelia rakudo-moar df0c3a: ( no output )
09:49 jnthn Oops :)
09:53 TEttinger hm.  is there any kind of potential workaround to    <?[']>    and    <?["]>    not highlighting? like an equivalent that escapes ' or ", or puts it in a string of the other type like '"'
09:54 moritz m: say "\C[APOSTROPHE]"
09:54 camelia rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WTQJjdM72o␤Unrecognized backslash sequence: '\C'␤at /tmp/WTQJjdM72o:1␤------> 3say "\7⏏5C[APOSTROPHE]"␤    expecting any of:␤        argument list␤        double quotes␤        term␤»
09:55 moritz m: say "\c[APOSTROPHE]"
09:55 camelia rakudo-moar df0c3a: OUTPUT«'␤»
09:55 TEttinger oh!
09:55 moritz m: say so "'" ~~ /<[\c[APOSTROPHE]]>/
09:55 camelia rakudo-moar df0c3a: OUTPUT«True␤»
09:55 TEttinger double quote, moritz?
09:56 TEttinger that's very handy, thank you. moritz++
09:56 moritz .u "
09:56 yoleaux U+0022 QUOTATION MARK [Po] (")
09:56 andreoss joined #perl6
09:56 TEttinger m: say so '"' ~~ /<[\c[QUOTATION MARK]]>/
09:56 camelia rakudo-moar df0c3a: OUTPUT«True␤»
10:02 dalek rakudo/nom: d422469 | jnthn++ | src/Perl6/ (3 files):
10:02 dalek rakudo/nom: Fix missing nqp::op use detection inside an EVAL.
10:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4224694de
10:02 dalek rakudo/nom: 7925788 | jnthn++ | src/ (2 files):
10:02 dalek rakudo/nom: Complain when trying to override special form ops.
10:02 dalek rakudo/nom:
10:02 dalek rakudo/nom: Don't silently allow things that'll never work, leading to confusion
10:02 dalek rakudo/nom: as seen in RT #125427.
10:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7925788403
10:02 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125427
10:03 dalek rakudo/nom: c875f5f | jnthn++ | src/core/Version.pm:
10:03 dalek rakudo/nom: Minor performance tweak (remove dupe .Numeric).
10:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c875f5ff72
10:03 dalek roast: 76e6a8a | jnthn++ | S32-exceptions/misc.t:
10:03 dalek roast: Tests for RT #125427.
10:03 dalek roast: review: https://github.com/perl6/roast/commit/76e6a8ac6e
10:03 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125427
10:03 TEttinger well, it looks silly, but it works. https://github.com/tommyettinger/lilikoi/blob/master/perl6/lilikoi/lilikoi.nqp#L246
10:04 dalek roast: 86d2451 | jnthn++ | integration/weird-errors.t:
10:04 dalek roast: Test to cover RT #125365.
10:04 dalek roast: review: https://github.com/perl6/roast/commit/86d2451e6d
10:04 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125365
10:14 |Tux| joined #perl6
10:27 dalek rakudo/nom: 84d11db | jnthn++ | src/core/Exception.pm:
10:27 dalek rakudo/nom: Show location of bogus control exceptions.
10:27 dalek rakudo/nom:
10:27 dalek rakudo/nom: Steal the Backtrace of the control exception that we failed to find a
10:27 dalek rakudo/nom: handler for, so we actually have some location information to emit.
10:27 dalek rakudo/nom: Fixes RT #125339.
10:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/84d11db50b
10:27 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125339
10:27 dalek roast: 0abc04d | jnthn++ | S04-exception-handlers/control.t:
10:27 dalek roast: Test for RT #125339.
10:27 dalek roast: review: https://github.com/perl6/roast/commit/0abc04da2b
10:27 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125339
10:31 jnthn lunch &
10:53 cognominal joined #perl6
10:58 colomon m: my $s = <a b c>.Set; given “z” { when $s { say “Match” } }
10:58 camelia rakudo-moar 84d11d: ( no output )
10:58 colomon m: my $s = <a b c>.Set; given “a” { when $s { say “Match” } }
10:58 camelia rakudo-moar 84d11d: ( no output )
11:00 _mg_ joined #perl6
11:02 akakcolin joined #perl6
11:03 jnthn m: my $s = <a b c>.Set; given “a” { when * (in) $s { say “Match” } }
11:03 camelia rakudo-moar 84d11d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/JL81QQYYMe␤Missing block␤at /tmp/JL81QQYYMe:1␤------> 3my $s = <a b c>.Set; given “a” { when *7⏏5 (in) $s { say “Match” } }␤    expecting any of:␤        block or pointy block␤        …»
11:03 jnthn Hm, whatever the ops is :)
11:04 jnthn But it's doing "a".ACCEPTS($s)
11:04 jnthn Which I guess ain't going to end too well
11:04 espadrine timotimo: what's a good example of perl6 to check syntax highlighting with?
11:11 psch m: my $s = <a b c>.Set; given “a” { when * (elem) $s { say “Match” } }
11:11 camelia rakudo-moar 84d11d: OUTPUT«Match␤»
11:29 [Tux] joined #perl6
11:29 jnthn .tell TimToady The Proc::Async-using thing seems to run reliably now (didn't see it crash at all in a bunch of attempts locally for my Windows port of it); would be interested to know if you see the same.
11:29 yoleaux jnthn: I'll pass your message to TimToady.
11:30 FROGGS jnthn++
11:30 jnthn .ask TimToady Are you doing any active work on the NFA engine at the moment? I know fates are high on your list; it has some NFG fail that I should look into at some point, but don't want to make conflicts with what you're doing.
11:30 yoleaux jnthn: I'll pass your message to TimToady.
11:30 jnthn I suspect the last of the Proc::Async things went away with fixing that lazy deserialization bunch of races.
11:31 espadrine timotimo: so I converted the tmlanguage file to ace format, then updated my converter to convert it to codemirror format, here is the (imperfect) result: https://gist.github.com/espadrine/7f54306303b8c4cbca77
11:31 FROGGS yeah
11:32 * jnthn figures he'll pack up a couple of boxes of stuff, then look at RT #125408, then maybe work a bit at prep for multi-dim arrays
11:32 FROGGS btw, I think it is highly confusing that a Process in Java exposes its stdout via the method .getInputStream()
11:33 jnthn FROGGS: Ouch, that's not a great bit of API design...
11:33 psch FROGGS: yes, i agree
11:33 psch but you *get* an InputStream...
11:33 FROGGS true that :o)
11:33 Ven joined #perl6
11:33 FROGGS psch: but I also get an InputStream for stderr, which is exposed via .getErrorStream
11:33 FROGGS so...
11:34 FROGGS I like our API better :P
11:34 psch yeah, it's still bad API design :)
11:34 dalek rakudo/nom: f1fa644 | peschwa++ | src/vm/ (2 files):
11:34 dalek rakudo/nom: Let Failure always match p6typecheckrv.
11:34 dalek rakudo/nom:
11:34 dalek rakudo/nom: According to jnthn++ there's a need to adjust Perl6::Optimizer to not inline
11:34 dalek rakudo/nom: non-native calls anymore with this, but I am unclear how exactly that should be
11:34 dalek rakudo/nom: done and don't see any fallout from not doing it.
11:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1fa6445d8
11:35 FROGGS psch: do you happen to know how I can redirect the stdout/stderr of a process to nirvana?
11:35 FROGGS i.e. not letting inherit ours, and not capturing it
11:36 psch not offhand, no.  i'd guess passing new ones, but those gobble memory in the worst case...
11:36 psch r: sub foo($) { }; { foo(Junction); CATCH { default { .perl.say } } } # this stumps me
11:36 camelia rakudo-moar 84d11d: OUTPUT«X::TypeCheck::Binding.new(symbol => "<anon>", operation => Any, got => Junction, expected => Any)␤»
11:36 camelia ..rakudo-jvm 84d11d: ( no output )
11:36 FROGGS hmmm, okay... I'll fix/implement the other stuff first
11:37 FROGGS (or write tests)
11:37 psch huh, jvm should have printed something there...
11:37 psch r: sub foo($) { }; { foo(Junction); CATCH { default { .perl.say } } }
11:37 camelia rakudo-moar 84d11d: OUTPUT«X::TypeCheck::Binding.new(symbol => "<anon>", operation => Any, got => Junction, expected => Any)␤»
11:37 camelia ..rakudo-jvm 84d11d: OUTPUT«X::AdHoc.new(payload => "Nominal type check failed for parameter 'null'")␤»
11:37 psch there
11:37 FROGGS jnthn: btw, nqp::openpipe won't be used anymore when I am done... shall I mark the op in interp.c somehow so it can be reused?
11:37 psch it's in Binder.java, moar doesn't explicitely check for gcx.Junction (or the equiv)...
11:38 psch i don't get how to go past that, though, and fall through to juncOrFail()...
11:39 FROGGS hmmm, I dont know enough here to be of help
11:40 psch yeah, my attempts have just resulted in more than one spectest FAIL in S03-junctions/misc.t, and without knowing where further i should look for discrepancies i don't take that as a good sign... :)
11:43 laouji joined #perl6
11:53 psch FROGGS: http://stackoverflow.com/questions/4799006/ is probably the best you can do
11:53 psch i.e. subclass OutputStream with empty write() candidates
11:53 FROGGS hh!
11:53 FROGGS ahh*
11:53 psch (the top-voted answer, not the example in the quest, just to be clear :) )
11:54 FROGGS but I don't want to redirect our stdout... only the sub process's
11:54 psch depending on how often you need the inline implementation of the OutputStream interface might even be cleaner than creating a NullPrintStream as in the second answer
11:55 psch well, ProcessBuilder lets you set the Process' streams
11:55 FROGGS true...
12:03 larion joined #perl6
12:03 akakcolin joined #perl6
12:06 jnthn FROGGS: Yes, in oplist we tend to mark the name as DEPRECATED
12:07 jnthn FROGGS: It says what to do in the comment at the top of oplist ;)
12:14 * colomon is on day two of converting $work scripts from p5 to p6
12:24 jnthn :)
12:24 * jnthn tires of putting stuff into boxes and returns to hacking
12:24 FROGGS jnthn: I don't read comments :P
12:25 rindolf joined #perl6
12:26 nebuchadnezzar \o/
12:26 yoleaux 17 Jun 2015 20:17Z <[ptc]> nebuchadnezzar: do you mean to modify upstream sources in the `upstream` branch, or do you mean the upstream sources in the `master` branch?
12:26 yoleaux 17 Jun 2015 20:19Z <[ptc]> nebuchadnezzar: I believe the terminology and branch names might be confusing me slightly...
12:28 FROGGS nebuchadnezzar: what what what?
12:28 jnthn .ask RabidGravy if https://rt.perl.org/Ticket/Display.html?id=125408 also seems fixed for him (I just tried it and it doesn't fail)
12:28 yoleaux jnthn: I'll pass your message to RabidGravy.
12:31 FROGGS nebuchadnezzar: is it true that MoarVM needs to run on mips(el) in order to make it fit for release?
12:35 jnthn "fit for release" in what sense?
12:35 moritz debian, I think
12:35 jnthn Better not be.
12:35 FROGGS aye
12:35 jnthn That'd be ridiculous.
12:35 FROGGS https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&amp;src=moarvm
12:36 FROGGS Severity
12:36 FROGGS 1 Serious (policy violations or makes package unfit for release)
12:36 moritz iirc you can specify the architecture on which a package can be built
12:36 FROGGS jnthn: but no worry, I can get in libffi support until next releae
12:36 FROGGS release*
12:37 DrForr Speaking of which I'm putting together the start of an opencv binding tonight.
12:37 jnthn Uhm...but aren't we depending on a dyncall package?
12:37 nebuchadnezzar FROGGS: I don't think so, I'm not a Debian developper but I know that some software use an “Architecture: any [!mipsel]” or something like that
12:38 jnthn Hm, aparently not...
12:39 FROGGS jnthn: there is no dyncall package
12:39 FROGGS (sadly)
12:39 jnthn Bah, so that becomes "our problem".
12:40 jnthn But yeah, if there's a way to just say "no, we don't intend this to work" wrt mips, let's do that.
12:40 jnthn We've so, so many better things to spend our time on than platforms with a fraction of a percent market share.
12:43 nebuchadnezzar jnthn: several software are in the same situation, the Debian porters sometimes made patches and submit them upstream, and sometime the software is excluded from an architecture: https://anonscm.debian.org/cgit/mirror/packages-arch-specific.git/tree/Packages-arch-specific
12:44 nebuchadnezzar or maybe just the Architecture: https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture
12:46 domidumont joined #perl6
12:48 moritz so !mipsel it seems
12:49 nebuchadnezzar moritz: yes, I'll see with the Debian team what the best to do
12:51 domidumont joined #perl6
12:52 jnthn nebuchadnezzar++
12:52 jnthn Certainly if somebody who knows/cares for that architecture provides a patch, I'll happily accept it.
12:53 domidumont joined #perl6
12:54 dalek roast: 02bc00a | jnthn++ | S15-nfg/many-threads.t:
12:54 dalek roast: Add tests covering Uni => NFG over many threads.
12:54 dalek roast:
12:54 dalek roast: This tests thread safety of the graphemes table. There's an NYI in
12:54 dalek roast: MoarVM at the moment that causes this test to panic; once that's
12:54 dalek roast: fixed, this test can be added to spectest.data and will ensure we
12:54 dalek roast: don't regress in this area.
12:54 dalek roast: review: https://github.com/perl6/roast/commit/02bc00aaba
12:55 aborazmeh joined #perl6
12:55 aborazmeh joined #perl6
12:58 akakcolin joined #perl6
13:07 dalek roast: 486ed3d | peschwa++ | S03-operators/arith.t:
13:07 dalek roast: Correct expectation for a few tests.
13:07 dalek roast:
13:07 dalek roast: Now that Failure falls through p6typecheckrv we actually get
13:07 dalek roast: Numeric::DivideByZero, not TypeCheck::Return.
13:07 dalek roast: review: https://github.com/perl6/roast/commit/486ed3d06d
13:12 dalek rakudo-star-daily: c5fd165 | coke++ | log/ (2 files):
13:12 dalek rakudo-star-daily: today (automated commit)
13:12 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/c5fd1659fe
13:12 dalek perl6-roast-data: 1d39954 | coke++ | / (9 files):
13:12 dalek perl6-roast-data: today (automated commit)
13:12 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/1d399545f5
13:22 muraiki joined #perl6
13:24 TEttinger In NQP, how would you make a grammar token that matches double-quoted strings with a # before them?
13:25 TEttinger more accurately, I need # to be a "dispatch character" that changes the next thing read
13:25 jnthn '#' <?["]> <quote_EXPR: ...> # or some such
13:25 TimToady m: say abs -42: ;
13:25 yoleaux 11:29Z <jnthn> TimToady: The Proc::Async-using thing seems to run reliably now (didn't see it crash at all in a bunch of attempts locally for my Windows port of it); would be interested to know if you see the same.
13:25 camelia rakudo-moar f1fa64: OUTPUT«42␤»
13:25 yoleaux 11:30Z <jnthn> TimToady: Are you doing any active work on the NFA engine at the moment? I know fates are high on your list; it has some NFG fail that I should look into at some point, but don't want to make conflicts with what you're doing.
13:25 TEttinger that is very easy, thank you :) jnthn++
13:26 TimToady masak: it's just an EOF anomaly
13:26 moritz m: say abs -42:;
13:26 camelia rakudo-moar f1fa64: OUTPUT«42␤»
13:26 moritz m: say abs -42:
13:26 camelia rakudo-moar f1fa64: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V2UzSPiN8k␤Confused␤at /tmp/V2UzSPiN8k:1␤------> 3say abs -42:7⏏5<EOL>␤    expecting any of:␤        colon pair␤»
13:26 muraiki I saw someone mention Proc::Async; I had problems a few months ago with using it in multiple threads simultaneously, but now I haven't had any problems at all. so thanks to whomever fixed that :)
13:26 moritz TimToady++
13:27 moritz muraiki: most likely jnthn++
13:27 muraiki jnthn++ thanks :)
13:27 TimToady .tell jnthn Proc::Async works now on Linux, and I'm mostly going to be touring Grand Tetons/Yellowstone over next few days, but if I work on anything, will probably be dynvar cache rather than fates
13:27 yoleaux TimToady: I'll pass your message to jnthn.
13:28 muraiki is there a way to specify the working directory of the command to be executed with Proc::Async? not the absolute path to the executable, but the working directory... I figure using cwd and then Proc::Async will not be thread safe
13:28 ugexe muraiki: nope. tried to figure that out for awhile myself
13:28 ugexe and you cant do (cd somedir && $cmd) with proc::async for whatever reason
13:29 iH2O joined #perl6
13:29 muraiki hrm. maybe it's something I could submit a pr for, but I have no idea what I'm doing :)
13:29 jnthn TimToady: Cool thanks
13:29 yoleaux 13:27Z <TimToady> jnthn: Proc::Async works now on Linux, and I'm mostly going to be touring Grand Tetons/Yellowstone over next few days, but if I work on anything, will probably be dynvar cache rather than fates
13:29 jnthn muraiki: Well, can file an RT; it's a reasonable request :)
13:29 muraiki jnthn: thanks :)
13:30 ugexe ive been using my $dir = $*CWD, chdir $some-dir; proc::async stuff; LEAVE chdir $dir and havent had any problems actually
13:30 ugexe although i imagine if something crashes it would have thread implications like you mention
13:30 nwc10 .tell yoleaux I'm very confused as to why messages are going via you
13:30 yoleaux nwc10: Thanks for the message.
13:30 nwc10 .tell yoleaux good morning.
13:30 yoleaux nwc10: Thanks for the message.
13:34 ugexe i also apparently get the occasional flapper from proc::async still where the promise never goes past the planned stage. but not very often
13:34 jnthn ugexe: There's an RT I've been working on where that can happen even without Proc::Async, but with a Promise more generally
13:35 ugexe jnthn: ah, could very well be it i suppose
13:35 TEttinger so, where are grammar things like <ident> defined? is that a rule that matches valid perl identifiers?
13:36 TEttinger (if I wanted to have an identifier rule that matched anything not starting with a digit or reserved symbol, is that possible?)
13:37 TEttinger (ending at whitespace or comma)
13:37 jnthn TEttinger: They're built-ins, but since thye're just methods you can override them
13:38 psch TEttinger: src/HLL/Grammar.nqp and src/NQP/Grammar.nqp for the definitions
13:38 TEttinger thanks both!
13:38 psch TEttinger: the former is the base for any HLL, the latter the NQP grammar
13:39 iH2O left #perl6
13:40 ugexe whats wrong with Grammar::Debugger?
13:42 telex joined #perl6
13:43 TEttinger hm, I can't actually find ident anywhere in HLL/Grammar
13:44 TEttinger the NQP grammar only mentions it kinda, twice, as
13:44 TEttinger token identifier { <.ident> [ <[\-']> <.ident> ]* }
13:45 psch TEttinger: nqp/src/QRegex/Cursor.nqp:622
13:45 TEttinger woah
13:45 psch a grammar is a Cursor
13:45 psch or something like that :s
13:46 psch m: say grammar { } ~~ Cursor
13:46 camelia rakudo-moar f1fa64: OUTPUT«True␤»
13:46 TEttinger it appears to just check for alphabetical or underscore
13:46 TEttinger .u _
13:46 yoleaux U+005F LOW LINE [Pc] (_)
13:46 Woodi joined #perl6
13:47 psch TEttinger: well, that's a reasonable default for identifiers in most languages i'd say
13:57 TEttinger yeah, I just wasn't sure what it really meant
14:06 dalek rakudo/attr-isrequired: 95cf7f6 | coke++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
14:06 dalek rakudo/attr-isrequired: Add a getter for Attribute's $!required
14:06 dalek rakudo/attr-isrequired: review: https://github.com/rakudo/rakudo/commit/95cf7f6f7d
14:07 [Coke] so, with that patch, if I try to loop over some attrs later and call $_.required, it can't find the method. arglebargle.
14:13 TEttinger how do you uh... negate a regex class in a grammar? I can't find any instances of [^A-Z] or whatnot being used
14:13 jnthn <-[A..Z]>
14:13 TEttinger oh, that's again simple :)
14:14 TEttinger jnthn++ thanks
14:14 flussence m: /<[^A-Z]>/
14:14 camelia rakudo-moar f1fa64: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3MSQipVQ6E␤Unsupported use of - as character range; in Perl 6 please use .. for range, for explicit - in character class, escape it or place it as the first or last thing␤at /tmp/3MSQipVQ6E:1␤------> 3/<…»
14:14 flussence m: /<[^A..Z]>/
14:14 camelia rakudo-moar f1fa64: ( no output )
14:14 flussence std: /<[^A..Z]>/
14:14 camelia std 28329a7: OUTPUT«ok 00:00 137m␤»
14:14 TEttinger hm ok
14:14 flussence hm, no complaints about that there...
14:15 jnthn flussence: Are you complaining that it doesn't complain? :)
14:15 flussence is putting "^" at the start of a character class intentionally, rare enough that warning about it would be a good idea?
14:15 flussence yeah, that :)
14:16 jnthn Worth considering; it'll be a common thing to try
14:17 TEttinger m: "hey" ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]>/
14:17 camelia rakudo-moar f1fa64: ( no output )
14:17 TEttinger m: say "hey" ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]>/
14:17 camelia rakudo-moar f1fa64: OUTPUT«「h」␤»
14:17 TEttinger ahhhh
14:17 dalek roast: e3540cd | jnthn++ | S15-nfg/many-threads.t:
14:17 dalek roast: Tweak to make the test "harder".
14:17 dalek roast:
14:17 dalek roast: By doing enough work to trigger some GCs while doing per-thread work
14:17 dalek roast: also.
14:17 dalek roast: review: https://github.com/perl6/roast/commit/e3540cd754
14:17 TEttinger ok
14:18 TEttinger m: say "hey" ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]><-\'\"\{\}\(\)\[\]\~\#\,\s\/>+/
14:18 camelia rakudo-moar f1fa64: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/b5d3BaNn3P:1␤------> 3 ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]><-7⏏5\'\"\{\}\(\)\[\]\~\#\,\s\/>+/␤Unable to parse regex; couldn't find final '/'␤…»
14:18 TEttinger m: say "hey" ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]><-[\'\"\{\}\(\)\[\]\~\#\,\s\/]>+/
14:18 camelia rakudo-moar f1fa64: OUTPUT«「hey」␤»
14:18 TEttinger woo complicated regexes!
14:19 flussence m: say "hey" ~~ /<-[\d'"{}()[]~#,s/]><-[\s'"{}()[]~#,/]>+/
14:19 camelia rakudo-moar f1fa64: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cig_kWRS7u␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/cig_kWRS7u:1␤------> 3say "hey" ~~ /<-[\d'"{}()[]7⏏5~#,s/]><-[\s'"{}()[]~#,/]>+/␤    expecting any o…»
14:19 flussence oh
14:19 flussence m: say "hey" ~~ /<-[\d'"{}()[\]~#,s/]><-[\s'"{}()[\]~#,/]>+/
14:19 camelia rakudo-moar f1fa64: OUTPUT«「hey」␤»
14:19 TEttinger m: say "hey" ~~ /.U #/
14:19 camelia rakudo-moar f1fa64: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at /tmp/WeGQ1MmzV7:1␤------> 3say "hey" ~~ /.U #/7⏏5<EOL>␤Unable to parse regex; couldn't find final '/'␤at /tmp/WeGQ1MmzV7:1␤------> 3say "hey" ~~ /.U #/7⏏5<EOL>␤    expecting any of:␤  …»
14:20 TEttinger OOPS
14:20 TEttinger .u #
14:20 yoleaux U+0023 NUMBER SIGN [Po] (#)
14:26 akakcoli_ joined #perl6
14:27 akakcolin joined #perl6
14:27 gfldex joined #perl6
14:29 dalek nqp: 16db457 | jnthn++ | tools/build/MOAR_REVISION:
14:29 dalek nqp: Bump MOAR_REVISION for NFG mutli-thread fixes.
14:29 dalek nqp: review: https://github.com/perl6/nqp/commit/16db45713c
14:30 domidumont joined #perl6
14:30 yqt joined #perl6
14:31 dalek rakudo/nom: d179b43 | jnthn++ | t (2 files):
14:31 dalek rakudo/nom: Bump NQP_REVISION; run S15-nfg/many-threads.t.
14:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d179b4312f
14:35 gagalicious joined #perl6
14:38 firefish5000 joined #perl6
14:44 RabidGravy joined #perl6
14:47 xinming joined #perl6
14:48 timotimo muraiki: porting to the JVM has forced us to make the "current working directory" completely virtual, which fortunately means we can have one per thread, rather than a process-global one. you can just have a "my $*CWD = '/...'" before your invocation and it should work - if not, please report bug
14:50 muraiki timotimo: thanks! although it looks like nqp::spawnprocasync takes a cwd arg, so I think adding it to Proc::Async would be pretty straightforward. that way if you wanted to do a few commands with different cwds in one thread, you wouldn't have to juggle them (such as saving the original cwd for a later command)
14:51 timotimo if you "my $*CWD", you don't have to remember the original value; if you leave the block you've defined it in, you get the original value right back
14:51 muraiki so I'd just put a bunch of blocks in one thread?
14:51 muraiki I see
14:52 muraiki I guess I just like being able to supply it in the constructor :) but thanks, that will solve my problem
14:59 mr-foobar joined #perl6
15:05 njmurphy joined #perl6
15:05 akakcoli_ joined #perl6
15:10 masak catching up on backlog.
15:10 masak did someone rakudobug the indirect object colon EOF anomaly?
15:10 jnthn RT says no
15:11 jnthn Or at least, they didn't do so today
15:11 * masak says "rakudobug"!
15:11 jnthn (just looking at the tail of the cue)
15:11 jnthn uh, queue
15:16 RabidGravy joined #perl6
15:17 Ven_ joined #perl6
15:20 * colomon just told a shell script to use perl7...
15:20 dalek perl6-examples: 742c9dd | paultcochrane++ | lib/Pod/Htmlify.pm6:
15:20 dalek perl6-examples: Replace hard tabs with spaces
15:20 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/742c9dd6c6
15:20 dalek perl6-examples: 6191b48 | paultcochrane++ | lib/Pod/ (2 files):
15:20 dalek perl6-examples: Link source files from subcategories to GitHub correctly
15:20 dalek perl6-examples:
15:20 dalek perl6-examples: Source files from within subcategories were missing their subcategory within
15:20 dalek perl6-examples: the link url pointing to GitHub.  This commit ensures that files from
15:20 dalek perl6-examples: categories and subcategories are linked to the correct url.
15:20 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/6191b485e7
15:28 skids joined #perl6
15:30 vimal2012 joined #perl6
15:31 FROGGS[mobile] joined #perl6
15:33 pat_js joined #perl6
15:35 japhb Dunno if someone reported it, but Grammar::Debugger is failing tests.  Since it seems to be confused by Failure, perhaps it's fallout from the Failure RV typecheck change ...?
15:37 jnthn japhb: Ugh, maybe...
15:41 * Ven_ also had a segfault with the debugger not long ago (with readline not installed)
15:49 FROGGS[mobile] joined #perl6
15:56 hoelzro morning #perl6
15:56 FROGGS[mobile] hi hoelzro
15:57 captain-adequate joined #perl6
15:57 timotimo o/
15:58 hoelzro o/ FROGGS[mobile], timotimo
15:58 akakcolin joined #perl6
16:03 lizmat morning #perl6!
16:03 * lizmat is packing and getting ready to commute home
16:03 vimal2012 left #perl6
16:04 hoelzro o/ lizmat
16:04 hoelzro safe travels back home!
16:05 lizmat thank you!
16:05 FROGGS[mobile] hi lizmat!
16:06 lizmat FROGGS[mobile] o/
16:07 hoelzro jnthn: regarding that loop (my $i = 0;;) issue in RT (alledged variable escape), I can see how that would be confusing.  Is there something we can do to clarify that for people?
16:08 lizmat but isn't that a genuine scoping bug ?
16:08 jnthn No, it's not a bug.
16:08 jnthn The rules in Perl 6 are very clear.
16:08 timotimo i don't think the my $i is scoped to the inside of the () and { } only
16:08 lizmat ok, then it's a case DIHWIDT
16:09 jnthn If it's inside the the curlies of a closure, or in the signature to a block, then it's scoped to the block. Otherwise it's not.
16:09 jnthn We could perhaps better document that.
16:09 lizmat some people might think it's a "signature" of the loop
16:09 jnthn I don't think we need to stress much over it, though.
16:09 jnthn Uses of "loop" should be rare anyway.
16:09 lizmat agree, DIHWIDT  :-)
16:10 jnthn Given we've ranges and sequences... :)
16:10 lizmat well, yes, but the people who try to program C in Perl 6, *will* be confused by this I guess
16:10 hoelzro jnthn: I don't think it's a bug; I'm just wondering if there's something we should do to caution people when they do something like loop (my $i; ...)
16:11 hoelzro lizmat: in C99, it's scoped to outside of the block, isn't it?
16:11 [ptc] hi #perl6,  why does `for $file.IO.lines[^Inf] <-> $line { $line ~~ s:nth(5)/\s/;/; $line.say }` give Cannot assign to an immutable value
16:11 hoelzro I know in C++ it's not
16:11 jnthn And in C89 I'm not sure you can even do it. :)
16:12 [ptc] whereas `my @lines = $file.IO.lines[^Inf]; for @lines <-> $line { $line ~~ s:nth(5)/\s/;/; $line.say }`  doesn't  (and runs)
16:12 hoelzro jnthn: I think the documentation was clear (it wasn't hard for me to find the section in S04 that I linked), I'm just wondering if a compiler warning would be smart
16:12 jnthn hoelzro: I don't think it warrants a warning
16:12 masak seeing another Parrot release go by, I'm struck by how many types of parrot are called something with "Lovebird".
16:12 lizmat but I guess 'for ^Inf -> $i { say $i; last if $i==5 }' is a better idiom than loop (my $i = 0; $i++; $i==5) { }
16:13 jnthn Because most of the time, unless you do declare another $i later, you're not going to have a problem.
16:13 jnthn We could put a hint on the "already declared" error
16:13 hoelzro alright, good point
16:13 profan so that's scoped outside of the loop block itself?
16:13 profan i mean, the "loop" construct doesnt have its own scope in that context
16:14 jnthn profan: Correct, loop doesn't get to be an exception to the rule.
16:14 lizmat masak: was there a Parrot release??  I didn't see it?
16:14 jnthn And in the for case, there's no problem 'cus the loop variable is a block parameter.
16:16 jnthn hoelzro: There's already a request in RT for the "already declared" message to point to where the previous decl was
16:16 jnthn hoelzro: I guess we could try and keep enough info around to give a hint about loop.
16:17 hoelzro it would be a nice to have
16:18 hoelzro I just want people trying Perl 6 to not get confused, and I remember tripping up on if my $value = $something { ... } back when I was learning
16:19 uncleyea1 joined #perl6
16:19 jnthn Yeah, there the idiom you tend to want is "if something() -> $value { ... }
16:20 hoelzro right
16:21 hoelzro but a lot of people (esp. Perl 5ers) may try if my $value = something() { ... } and get confused when that variable "escapes"
16:21 hoelzro but you're right that the redeclaration warning is probably sufficient
16:24 * jnthn wonders if this is mentioned in the 5to6 in doc
16:24 [ptc] could someone explain the difference between `for $file.IO.lines[^Inf] <-> $line { $line ~~ s:nth(5)/\s/;/ }` (which gives an error) and `my @lines = $file.IO.lines[^Inf]; for @lines <-> $line { $line ~~ s:nth(5)/\s/;/ }`, which doesn't?
16:24 jnthn Yes, it's mentioned
16:25 jnthn [ptc]: In the second case you've (eagerly) assigned to an array @lines which puts everything into a Scalar container
16:25 jnthn [ptc]: In the first case, you're iterating through a lazy list of lines and there is no container
16:25 jnthn Use "-> $line is copy" to make the first work out
16:25 [ptc] jnthn: ok, so that's why it's not possible to assign to $line in the loop?
16:25 jnthn Correct
16:26 jnthn iirc though, we should never have allowed $line to be bound to a non-container
16:26 jnthn (with <->)
16:26 [ptc] ah, ok.  Just trying to get an example to work again, and am wondering why it doesn't work
16:26 jnthn So the error should have come a little earlier.
16:26 PerlJam m: my ($a,$b) = "foo bar" ~~ m/^(\w+) \s* (\w+)/; say "($a)($b)";
16:26 camelia rakudo-moar d179b4: OUTPUT«Use of uninitialized value $b of type Any in string context  in block <unit> at /tmp/2ZyCzvi3pP:1␤(foo bar)()␤»
16:26 jnthn But "is copy" is probably what you're looking for.
16:26 PerlJam Am I having a brain-fart or should that still work in P6?
16:26 [ptc] jnthn: cool, thanks.  I'll give it a go
16:27 lizmat commuting&
16:27 [ptc] jnthn: btw: the explanation wrt containers was helpful!
16:27 jnthn PerlJam: You get back a Match object
16:27 jnthn PerlJam: You probably want to get the list view of it
16:27 jnthn m: my ($a,$b) = list "foo bar" ~~ m/^(\w+) \s* (\w+)/; say "($a)($b)";
16:27 camelia rakudo-moar d179b4: OUTPUT«Use of uninitialized value $b of type Any in string context  in block <unit> at /tmp/SNbuCQ6WF2:1␤(foo bar)()␤»
16:27 jnthn m: my ($a,$b) = flat "foo bar" ~~ m/^(\w+) \s* (\w+)/; say "($a)($b)";
16:27 camelia rakudo-moar d179b4: OUTPUT«Use of uninitialized value $b of type Any in string context  in block <unit> at /tmp/kO2vRbKlxp:1␤(foo bar)()␤»
16:27 jnthn hmm
16:27 jnthn oh...
16:28 jnthn m: my ($a,$b) = @("foo bar" ~~ m/^(\w+) \s* (\w+)/); say "($a)($b)";
16:28 camelia rakudo-moar d179b4: OUTPUT«(foo)(bar)␤»
16:28 jnthn m: my ($a,$b) = ("foo bar" ~~ m/^(\w+) \s* (\w+)/).list; say "($a)($b)";
16:28 camelia rakudo-moar d179b4: OUTPUT«(foo)(bar)␤»
16:28 jnthn One of those.
16:28 MilkmanDan joined #perl6
16:32 telex joined #perl6
16:33 dalek perl6-examples: 2a0d34b | paultcochrane++ | categories/euler/prob054-andreoss.pl:
16:33 dalek perl6-examples: [euler] Purge trailing whitespace
16:33 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/2a0d34bdac
16:33 dalek perl6-examples: 76fc334 | paultcochrane++ | t/categories/ (2 files):
16:33 dalek perl6-examples: [t] purge trailing whitespace
16:33 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/76fc334a97
16:33 dalek perl6-examples: 9251efb | paultcochrane++ | categories/euler/prob054-andreoss.pl:
16:33 dalek perl6-examples: [euler] enable loop param to be writable in loop
16:33 dalek perl6-examples:
16:33 dalek perl6-examples: The code `for $file.IO.lines[^$lines] <-> $line` iterates over a lazy list
16:33 dalek perl6-examples: of lines without a container, thus it gives the error `Cannot assign to an
16:33 dalek perl6-examples: immutable value` (since `$line` is immutable in this case).  To enable
16:33 dalek perl6-examples: `$line` to be writable within the loop, one needs to replace `<-> $line`
16:33 dalek perl6-examples: with `-> $line is copy`.  Thanks to jnthn++ for the clear explanation.
16:33 dalek perl6-examples: Unfortunately, the script doesn't produce the correct answer, but that's
16:33 dalek perl6-examples: another issue.
16:33 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/9251efb9f2
16:50 Blub\0 joined #perl6
16:54 domidumont joined #perl6
16:55 xinming How do we make a dump the object, so we it can be initialized later?
16:55 [ptc] .tell andreoss could you have a look at euler/prob054-andreoss.pl please?  It runs again, however gives 380 as the answer instead of 376, and I'm not sure why
16:55 yoleaux [ptc]: I'll pass your message to andreoss.
16:55 xinming When I try to do something with  $obj.perl.say, I only saw the MyClass.new   without any arguments
16:56 xinming Ignore me, I use   has $attr,  not  has $.attr
16:57 rindolf joined #perl6
16:59 JimmyZ_ 好久不见
17:02 masak JimmyZ_! 好久不见!
17:03 JimmyZ_ :)
17:03 tony-o m: class A { has $attr = 5; method a { $!attr.say; }; }; A.new.a
17:03 camelia rakudo-moar d179b4: OUTPUT«5␤»
17:03 huf joined #perl6
17:03 nwc10 ilmari just pointed me at this: https://i.imgur.com/qq2ceU9.jpg
17:03 FROGGS joined #perl6
17:04 tony-o xinming: ^^
17:04 tony-o nwc10: lol
17:04 spintronic joined #perl6
17:05 spintronic hi guys simple question how do I enter multiline input into the perl6 REPL?
17:06 masak pierrot: there's ongoing work on a better REPL which allows you to do that.
17:06 masak er, spintronic*
17:07 JimmyZ_ so whats the differenc between has $attr and has $.attr
17:07 spintronic ah ok thanks masak!
17:07 tony-o $! doesn't auto create accessors/setters for you
17:07 masak JimmyZ_: `has $attr` gives you an `$!attr` but allows you to call it `$attr` in the class scope.
17:07 masak JimmyZ_: because it doesn't have a `.`, it doesn't give you accessors.
17:08 tony-o m: class E { has $.a; }; E.new.^methods.say;
17:08 camelia rakudo-moar d179b4: OUTPUT«a␤»
17:08 masak JimmyZ_: I see most people discouraging use of `has $attr` in favor of the more explicit `has $!attr`
17:08 tony-o $.a auto creates that accessor for $!a
17:08 tony-o masak++
17:08 masak JimmyZ_: but `has $attr` has also been called "a sop to people who don't like twigils"
17:09 tony-o m: class E { has $!a = 5; method a { return $!a+5; }; }; E.new.a.say;
17:09 camelia rakudo-moar d179b4: OUTPUT«10␤»
17:13 masak tony-o: it does, but it also steps aside if there's a `method a` in the class.
17:15 JimmyZ_ masak: thanks. it is nice to have 'has $attr'
17:15 xinming It's a long time since I pick perl6 up again. as I saw that we'll have a workable and almost stabilized perl6 interpreter. :-)
17:16 DrForr Seems pretty stable these last few weeks :)
17:17 xinming Things changed a lot, the new Type object thing, and other things. Will read the doc more to catch up.
17:18 JimmyZ_ xinming: 欢迎回来
17:19 masak heh. meant to comment on https://rt.perl.org/Public/Bug/Display.html?id=125431 , but jnthn++ had already left exactly the comment I wanted to write ;)
17:19 masak xinming: what new Type object thing?
17:21 xinming masak: I mean the type object.
17:21 xinming 谢谢
17:21 xinming masak: my Int $var;   $var contains Int type
17:22 xinming and also the Nil and () thing
17:22 JimmyZ_ it is not new.
17:23 masak was gonna say.
17:24 masak I don't know how back you have to go for `my Int $var;` to not contain Int. maybe forever.
17:24 masak there are some changes around Nil and (), yes.
17:25 masak hoelzro++ # release
17:25 masak m: sub foo ($a, $f) { if $f { foo("z", 0) }; {$_=$a; say $a; say $_} }; foo("x", 1)
17:25 camelia rakudo-moar d179b4: OUTPUT«z␤z␤z␤z␤»
17:27 masak wow, to think that we still have a lexical bug... :/
17:29 kaare_ joined #perl6
17:29 masak the correct output would be "[call foo("x", 1)][call foo("z", 0)]z␤z␤[return]x␤x␤[return]"
17:30 bartolin j: sub foo ($a, $f) { if $f { foo("z", 0) }; {$_=$a; say $a; say $_} }; foo("x", 1)
17:30 camelia rakudo-jvm d179b4: OUTPUT«z␤z␤x␤x␤»
17:30 bartolin hi, #perl6
17:31 hoelzro [Coke]: btw, I didn't get around to updating the PortFile for Moar/NQP, but I can do that after work today
17:33 masak here's a shorter version:
17:33 masak m: my $y = 1; sub foo($x) { $y-- && foo("z"); { say $x } }; foo("x")
17:33 camelia rakudo-moar d179b4: OUTPUT«z␤z␤»
17:33 masak again, should say "z␤x␤"
17:35 * masak adds the example to RT #109322
17:35 bartolin nice, masak++
17:36 masak bartolin: I am a lexbug hunter. I stalk lexbugs through the dark night, and when I catch them, I drive a stake through their cold, bloodthirsty heart.
17:37 * bartolin didn't know masak's particular love for lexbugs
17:38 masak "love" is a charitable interpretation of what I said.
17:38 bartolin *g*
17:38 masak watch this:
17:39 FROGGS ohh noes!! whitespace!
17:39 masak moritz: RT #58392!
17:39 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=58392
17:39 masak (sorry, lag)
17:39 * bartolin reads ...
17:40 grondilu m: enum Square ("a".."h" X~ 1..8); say a1 # should this work?
17:40 camelia rakudo-moar d179b4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7jXucfm4Gk␤Undeclared routine:␤    a1 used at line 1␤␤»
17:40 grondilu m: enum Square <a1 a2>; say a1 # should this work?
17:40 camelia rakudo-moar d179b4: OUTPUT«a1␤»
17:41 grondilu m: enum Square BEGIN "a".."h" X~ 1..8; say a1
17:41 camelia rakudo-moar d179b4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qlsG29Qxa2␤Undeclared name:␤    Square used at line 1␤Undeclared routines:␤    a1 used at line 1␤    enum used at line 1␤␤»
17:43 masak I was expecting moritz to give a start and scream in horror... but maybe he's AFK, and we'll get a delayed scream ;)
17:44 bartolin masak: that looks like it was a very nice bug ...
17:44 masak it's the most frustrating bug in the entire RT.
17:45 masak grondilu: I don't see offhand why that shouldn't work.
17:46 jnthn It's very well RT'd already that enum doesn't like anything too fancy
17:46 jnthn It's non-trivial to fix because enums show up in the CORE.setting
17:46 jnthn Or at least, it was last time I looked.
17:47 masak oh. circularity trouble.
17:47 jnthn Aye
17:47 jnthn And to think some folks wish Rakudo were a bootstrapping compiler... :P
17:49 jnthn m: sub foo ($a, $f) { if $f { foo("z", 0) }; if 1 {$_=$a; say $a; say $_} }; foo("x", 1)
17:49 camelia rakudo-moar d179b4: OUTPUT«z␤z␤x␤x␤»
17:49 jnthn m: sub foo ($a, $f) { if $f { foo("z", 0) }; (-> {$_=$a; say $a; say $_})() }; foo("x", 1)
17:49 camelia rakudo-moar d179b4: OUTPUT«z␤z␤x␤x␤»
17:49 masak jnthn: maybe there's room for a two-level definition enums: something like not-quite-enums that are used early, and then the real enums later?
17:50 masak just a thought.
17:50 spintronic how do I load a script from the Perl6 REPL?
17:50 masak spintronic: you can load a module with the -M flag
17:51 spintronic masak: looks like I can use EVAL slurp 'myscript.p6' too?
17:51 jnthn masak: That may be a way to do it
17:51 jnthn spintronic: or EVALFILE 'myscript.p6'
17:54 larion joined #perl6
17:54 * jnthn tests a fix for the bare block thing
17:54 bbkr joined #perl6
17:55 skids So, I doubt I'll get much of anywhere but I'm toying with implementing .assuming(foo,*,Nil,bar) etc and signatures on the produced primed functions.
17:55 skids is there any reason not to break subroutines out of BOOTSTRAP's "sub bind" for code reuse, performance-wise?
17:55 spintronic jnthn and masak: both of them work great thanks!
17:59 kaare_ joined #perl6
18:00 jnthn skids: What do you want to re-use there, ooc?
18:00 skids Well, the $capsnap was the first thing I noticed, but I'm sure there will be more.
18:01 timotimo how smart are we about taking closures of things that don't use many of the outer lexical values? we're probably doing fine, as all subs are basically lexical values more or less and our closures aren't multiple megabytes in size just because they're lexically inside the core setting?
18:01 jnthn timotimo: We just have an ->outer pointer, it's all be reference, we don't copy
18:01 timotimo ah, good
18:02 dalek rakudo/nom: 175c4d8 | jnthn++ | src/Perl6/Actions.nqp:
18:02 dalek rakudo/nom: Fix reentrancy fail with bare blocks.
18:02 dalek rakudo/nom:
18:02 dalek rakudo/nom: Resolves RT #109322.
18:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/175c4d8d52
18:02 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=109322
18:02 dalek roast: 7fae5b5 | jnthn++ | S06-advanced/lexical-subs.t:
18:02 dalek roast: Unfudge test for RT #109322.
18:02 dalek roast: review: https://github.com/perl6/roast/commit/7fae5b561e
18:02 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=109322
18:03 skids Really it looks like eventually binding could be "prime, and if there are no leftover args, you successfully bound"
18:04 jnthn Well, note that the bind code is implemented separately on JVM, and in most cases on MoarVM for normal binds we never use the binder, we compile the signature
18:04 nebuchadnezzar joined #perl6
18:04 skids Right, but for bootstrap.
18:05 timotimo jnthn: where would i have to look to put in diagnostics for why binds sometimes don't get compiled on moar?
18:05 skids And yeah implementing the JVM .assuming stuff would be a learning curve for me, not knowing any java.
18:06 jnthn skids: What particular behavior of assuming are you wanting to implement?
18:06 skids A few.  There's an RT complaining about the arity of the result, and the spec says you can pass whatever stars in to curry x and z but not y in :(x,y,z)
18:06 jnthn skids: Faking up a signature/arity/count?
18:07 jnthn Ah
18:07 bartolin wow, jnthn++ # that quick fix for RT #109322 (and all those other fixed tickets)
18:07 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=109322
18:07 timotimo because sometimes i see "bind" and "bind_one_value" and friends at somewhat high places in profiles
18:07 skids BTW I found RT#125437 while looking over the binder code.
18:07 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125437
18:07 jnthn skids: I don't think you've have to change the binder to do those
18:08 timotimo usually not as high as the reify gang, but i'd expect them to almost always disappear completely
18:08 timotimo and they end up with very high call counts sometimes
18:08 timotimo bbiab
18:08 jnthn timotimo: I'd put something in Actions.nqp
18:08 skids No don't have to, just wondering if there is a reason not to factor code for reuse in BOOTSTRAP, like is it not efficiently compiled or something.
18:09 jnthn timotimo: There's a line "if lower_signature(...)"
18:09 jnthn timotimo: Add an else to that if and you can log which blocks don't be their sigs lowered
18:10 jnthn skids: Well, the other big reason is that we don't use that code path at all on JVM; iirc it's in #?if moar...
18:11 skids jnthn: yes, I'm aware.  But I don't think(?) things are introspectable enough yet to do all these things from Perl6.
18:13 skids Also a missing part is how, once I have the new Signature, to attach it to the code block that does the call with the combined capture.
18:14 skids Unless using EVAL is a performant option.
18:17 skids Oh, and one other question was under what scenarios "unnamed capture parameters" appear.
18:18 jnthn One option would be to have the code object be mixed in to, so that .signature/.arity/.count respect the assumed signature
18:18 jnthn You could even lazily work those bits out if they're asked for
18:20 skids That's an idea, for sure.
18:20 jnthn You may need to use nqp::ops to manipulate the Signature
18:21 jnthn Well, almost certainly will
18:21 skids Yeah there's no useful Signature.new, was a problem.   The other is if we want .assumming to blow up at that code line when impossible priming parameters are provided.
18:23 skids *arguments
18:24 xinming m: class T { has Array of Int @abc };
18:24 camelia rakudo-moar 175c4d: ( no output )
18:25 xinming m: class T { has Array of Int @.abc; method t () { @abc.perl.say } }; T.new.t;
18:25 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8M9D5kS81g␤Variable '@abc' is not declared. Did you mean '@!abc'?␤at /tmp/8M9D5kS81g:1␤------> 3{ has Array of Int @.abc; method t () { 7⏏5@abc.perl.say } }; T.new.t;␤»
18:25 xinming m: class T { has Array of Int @!abc; method t () { @abc.perl.say } }; T.new.t;
18:25 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ni1o9f9G5F␤Variable '@abc' is not declared. Did you mean '@!abc'?␤at /tmp/ni1o9f9G5F:1␤------> 3{ has Array of Int @!abc; method t () { 7⏏5@abc.perl.say } }; T.new.t;␤»
18:26 nine How's the GLR doing these days?
18:26 skids m: class T { has Array of Int @.abc; method t () { @.abc.perl.say } }; T.new.t;
18:26 camelia rakudo-moar 175c4d: OUTPUT«Array[Array[Int]].new()␤»
18:26 xinming hmm, The reason I test this is because, It seems   'has Array of Int @array'   doesn't work.  But 'has Array:of(Int)'   worked.
18:26 xinming strange
18:26 xinming bbl
18:27 xinming My mistake, It worked now. I don't know why, maybe typo.
18:27 skids xinming: the twigils.
18:28 skids note that that's an array of an array of int
18:30 xinming skids: Yes, And I just noticed, I don't need 'Array of' thing in my case.
18:36 xinming It seems, perl6 still doesn't support required object attributes yet.
18:36 xinming needs to do it within BUILD method
18:36 skids xinming: has $.a = die("must haz a")
18:37 skids but someone is working on an "is required" trait.
18:37 xinming Ok, got it, thanks. I tried with 'is required', and I got an error, I thought it's not supported.
18:38 skids (And personally I think has $.a! to be consistent with sigs might be nice.)
18:38 skids Yes "is required" is NYI.
18:41 xinming m: class A { method hello () { "Hello".say; } }; class T { has A $.a handles qw:w(hello) }; T.new.hello;
18:41 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/q2IH0hYjkZ␤Invalid adverb value for :w(hello)␤at /tmp/q2IH0hYjkZ:1␤------> 3class T { has A $.a handles qw:w(hello) 7⏏5}; T.new.hello;␤»
18:42 xinming Is this a bug?
18:42 xinming m: class A { method hello () { "Hello".say; } }; class T { has A $.a handles qw(hello) }; T.new.hello;
18:42 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BCJOIpB5oJ␤Cannot invoke this object (REPR: Null, cs = 0)␤at /tmp/BCJOIpB5oJ:1␤»
18:42 xinming m: class A { method hello () { "Hello".say; } }; class T { has A $.a handles qq:w(hello) }; T.new.hello;
18:42 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rZD0Lex865␤Invalid adverb value for :w(hello)␤at /tmp/rZD0Lex865:1␤------> 3class T { has A $.a handles qq:w(hello) 7⏏5}; T.new.hello;␤»
18:42 xinming these three neither worked.
18:42 _mg_ joined #perl6
18:42 xinming the <> worked though
18:43 ugexe m: class A { method hello () { "Hello".say; } }; class T { has A $.a handles /^hell/ }; T.new.hello;
18:43 camelia rakudo-moar 175c4d: OUTPUT«Hello␤»
18:43 Sqirrel joined #perl6
18:45 xinming I don't mean the regex
18:45 xinming I mean the qw thing in perl6
18:45 skids m: qw:w(hello).say
18:45 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LfdSTTsZRP␤Invalid adverb value for :w(hello)␤at /tmp/LfdSTTsZRP:1␤------> 3qw:w(hello)7⏏5.say␤»
18:45 xinming I'll test it again
18:45 xinming yes, seems qw doesn't work.
18:46 skids m: q:w(hello).say
18:46 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7JiwM5FJjh␤Invalid adverb value for :w(hello)␤at /tmp/7JiwM5FJjh:1␤------> 3q:w(hello)7⏏5.say␤»
18:46 skids m: q:w/hell/.say
18:46 camelia rakudo-moar 175c4d: OUTPUT«hell␤»
18:47 skids It's the delimiter.
18:48 skids Whitespace is mandatory with ()
18:48 xinming m: q:w (ab c);
18:48 camelia rakudo-moar 175c4d: ( no output )
18:48 skids m: q:w (hello).say
18:48 camelia rakudo-moar 175c4d: OUTPUT«hello␤»
18:48 xinming m: q:w (ab c).say;
18:48 camelia rakudo-moar 175c4d: OUTPUT«ab c␤»
18:48 xinming m: q:w/ab c/.say;
18:48 camelia rakudo-moar 175c4d: OUTPUT«ab c␤»
18:49 xinming Ok, Thanks, the white space thing for () makes me feel unnatural exception.
18:49 skids It's necessary because there are other possible meanings.
18:49 PerlJam it seems totally natural to me :)
18:50 skids xinming: http://design.perl6.org/S02.html#Delimiters_of_quoting_forms explained here.
18:51 grondilu the gist is you should avoid using () for that
18:52 xinming because when qw:w ().say    <-- In this way, the ().say  is closer to say, which makes me feel unnatural. I'll get used to after I get more understand of it.
18:52 xinming skids: thanks
18:54 nowan_ joined #perl6
18:59 diana_olhovik_ joined #perl6
19:00 nys joined #perl6
19:02 FROGGS $ perl6-j -e 'my $p1 = shell("dir", :out); my $p2 = shell("wc", :in($p1.out), :out); say $p2.out.lines'
19:02 FROGGS 35     104    1475
19:02 FROGGS that was quite some work...
19:03 ugexe FROGGS: looks like POST testers.perl6.org/report needs some loving to accept new reports
19:03 FROGGS after adding tests I'll push to a branch so that jvm pro's can review
19:03 FROGGS ugexe: will look
19:05 FROGGS ugexe: should work now
19:06 FROGGS it looses connection to its Pg database after weeks it seems
19:06 ugexe FROGGS++ with the quickness
19:07 ugexe i was hoping it wasnt me sending bad requests
19:08 FROGGS no, that seems very unlikely
19:09 tony-o okay, got a basic prettier dumper going, the colors are still ugly..there isn't much color wheel option in a terminal
19:09 tony-o oops
19:11 tony-o http://i.imgur.com/DjFHalp.png
19:11 tony-o damnit
19:12 PerlJam tony-o++ anyway  :)
19:13 dalek perl6-examples: ae590ca | paultcochrane++ | t/categories/cookbook/13classes-objects-and-ties.t:
19:13 dalek perl6-examples: [cookbook] add a test for 13classes-objects-and-ties
19:13 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/ae590cae08
19:13 FROGGS tony-o: I like it
19:15 PerlJam Does NativeCall have a way to indicate const-ness?
19:17 spider-mario joined #perl6
19:18 dalek nqp/openpipe3: 04c2ae0 | FROGGS++ | src/vm/jvm/ (5 files):
19:18 dalek nqp/openpipe3: extend nqp::shell/nqp::spawn with in/out/err/flags params
19:18 dalek nqp/openpipe3:
19:18 dalek nqp/openpipe3: This means that we can use shell() and run() in rakudo for purposes we
19:18 dalek nqp/openpipe3: used pipe() for, but with extra freedom and flexibility.
19:18 dalek nqp/openpipe3: nqp::openpipe, as well as nqp::shell1 and nqp::shell3 are removed.
19:18 dalek nqp/openpipe3: review: https://github.com/perl6/nqp/commit/04c2ae00d4
19:18 FROGGS PerlJam: no
19:19 tony-o as soon as i add arrays to it ill give it an upload so we can start making it better
19:19 tony-o its p rough
19:22 kaare__ joined #perl6
19:22 timotimo there are terminals out there that support an escape sequence that lets you specify 256 values for R, G and B each
19:23 ugexe pipe :p deprecation messages from IO::Handle: https://github.com/rakudo/rakudo/blob/nom/src/core/IO/Handle.pm#L13
19:23 ugexe as in im not calling pipe directly. Some core feature like Proc::Async must be using it
19:27 FROGGS ugexe: are you calling CompUnit.precomp by any chance?
19:29 ugexe yeah
19:30 FROGGS that's causing it...
19:31 ugexe ah, which part? the pipe() in CompUnit.precomp doesn't have :p, and the error line itself points to that IO::Handle line
19:32 FROGGS ugexe: open(:p) is deprecated and warns, and pipe() which is meant to be used right now just calls open(:p) :o(
19:34 timotimo %)
19:35 akakcolin joined #perl6
19:35 ugexe that pipe() will just get replaced with Proc.pipe() etc fork in the future eh?
19:35 ugexe s/fork/branch/
19:39 timotimo FROGGS: großartige arbeit :)
19:39 FROGGS :D
19:40 FROGGS ugexe: will be replaced with shell(...), run(...) or Proc.new(...).shell(...) etc
19:43 kurahaupo joined #perl6
19:45 timotimo we'll end up with ten different ways to invoke external programs :\
19:46 timotimo we'll also have to have something like python's shlex module, eh?
19:47 ugexe i dont mind a billion different ways after dealing with too few ways :)
19:48 ugexe but i draw my limit at a billion
19:49 timotimo mhm
19:49 dalek rakudo/openpipe3: b9980d9 | FROGGS++ | src/core/IO/Handle.pm:
19:49 dalek rakudo/openpipe3: use nqp::shell instead of removed nqp::openpipe
19:49 dalek rakudo/openpipe3: review: https://github.com/rakudo/rakudo/commit/b9980d9579
19:50 yqt joined #perl6
19:50 dalek nqp/openpipe3: 8c606c6 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
19:50 dalek nqp/openpipe3: remove mapping for nqp::openpipe on moar
19:50 dalek nqp/openpipe3: review: https://github.com/perl6/nqp/commit/8c606c63d3
19:51 FROGGS timotimo: shell("cmd", :out) will result in a call to: Proc.new(:out).shell("cmd")
19:51 timotimo ok
19:52 FROGGS and run(@args, :out) will result in a call to: Proc.new(:out).run(@args)
19:52 FROGGS so Proc is a bit like ProcessBuilder
19:52 FROGGS dunno what shlex is though
19:54 FROGGS so the only thing that's left for openpipe3 branch is tests tests tests
19:54 timotimo parses "shell expressions" if you want to do your own argument splitting from a given string
19:54 jnthn A lower-pitched shrillex? :P
19:54 ugexe anyone have an explanation for why $cmd="(cd whatever && echo 1)": shell($cmd) will do what is expected, and Proc::Async.new($cmd) does not? is it because of that argument splitting timo just mentioned?
19:56 FROGGS ugexe: does this work? Proc::Async.new("sh -c cd whatever && echo 1")
19:56 jnthn Maybe that shell tries to invoke a shell, and Proc::Async tries to invoke a process?
19:57 skids m: role A [ :$a where { $_ == False } ] { }; class B does A[:!a] { };
19:57 camelia rakudo-moar 175c4d: ( no output )
19:57 skids m: role A [ :$a where { $_ == False } = True ] { }; class B does A[:!a] { };
19:57 camelia rakudo-moar 175c4d: OUTPUT«===SORRY!===␤No appropriate parametric role variant available for 'A'␤»
19:57 skids recent breakage
19:57 skids star: role A [ :$a where { $_ == False } = True ] { }; class B does A[:!a] { };
19:57 camelia star-m 2015.03: OUTPUT«===SORRY!===␤No appropriate parametric role variant available for 'A'␤»
19:57 skids hrm.
19:58 zacts hello
19:58 skids was not expecting that last one to fail.
19:58 jnthn skids: If planning to use named args in role variants, you'd probably better know that they don't play into the role interning in any way at all.
19:58 FROGGS hi zacts
19:58 masak hi zacts
19:59 skids I've been using named args in roles for several years now.
20:00 skids jnthn: They are actually a big part of the Sum API.
20:01 skids m: role A [ $a where { $_ == False } ] { }; class B does A[False] { }; # anyway it is not a named arg thing
20:01 camelia rakudo-moar 175c4d: ( no output )
20:01 jnthn skids: And if they've been doing the right thing in the way you have been using them I suspect they should continue to.
20:01 kst joined #perl6
20:02 skids role A [ $a where { $_ == False } = True ] { }; class B does A[False] { };
20:02 skids m: role A [ $a where { $_ == False } = True ] { }; class B does A[False] { };
20:02 camelia rakudo-moar 175c4d: OUTPUT«===SORRY!===␤No appropriate parametric role variant available for 'A'␤»
20:03 jnthn m: multi foo($a where { $_ == False } = True) { }; foo(False);
20:03 camelia rakudo-moar 175c4d: OUTPUT«Cannot modify an immutable Block␤  in sub foo at /tmp/Uyw7WhaXYZ:1␤  in block <unit> at /tmp/Uyw7WhaXYZ:1␤␤»
20:03 jnthn There you go
20:03 jnthn It's parsing the default as an assignment there somehow.
20:03 jnthn star: multi foo($a where { $_ == False } = True) { }; foo(False);
20:03 camelia star-m 2015.03: OUTPUT«Cannot modify an immutable Block␤  in method ACCEPTS at src/gen/m-CORE.setting:3867␤  in sub foo at /tmp/VWsAHlsKcO:1␤  in sub foo at /tmp/VWsAHlsKcO:1␤  in block <unit> at /tmp/VWsAHlsKcO:1␤␤»
20:03 jnthn Maybe that's what changed.
20:03 skids Oh right, I know now what must be done.  It is an old bug.
20:04 jnthn I wonder how STD parses that
20:04 jnthn I dont't know how to get STD to show the difference though
20:04 skids m: role A [ $a where { $_ == False }␤= True ] { }; class B does A[False] { };
20:04 camelia rakudo-moar 175c4d: ( no output )
20:04 skids It just seems to have crept into places it did not used to be, I think.
20:06 jnthn | where <EXPR('i=')>
20:06 skids RT#123623
20:06 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=123623
20:06 jnthn That's item assignment.
20:06 domidumont joined #perl6
20:07 jnthn But yeah, seems it's nothing to do with roles, and everything to do with signatures.
20:07 jnthn The prec limit seems right though
20:08 jnthn ohhh
20:09 jnthn if $inprec lt $preclim {
20:09 jnthn But sTD has
20:09 jnthn if $inprec le $preclim {
20:10 zacts what are the main issues rakudo perl6 is facing for developers?
20:10 zacts and what is a good newbie entrypoint into rakudo (other than learning perl6 itself)?
20:13 jnthn And if I change it in NQP to "le" then I get parse fails in NQP...
20:13 moritz zacts: https://github.com/edumentab/rakudo-and-nqp-internals-course
20:13 zacts cool
20:14 jnthn uh, maybe legitimately
20:14 zacts moritz: and how about current setbacks / issues facing developers?
20:14 zacts what are the main problems that will need to be solved to make rakudo production ready?
20:14 jnthn std: my $a; my $b; defined($a) ?? $a := $b !! $b
20:14 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Precedence of := is too loose to use between ?? and !!; please use parens around inner expression at /tmp/XJSJWP61px line 1:␤------> 3my $a; my $b; defined($a) ?? $a :=7⏏5 $b !! $b␤Parse failed␤FAILED 00:00 138m␤»
20:15 skids zacts: It's pretty complicated in there and the bus factor is a bit low.
20:18 jnthn Also, nobody has exactly the same definition of "production ready".
20:18 dalek roast: 7a175ae | usev6++ | S (2 files):
20:18 dalek roast: Use existing ticket number RT #118069
20:18 dalek roast: review: https://github.com/perl6/roast/commit/7a175ae47f
20:18 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=118069
20:19 jnthn For some people it's "need it to be faster", and working on optimization is always hard for any language 'cus you need to have a deep understanding of the language to know what you can do without getting caught. :)
20:21 jnthn For others it's "wish the concurrency was more stable", but developers who grok that area are few and far between.
20:21 jnthn For other people it's "need more modules so I can actually get stuff done"; this problem, thankfully, *is* a load easier to have many people contribute towards :)
20:22 jnthn Otherwise, it's a case of trawling through the bug queue and trying to deal with the most painful issues, but those can vary from "10 minutes" to "10 days".
20:26 jnthn There's sometimes bits of low hanging fruit, and it's worth picking in so far as some of it is directly about developer experience using Rakudo, and a bad failure mode can be enough for some people to be like "argh, not ready".
20:27 hoelzro speaking of LHF, I was just talking to Milwaukee.pm about that last night after my hacking on Rakudo tal
20:27 hoelzro *talk
20:27 uncleyear joined #perl6
20:28 hoelzro people are eager to start helping with bugs, but it's not easy to identify what's easy and what's not in RT
20:28 hoelzro so I'm wondering if we should have a "low hanging fruit" tag
20:28 jnthn std: 1 ?? 2 ?? 3 !! 4 !! 5
20:28 camelia std 28329a7: OUTPUT«ok 00:00 136m␤»
20:28 jnthn std: 1 ?? 2 ?? first 3 !! first 4 !! 5
20:28 camelia std 28329a7: OUTPUT«5===SORRY!5===␤List operator is not allowed inside ??!!; please use parens at /tmp/C8v1Oqd_85 line 1:␤------> 1 ?? 2 ?? first 3 !!7⏏5 first 4 !! 5␤Parse failed␤FAILED 00:00 136m␤»
20:28 Khisanth joined #perl6
20:29 bin_005 joined #perl6
20:30 masak hoelzro: didn't we have a "low hanging fruit" tag in RT at some point?
20:30 jnthn LHF
20:30 jnthn And yeah, it's been used
20:30 jnthn maybe is somewhere else
20:30 masak maybe it's still there? :)
20:31 jnthn std: class C { multi method tree(Any:D: *@ [&first, *@rest]) { nqp::istype(self,Positional) ?? @rest ?? first(MapIter.new(self.list, { .tree(|@rest) }, Mu).list) !! first(self.list) !! self
20:31 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Unable to parse block at /tmp/xUDz0vPPVS line 1:␤------> 3method tree(Any:D: *@ [&first, *@rest]) 7⏏5{ nqp::istype(self,Positional) ?? @rest ␤Couldn't find final '}'; gave up at /tmp/xUDz0vPPVS line 1 (EOF):␤------> 3}, Mu).list)…»
20:31 jnthn std: class C { multi method tree(Any:D: *@ [&first, *@rest]) { nqp::istype(self,Positional) ?? @rest ?? first(MapIter.new(self.list, { .tree(|@rest) }, Mu).list) !! first(self.list) !! self } }
20:31 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared name:␤        'MapIter' used at line 1␤Undeclared routine:␤   'nqp::istype' used at line 1␤Check failed␤FAILED 00:00 152m␤»
20:31 jnthn std: sub istype() { }; class C { multi method tree(Any:D: *@ [&first, *@rest]) { istype(self,Positional) ?? @rest ?? first(MapIter.new(self.list, { .tree(|@rest) }, Mu).list) !! first(self.list) !! self } }
20:31 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared name:␤        'MapIter' used at line 1␤Check failed␤FAILED 00:00 152m␤»
20:31 hoelzro I don't see it in RT
20:31 jnthn std: sub istype() { }; class MapIter { }; class C { multi method tree(Any:D: *@ [&first, *@rest]) { istype(self,Positional) ?? @rest ?? first(MapIter.new(self.list, { .tree(|@rest) }, Mu).list) !! first(self.list) !! self } }
20:31 camelia std 28329a7: OUTPUT«ok 00:00 153m␤»
20:31 jnthn bah
20:34 jnthn std: sub istype() { }; class MapIter { }; class C { multi method tree(Any:D: *@ [&first, *@rest]) { istype(self,Positional) ?? @rest ?? first MapIter.new(self.list, { .tree(|@rest) }, Mu).list !! first self.list !! self } }
20:34 camelia std 28329a7: OUTPUT«5===SORRY!5===␤List operator is not allowed inside ??!!; please use parens at /tmp/8gt7yMDMJK line 1:␤------> 3elf.list, { .tree(|@rest) }, Mu).list !!7⏏5 first self.list !! self } }␤Parse failed␤FAILED 00:00 150m␤»
20:35 dalek rakudo/nom: d474242 | jnthn++ | src/core/Any.pm:
20:35 dalek rakudo/nom: Fix listop use inside ?? ... !!
20:35 dalek rakudo/nom:
20:35 dalek rakudo/nom: We don't yet choke on it like STD does, but when we start to this will
20:35 dalek rakudo/nom: be a problem.
20:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d474242434
20:36 bartolin hoelzro: I think, it's just using [LHF] in the subject. Actually, there are a total of 30 tickets with this tag -- but only one of those is not resolved ...
20:38 jnthn Heh, we actually had in infix:sym<?? !!> a hack that uses the wrong prec level because EXPR did lt instead of le :)
20:38 masak hah!
20:39 jnthn With that fixed, we make it through the Rakudo build and "make test"
20:39 jnthn And it fixes the parse bug with the default
20:40 timotimo good catch
20:40 jnthn Now for the spectest fallout...
20:40 naptastic joined #perl6
20:40 jnthn ugh, there is some too
20:40 naptastic p6: my $foo='string'; say "barf {$foo} frab"
20:40 camelia rakudo-moar 175c4d: OUTPUT«barf string frab␤»
20:41 naptastic p6: my $foo='string'; say "barf {} frab"
20:41 camelia rakudo-moar 175c4d: OUTPUT«Use of Nil in string context  in block <unit> at /tmp/tmpfile:1␤barf  frab␤»
20:41 naptastic p6: my $foo='string'; say "barf \{} frab"
20:41 camelia rakudo-moar 175c4d: OUTPUT«barf {} frab␤»
20:41 naptastic p6: my $foo='string'; say "barf {\} frab"
20:41 camelia rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤You can't backslash that␤at /tmp/tmpfile:1␤------> 3my $foo='string'; say "barf {\7⏏5} frab"␤    expecting any of:␤        prefix␤        term␤»
20:41 naptastic Is there a way to use curlies in an interpolating string in Perl 6 without escaping them?
20:41 labster jnthn++ for the compiler reserved ops error, very nice.
20:42 masak naptastic: yes, there is some Q flag that'll turn brace interpolation off
20:42 jnthn naptastic: Use a quoting construct that defines what sort of things to interpolate
20:42 naptastic Guess I have some more reading to do
20:42 masak S02 has the details
20:43 naptastic p6: my $foo='string'; say qq/ barf {} frab /;
20:43 camelia rakudo-moar 175c4d: OUTPUT«Use of Nil in string context  in block <unit> at /tmp/tmpfile:1␤ barf  frab ␤»
20:43 jnthn m: my $x = 'nyan'; say q:s"$x cat ~=={.^.}"
20:43 camelia rakudo-moar 175c4d: OUTPUT«nyan cat ~=={.^.}␤»
20:43 naptastic Oh my! I do have some reading to do!
20:44 jnthn q is the thing that knows about backslash escapes, and :s turns on interpolating scalars
20:44 jnthn I think I did an advent blog post on quoting stuff a couple of years ago...
20:45 jnthn Though there's a decent chance this is described in doc.perl6.org somewhere too...
20:45 beastd joined #perl6
20:45 labster No, http://doc.perl6.org/language/quoting needs a bit more
20:46 jnthn Feel free to steal examples from the blog post :)
20:46 jnthn Unlucky. 13 spectests have regressiosn thanks to my EXPR fixes...
20:46 labster m: my $x = 'nyan'; say qq:!c"$x cat ~=={.^.}"  # just turns off closure interpolation
20:46 camelia rakudo-moar 175c4d: OUTPUT«nyan cat ~=={.^.}␤»
20:47 jnthn Aye, that's another way
20:47 jnthn Also, there's gotta be a better ascii art nyan cat...
20:48 naptastic btw
20:48 naptastic ^..^ is a bat
20:48 naptastic I don't care what anyone else says
20:48 labster naptastic: http://design.perl6.org/S02.html#Adverbs_on_quotes
20:48 naptastic it's a bat.
20:48 salva joined #perl6
20:48 naptastic oh gawd, :x
20:48 labster yes, that's Perl 6's bat operator
20:48 masak naptastic: when Gotham needs help, they project ^..^ onto the clody sky.
20:49 labster when masak needs help, he projects »ö«
20:49 masak Camelia, I summon thee!
20:50 jnthn m: 'nananananananana' ^..^ 'man!'
20:50 camelia rakudo-moar d47424: ( no output )
20:51 naptastic p6: say q:x/ls -al/;
20:51 camelia rakudo-moar d47424: OUTPUT«qx, qqx is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:1␤  in sub QX at src/RESTRICTED.setting:11␤  in block <unit> at /tmp/tmpfile:1␤␤»
20:51 japhb .oO( Nana-na-na, nana-na-na, heeyyy, GOODBYE )
20:51 naptastic Ok, good, that's what I thought
20:52 labster obligatory: http://xkcd.com/851/
20:52 [ptc] done;
20:52 [ptc] exit 0;
20:53 [ptc] sorry!
20:53 timotimo FINISH SECTION
20:53 labster __END__
20:58 masak :q!
20:59 jnthn std: my @foo; my $exists = @foo[0]:exists;
20:59 camelia std 28329a7: OUTPUT«ok 00:00 140m␤»
20:59 masak sexists!
20:59 PerlJam https://gist.github.com/perlpilot/525c50dc95880e7388a2
21:00 masak PerlJam: that's for loading a library? wow.
21:00 jnthn grmbl. My preclimit handling fix has also broked something to do with adverbs
21:01 PerlJam masak: See https://github.com/perlpilot/p6-lapacke if you want to try it yourself.
21:01 labster ESLOWNESS
21:01 PerlJam (it's a simple interface to LAPACK)
21:01 jnthn PerlJam: Did you precomp any of that?
21:01 PerlJam no. I did not.
21:02 jnthn OK, so it's probably mostly parse/compilation time.
21:02 PerlJam Aye.
21:02 jnthn (Which we still need to get faster.)
21:06 PerlJam This is actually the first time I've tried to load anything so big and even really noticed that the compilation time was so long.
21:06 naptastic Yes please :(
21:06 masak PerlJam: it reminds me of the November load times back in 2008 :)
21:07 masak PerlJam: we just look at them and went "ok, this is not web scale"
21:07 masak it baseically forced us to precompile.
21:08 jnthn std: my @foo; (my $exists = @foo[0]):exists;
21:08 camelia std 28329a7: OUTPUT«ok 00:01 141m␤»
21:08 jnthn Does anybody have an STD?
21:08 masak *snrk*
21:08 jnthn If so, could you get me the AST it spits out for
21:08 jnthn std: my @foo; my $exists = @foo[0]:exists;
21:08 camelia std 28329a7: OUTPUT«ok 00:00 140m␤»
21:09 jnthn Because I think STD is getting it wrong.
21:09 jnthn And attaching the :exists adverb wrongly
21:09 jnthn 'cus infixish has prec i=
21:09 jnthn (%item_assignment)
21:09 jnthn And we preclimit to %item_assignment for initializers
21:10 jnthn So we end up trying to adverb completely the wrong thing.
21:10 dalek perl6-examples: 1fea69c | paultcochrane++ | categories/cookbook/09directories/09-05-all-files-dir.pl:
21:10 dalek perl6-examples: [cookbook] pass dir to process as command line arg
21:10 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/1fea69c810
21:10 dalek perl6-examples: da6fc19 | paultcochrane++ | categories/cookbook/09directories/09-05-all-files-dir.pl:
21:10 dalek perl6-examples: [cookbook] be slightly more explicit about what's being processed
21:11 dalek joined #perl6
21:13 bartolin jnthn: my STD is from October 2014. That's probably too old?
21:13 jnthn bartolin: It's probably fine actually
21:13 jnthn bartolin: I doubt this aspect has changed for a couple of years
21:13 jnthn Because STD only parses, this thing coulda easily gone unknown for a long time
21:14 bartolin jnthn: ok, is that what you need: https://gist.github.com/usev6/3697d60ce7fe77f0d680
21:14 jnthn And Rakudo's had a bug that's been hiding it.
21:14 espadrine joined #perl6
21:14 bin_005 joined #perl6
21:15 jnthn bartolin: Yes
21:15 jnthn Would lvoe second opinions, but that looks busted
21:16 jnthn The VAST::Adverb is on the scope declarator
21:17 naptastic left #perl6
21:18 jnthn bartolin: Thanks, I think that confirms I'm looking at STD bug.
21:18 jnthn Unfortunately, I don't immediately know what to do about this...
21:18 espadrine_ joined #perl6
21:18 bartolin yw
21:20 timotimo looks like something TimToady ought to have a look at
21:21 jnthn Yeah, that's what I'm concluding, given every alternative I can think of has drawbacks
21:21 timotimo ISTR timtoady wrote what he'll be doing tomorrow; traveling?
21:22 jnthn Yeah, though maybe I can get an answer if he drops by :)
21:23 timotimo that'd be nice
21:24 jnthn .tell TimToady in STD, "my $exists = @foo[0]:exists" puts the adverb on the whole scope decl, because adverbs have item assignment precedence, put the initializer preclimits to item assignment. In Rakudo we wrongly had preclimit doing exclusive, not inclusive, checking, so we never noticed until now.
21:24 yoleaux jnthn: I'll pass your message to TimToady.
21:25 masak jnthn++
21:26 jnthn .tell TimToady s/put/but/. Also I don't immediately see a good fix; I suspect changing adverb's prec will have bad effects, but initializer doesn't feel like the right change either. Ideas welcome. :)
21:26 yoleaux jnthn: I'll pass your message to TimToady.
21:26 masak jnthn: my mental rule for what the adverb ends up attached to is "look backwards, find the root of the sensible AST fragment". what you're saying here is that it finds the '=', not the '[0]' ?
21:27 masak well, the '=' *is* a higher point in the AST than '[0]'...
21:28 jnthn masak: According to the VAST, it finds the whole scope decl
21:28 jnthn masak: Thing is, the = there is not parsed as an infix
21:28 jnthn masak: Initializers are a special form.
21:28 masak oh?
21:28 masak oh, right.
21:28 jnthn Thus why we hit the preclimit.
21:29 jnthn I suspect this issue can be made to manifest itself somehwere else, though, with enough creativity
21:29 nowan joined #perl6
21:29 jnthn sub foo(@a, $b = @a[0]:exists) { } # probably also suffers it
21:29 masak well, thinking about it, I wouldn't mind if adverbs couldn't go on initializers or assignments. I've never wanted that, and I can't recall anyone ever expressing a need for that.
21:30 jnthn masak: Right, I think we agree that "my $exists = @foo[0]:exists" should see the adverb go onto the @foo[0]
21:30 jnthn masak: The problem is that in Rakudo it only did because we had a bug with preclimit handling.
21:30 masak nodnod
21:30 jnthn masak: And when I bring us in line with STD, I uncovered that STD also has this wrong.
21:30 masak intriguing!
21:30 masak fix one thing, another problem plops up.
21:30 masak it's like a waterbed of correctness ;)
21:31 jnthn Something like :)
21:39 vendethiel joined #perl6
21:41 espadrine joined #perl6
21:43 naptastic joined #perl6
21:44 naptastic p6: my $foo='barf'; say ͼ is $foo foo? ͽ
21:44 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> 3my $foo='barf'; say ͼ is $foo7⏏5 foo? ͽ␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement …»
21:44 naptastic p6: my $foo='barf'; say ͼ is foo? ͽ
21:44 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Bogus postfix␤at /tmp/tmpfile:1␤------> 3my $foo='barf'; say ͼ is foo7⏏5? ͽ␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤    …»
21:47 naptastic p6: my $foo = 'bar'; $foo =~ s߷ar߷az߷; say $foo;
21:47 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~␤at /tmp/tmpfile:1␤------> 3my $foo = 'bar'; $foo =~7⏏5 s߷ar߷az߷; say $foo;␤»
21:48 naptastic p6: my $foo = 'bar'; $foo ~~ s߷ar߷az߷; say $foo;
21:48 camelia rakudo-moar d47424: OUTPUT«baz␤»
21:48 naptastic p6: my $foo = 'bar'; $foo ~~ s߷ar߷az߷; print $foo;
21:48 camelia rakudo-moar d47424: OUTPUT«baz»
21:49 naptastic p6: my $foo = 'bar'; $foo ~~ s«ar»«az»; print $foo;
21:49 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Missing infix inside hyper␤at /tmp/tmpfile:1␤------> 3my $foo = 'bar'; $foo ~~ s«ar»«7⏏5az»; print $foo;␤    expecting any of:␤        infix␤        infix stopper␤»
21:50 naptastic hmm... why didn't it like that?
21:50 naptastic p6: my $foo = 'bar'; $foo ~~ s<<ar>><<az>>; print $foo;
21:50 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Unsupported use of brackets around replacement; in Perl 6 please use assignment syntax␤at /tmp/tmpfile:1␤------> 3my $foo = 'bar'; $foo ~~ s<<ar>>7⏏5<<az>>; print $foo;␤»
21:50 naptastic p6: my $foo = 'bar'; $foo ~~ s<ar><az>; print $foo;
21:50 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Unsupported use of brackets around replacement; in Perl 6 please use assignment syntax␤at /tmp/tmpfile:1␤------> 3my $foo = 'bar'; $foo ~~ s<ar>7⏏5<az>; print $foo;␤»
21:50 naptastic wtf?
21:50 * naptastic goes to read
21:51 FROGGS p6: my $foo = 'bar'; $foo ~~ s«ar» = 'az'; print $foo;
21:51 camelia rakudo-moar d47424: OUTPUT«baz»
21:51 masak FROGGS++ # faster
21:51 masak m: my $foo = 'bar'; $foo ~~ s/ar/az/; print $foo;
21:51 camelia rakudo-moar d47424: OUTPUT«baz»
21:52 jnthn p6: my $foo = 'b51 bomber'; $foo ~~ s<\d+> += 1; print $foo;
21:52 camelia rakudo-moar d47424: OUTPUT«b52 bomber»
21:52 jnthn Just had to show that one off :P
21:52 masak naptastic: only when you use open/close delimiters is there a parsing problem.
21:52 naptastic Hah, ok.
21:52 masak naptastic: I never quite understood what the parsing problem *was*, but it's a limitation I freely admit resides in me, not in Perl 6 ;)
21:53 naptastic That's... going to take some getting used to.
21:53 naptastic I use s{}{} all the time, to avoid the 'dancing matchsticks' effect
21:53 masak the good news, as jnthn++ hints at, is that we gained quite a bit of expressive power.
21:58 vendethiel \o #perl6 o/
22:00 masak o/ \o
22:09 dalek ecosystem: f68db9e | tony-o++ | META.list:
22:09 dalek ecosystem: weeeee, a data::dump
22:09 dalek ecosystem:
22:09 dalek ecosystem: dump until your colorful heart's content with this great new module from the same guy that wrote at least one other module.  when you use this module, you will feel fulfilled or frustrated or some other word that begins with ```f```.  cool.
22:09 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/f68db9e9ee
22:13 masak :)
22:17 jnthn f yeah!
22:29 naptastic Has anyone made a comprehensive list of which pairing characters can be used together?
22:30 masak 'night, #perl6
22:31 naptastic night masak
22:31 vendethiel 'night
22:32 jnthn naptastic: https://github.com/perl6/nqp/blob/master/src/HLL/Grammar.nqp#L4
22:33 jnthn (It's comprehensive by definition 'cus it's the one the parser uses. :))
22:33 naptastic Hahahaha
22:33 naptastic thanks jnthn! It's not very pretty as-is, but I can work with it.
22:33 naptastic hmm, I wonder...
22:34 naptastic p6: say "<>[]()\{}\x[0028]\x[0029]\x[003C]\x[003E]\x[005B]\x[005D]\x[007B]\x[007D]\x[00AB]\x[00BB]\x[0F3A]\x[0F3B]\x[0F3C]\x[0F3D]\x[169B]\x[169C]\x[2018]\x[2019]\x[201A]\x[2019]\x[201B]\x[2019]\x[201C]\x[201D]\x[201E]\x[201D]\x[201F]\x[201D]\x[2039]\x[203A]\x[2045]\x[2046]\x[207D]\x[207E]\x[208D]\x[208E]\x[2208]\x[220B]\x[2209]\x[220C]\x[220A]\x[220D]\x[2215]\x[29F5]\x[223C]\x[223D]\x[2243]\x[22CD]\x[2252]\x[2253]\x[2254]\x[
22:34 naptastic 2255]\x[2264]\x[2265]\x[2266]\x[2267]\x[2268]\x[2269]\x[226A]\x[226B]\x[226E]\x[226F]\x[2270]\x[2271]\x[2272]\x[2273]\x[2274]\x[2275]\x[2276]\x[2277]\x[2278]\x[2279]\x[227A]\x[227B]\x[227C]\x[227D]\x[227E]\x[227F]\x[2280]\x[2281]\x[2282]\x[2283]\x[2284]\x[2285]\x[2286]\x[2287]\x[2288]\x[2289]\x[228A]\x[228B]\x[228F]\x[2290]\x[2291]\x[2292]\x[2298]\x[29B8]\x[22A2]\x[22A3]\x[22A6]\x[2ADE]\x[22A8]\x[2AE4]\x[22A9]\x[2AE3]\x[22AB]
22:34 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5===␤Unrecognized backslash sequence: '\x'␤at /tmp/tmpfile:1␤------> 2243]\x[22CD]\x[2252]\x[2253]\x[2254]\x[7⏏5<EOL>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/tmpfile:1␤------> 2243]…»
22:34 naptastic \x[2AE5]\x[22B0]\x[22B1]\x[22B2]\x[22B3]\x[22B4]\x[22B5]\x[22B6]\x[22B7]\x[22C9]\x[22CA]\x[22CB]\x[22CC]\x[22D0]\x[22D1]\x[22D6]\x[22D7]\x[22D8]\x[22D9]\x[22DA]\x[22DB]\x[22DC]\x[22DD]\x[22DE]\x[22DF]\x[22E0]\x[22E1]\x[22E2]\x[22E3]\x[22E4]\x[22E5]\x[22E6]\x[22E7]\x[22E8]\x[22E9]\x[22EA]\x[22EB]\x[22EC]\x[22ED]\x[22F0]\x[22F1]\x[22F2]\x[22FA]\x[22F3]\x[22FB]\x[22F4]\x[22FC]\x[22F6]\x[22FD]\x[22F7]\x[22FE]\x[2308]\x[2309]\x[23
22:34 naptastic 0A]\x[230B]\x[2329]\x[232A]\x[23B4]\x[23B5]\x[2768]\x[2769]\x[276A]\x[276B]\x[276C]\x[276D]\x[276E]\x[276F]\x[2770]\x[2771]\x[2772]\x[2773]\x[2774]\x[2775]\x[27C3]\x[27C4]\x[27C5]\x[27C6]\x[27D5]\x[27D6]\x[27DD]\x[27DE]\x[27E2]\x[27E3]\x[27E4]\x[27E5]\x[27E6]\x[27E7]\x[27E8]\x[27E9]\x[27EA]\x[27EB]\x[2983]\x[2984]\x[2985]\x[2986]\x[2987]\x[2988]\x[2989]\x[298A]\x[298B]\x[298C]\x[298D]\x[298E]\x[298F]\x[2990]\x[2991]\x[2992]\x
22:34 naptastic [2993]\x[2994]\x[2995]\x[2996]\x[2997]\x[2998]\x[29C0]\x[29C1]\x[29C4]\x[29C5]\x[29CF]\x[29D0]\x[29D1]\x[29D2]\x[29D4]\x[29D5]\x[29D8]\x[29D9]\x[29DA]\x[29DB]\x[29F8]\x[29F9]\x[29FC]\x[29FD]\x[2A2B]\x[2A2C]\x[2A2D]\x[2A2E]\x[2A34]\x[2A35]\x[2A3C]\x[2A3D]\x[2A64]\x[2A65]\x[2A79]\x[2A7A]\x[2A7D]\x[2A7E]\x[2A7F]\x[2A80]\x[2A81]\x[2A82]\x[2A83]\x[2A84]\x[2A8B]\x[2A8C]\x[2A91]\x[2A92]\x[2A93]\x[2A94]\x[2A95]\x[2A96]\x[2A97]\x[2A98
22:34 timotimo yeah, no, that ain't gonna fly :)
22:34 naptastic ]\x[2A99]\x[2A9A]\x[2A9B]\x[2A9C]\x[2AA1]\x[2AA2]\x[2AA6]\x[2AA7]\x[2AA8]\x[2AA9]\x[2AAA]\x[2AAB]\x[2AAC]\x[2AAD]\x[2AAF]\x[2AB0]\x[2AB3]\x[2AB4]\x[2ABB]\x[2ABC]\x[2ABD]\x[2ABE]\x[2ABF]\x[2AC0]\x[2AC1]\x[2AC2]\x[2AC3]\x[2AC4]\x[2AC5]\x[2AC6]\x[2ACD]\x[2ACE]\x[2ACF]\x[2AD0]\x[2AD1]\x[2AD2]\x[2AD3]\x[2AD4]\x[2AD5]\x[2AD6]\x[2AEC]\x[2AED]\x[2AF7]\x[2AF8]\x[2AF9]\x[2AFA]\x[2E02]\x[2E03]\x[2E04]\x[2E05]\x[2E09]\x[2E0A]\x[2E0C]\x[2
22:34 tony-o nice
22:34 naptastic E0D]\x[2E1C]\x[2E1D]\x[2E20]\x[2E21]\x[3008]\x[3009]\x[300A]\x[300B]\x[300C]\x[300D]\x[300E]\x[300F]\x[3010]\x[3011]\x[3014]\x[3015]\x[3016]\x[3017]\x[3018]\x[3019]\x[301A]\x[301B]\x[301D]\x[301E]\x[FD3E]\x[FD3F]\x[FE17]\x[FE18]\x[FE35]\x[FE36]\x[FE37]\x[FE38]\x[FE39]\x[FE3A]\x[FE3B]\x[FE3C]\x[FE3D]\x[FE3E]\x[FE3F]\x[FE40]\x[FE41]\x[FE42]\x[FE43]\x[FE44]\x[FE47]\x[FE48]\x[FE59]\x[FE5A]\x[FE5B]\x[FE5C]\x[FE5D]\x[FE5E]\x[FF08]\
22:34 naptastic x[FF09]\x[FF1C]\x[FF1E]\x[FF3B]\x[FF3D]\x[FF5B]\x[FF5D]\x[FF5F]\x[FF60]\x[FF62]\x[FF63]";
22:34 naptastic oooooookay nope nevermind.
22:34 tony-o put it in a gist
22:35 naptastic I swear I've got Perl 6 installed here someplace...
22:36 naptastic perl6 -e 'say "(blablablalbalbrarrrrgh)";' gave some pretty impressive output, almost all of which was actually readable!
22:37 naptastic Clearly I need to invest in a better terminal font though ;)
22:37 tony-o you can put your perl6 stuff in a gist and do p6: <link to gist>
22:39 naptastic ooh! That's useful!
22:39 naptastic What's gist?
22:39 timotimo gist.github.com is gist
22:40 naptastic p6: https://gist.github.com/naptastic/27da641c292d33e40ead
22:40 camelia rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/tmpfile:1␤------> 3FF5D]\x[FF5F]\x[FF60]\x[FF62]\x[FF63]";'7⏏5<EOL>␤    expecting any of:␤        single quo…»
22:40 cognominal joined #perl6
22:40 timotimo it's the one nopaste service camelia understands
22:40 timotimo no private pastes, though
22:40 naptastic d'oh
22:40 timotimo :)
22:40 naptastic p6: https://gist.github.com/naptastic/06bb2c16a3f1a618b87a
22:40 tony-o m: https://gist.github.com/tony-o/9bff8e7c78fc484fba1f
22:40 camelia rakudo-moar d47424: OUTPUT«<>[](){}()<>[]{}«»༺༻༼༽᚛᚜‘’‚’‛’“”„”‟”‹›⁅⁆⁽⁾₍₎∈∋∉∌∊∍∕⧵∼∽≃⋍≒≓≔≕≤≥≦≧≨≩≪≫≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉…»
22:40 camelia rakudo-moar d47424: OUTPUT«like this␤»
22:44 tony-o should this line also include 'lib'? -> https://github.com/tadzik/panda/blob/master/lib/Panda.pm#L166
22:44 jnthn sleep &
22:45 naptastic aw man, camelia truncated the output!
22:59 naptastic utf8 ༺
23:22 timotimo hmm
23:22 timotimo i never put nqp::getcodelocation into any method or so for code objects
23:25 skids Been noticing "MVMArray: Can't pop from an empty array" lately during inside backtrace generation.  Here's a one-liner:
23:25 skids m: '%s : %s'.fmt(1).say
23:25 camelia rakudo-moar d47424: OUTPUT«Directives specify 0 arguments, but 1 argument was supplied␤<Internal error while creating backtrace: MVMArray: Can't pop from an empty array   in method AT-POS at src/gen/m-CORE.setting:14727␤  in method next-interesting-index at src/gen/m-CORE.settin…»
23:26 skids Seen it in more places than that though.
23:34 skarn joined #perl6
23:38 grandtheftjiujit joined #perl6
23:40 grandtehftjiujit joined #perl6
23:47 timotimo where does that pop? :\
23:59 dj_goku joined #perl6
23:59 dj_goku joined #perl6
23:59 timotimo ah

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

Perl 6 | Reference Documentation | Rakudo