»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:03
laouji joined
|
|||
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:03 | |
00:04
gfldex left
00:25
kst] left
00:26
kst] joined
00:27
akakcolin joined
|
|||
colomon | Any chance of getting a 32-bit Rakudo running on my Windows XP VM? | 00:27 | |
colomon grabs the R* MSI from March | 00:28 | ||
00:30
FROGGS left
|
|||
colomon | hmmm, seems to work | 00:30 | |
00:39
laouji left
00:40
laouji joined
00:44
colomon left,
laouji left
00:45
Akagi201 joined,
laouji joined
|
|||
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:47 | |
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 | ||
*2) A working Perl 6 compiler came along. | |||
b2gills | Perl5 does have lexical subs, if you precede them with `my` added in 5.20 | 00:52 | |
perldoc.perl.org/perl5200delta.html...ubroutines | 00:53 | ||
oops it was added in 5.18: perldoc.perl.org/perl5180delta.html...ubroutines | |||
00:58
colomon joined
|
|||
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:00 | |
colomon | my $tess_stuff = ""; | 01:01 | |
Variable '$tess_stuff' is not declared | |||
hmm? | |||
how is it that I’ve … oh, hmmm | 01:02 | ||
dang it, p5’s heredoc << is just a texas open quote in p6, isn’t it? | 01:06 | ||
qq:to | 01:11 | ||
01:11
yeahnoob joined
01:16
akakcolin left,
akakcolin joined
|
|||
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:24 | |
01:35
dayangkun joined
01:46
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
tony-o | what's your bat file look like | 01:46 | |
ugexe | probably double clicking a batch file | 01:47 | |
tony-o | @ECHO on ::for life | 01:48 | |
colomon | set MV_MODELER=nmtlib | 01:51 | |
perl6 build/make_utils_projects.pl %MV_MODELER -on -jt -express +sw | |||
nmake /fsource_makefile | |||
etc | |||
01:51
TimToady left
|
|||
colomon | it never gets to the nmake | 01:51 | |
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 | ||
tony-o | that means that it's definitely a problem with the bat file | 01:53 | |
colomon | ? | ||
01:53
TimToady joined
|
|||
tony-o | what's the output of that perl6 command by itself | 01:54 | |
did you try renaming the bat file? | 01:55 | ||
colomon | wait, you mean my bat file, or the perl6 bat file? | 01:56 | |
tony-o | the perl6 bat file | 01:57 | |
colomon | ah | ||
tony-o | if you're starting a perl6 bat file then you need to use 'call' in the bat | ||
colomon | tony-o++ | 01:58 | |
that did it. brill! | |||
colomon suspects he knew that rule once, but has long since switched away from using Windows. | 02:02 | ||
02:03
BenGoldberg joined
|
|||
b2gills | I know! I knew that rule once ( back in the 90's ) | 02:06 | |
grondilu | a new compilation target to look at? techcrunch.com/2015/06/17/google-mi...or-the-web | 02:07 | |
02:17
steve_mc left
02:18
noganex_ joined
02:21
noganex left
02:30
steve_mc joined
02:32
zostay left,
zostay joined
02:38
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
02:40
zostay left,
zostay joined
02:44
yqt left
02:50
zostay left,
zostay joined
02:54
zostay left
02:55
zostay joined
02:56
telex left
02:58
telex joined
03:11
CQ_ joined
03:13
CQ left,
CQ_ is now known as CQ
03:22
vendethiel- left
03:28
austin joined,
austin left
03:29
cheshire joined,
cheshire left,
cheshire joined
03:30
cheshire left
03:34
kaare_ joined
03:35
aborazmeh left
03:43
davido__ left,
nys left
03:45
davido__ joined
03:53
Cheshire joined
03:56
Cheshire left
04:07
Sqirrel left
04:20
nige joined
04:25
Sqirrel joined
04:30
mudguts joined
|
|||
mudguts | Hello all - does anyone know where there's an example of CANDO - perl6's AUTOLOAD? | 04:33 | |
04:45
mudguts left
04:54
nige left
04:58
BenGoldberg left
|
|||
ugexe | github.com/perl6/roast/blob/master...spection.t ? | 05:01 | |
05:02
diegok left
|
|||
ugexe | honestly not sure if .cando and .CANDO were/are the same thing | 05:04 | |
05:05
diegok joined
05:14
domidumont joined
05:15
dayangkun left,
muethos joined
05:16
kst left
05:19
domidumont left
05:20
domidumont joined
05:22
dayangkun joined
|
|||
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:32 | |
05:33
muethos left
|
|||
TEttinger | 'Parse::ErrorString::Perl' seems to be the culprit | 05:33 | |
error log: pastie.org/private/bqrtfct0pn2ohknjfsmng#11 | 05:34 | ||
anyone have a perl6-syntax-aware editor that they recommend? | 05:35 | ||
dalek | osystem: 94fa0e1 | (Sterling Hanenkamp)++ | META.list: Adding KnottyPair to the Perl ecosystem |
05:39 | |
05:47
[TuxCM] left
05:54
FROGGS joined
06:03
RabidGravy joined
|
|||
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 | ||
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:09 | |
06:10
diana_olhovik joined
06:14
akakcolin left
06:17
Sqirrel left
06:22
JimmyZ_ joined
06:24
gfldex joined,
JimmyZ_ left
06:30
mudguts joined,
kaare__ joined
|
|||
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:32 | |
But I cant find a single mention of it *anywhere* else | 06:33 | ||
06:34
kaare_ left
06:35
JimmyZ_ joined
|
|||
moritz | I don't think it's implemented | 06:36 | |
06:36
JimmyZ_ left
|
|||
moritz | we have FALLBACK though | 06:36 | |
06:37
domidumont left,
akakcolin joined
06:39
AlexDaniel left
|
|||
mudguts | Can you tell me where I can find a FALLBACK example? | 06:44 | |
skids | I think I used it in Grammar::ABNF. | ||
To case-fold rule names. | |||
mudguts | <looking> bbl | 06:45 | |
06:45
domidumont joined
06:46
_mg_ joined
06:47
akakcoli_ joined
06:48
Sqirrel joined
06:50
akakcolin left
|
|||
RabidGravy | mudguts, in summary | 06:50 | |
m: class Foo { method FALLBACK(*@args) { say "goo" } }; Foo.new.goo | 06:51 | ||
camelia | rakudo-moar df0c3a: OUTPUT«goo» | ||
RabidGravy | though | 06:53 | |
m: class Foo { method FALLBACK($name, *@args) { say $name, @args } }; Foo.new.goo; Foo.new.blar("zub") | |||
camelia | rakudo-moar df0c3a: OUTPUT«gooblarzub» | ||
RabidGravy | may make it clearer how it works, it's somewhat tidier that p5's AUTOLOAD | 06:54 | |
masak | morning, #perl6 | 06:57 | |
RabidGravy | marnin | ||
moritz | \o masak | ||
06:58
rindolf joined
|
|||
masak | m: say "m{<a o>.roll}rni{<n ng>.roll}" | 06:58 | |
camelia | rakudo-moar df0c3a: OUTPUT«marning» | ||
masak | m: say "m{<a o>.roll}rni{<n ng>.roll}" for ^3 | ||
camelia | rakudo-moar df0c3a: OUTPUT«morninmorningmornin» | ||
mudguts | <back again>... | 07:00 | |
07:01
skids left
07:02
Ven joined
|
|||
mudguts | RabidGravy: Thankyou for the explanation. | 07:04 | |
Last question (I hope) - Is there something like indirect object syntax that allows one to lead with a method name? | |||
RabidGravy | in summary, no | 07:06 | |
mudguts | Cool. I'll go fiddle with FALLBACK. cheers. | 07:07 | |
masak | waitwait, there *is* such a syntax. | 07:08 | |
mudguts | still here | 07:09 | |
masak | m: say abs: -42 | ||
camelia | rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kbd6qsxgiLUnsupported use of bare "abs"; in Perl 6 please use .abs if you meant $_, or use an explicit invocant or argumentat /tmp/kbd6qsxgiL:1------> 3say abs7⏏5: -42» | ||
masak | hm. | ||
m: say abs -42: | |||
camelia | rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S8JDkgecAdConfusedat /tmp/S8JDkgecAd:1------> 3say abs -42:7⏏5<EOL> expecting any of: colon pair» | ||
masak | though maybe I don't *know* the syntax... :) | ||
moritz knows why he doesn't like indirect object syntax | |||
masak checks S12 | 07:10 | ||
mudguts | no dont... I can do that | ||
I'll do so and come back here if I have more questions | |||
masak | m: class C { method close { say "OH HAI" } }; my $handle = C.new; close $handle:; | ||
camelia | rakudo-moar df0c3a: OUTPUT«OH HAI» | ||
masak | there you go. | ||
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... :-) | ||
masak | S12:298, fwiw. | ||
synbot6 | Link: design.perl6.org/S12.html#line_298 | ||
mudguts | Many thanks. I'll go fiddle with FALLBACK *and* indirect-object-like syntax | 07:12 | |
masak | \o/ | ||
FROGGS | masak: abs is probably parsed specially to throw that Unsupported at you | 07:13 | |
moritz | m: say sin 0: | ||
camelia | rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U6aCB_Z_zUConfusedat /tmp/U6aCB_Z_zU:1------> 3say sin 0:7⏏5<EOL> expecting any of: colon pair» | ||
FROGGS | m: my $a = 0; say sin $a: | ||
camelia | rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UtNVYmWk_XConfusedat /tmp/UtNVYmWk_X:1------> 3my $a = 0; say sin $a:7⏏5<EOL> expecting any of: colon pair» | ||
moritz | m: say sqrt 0: | ||
camelia | rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Dqp4Cs8tQWConfusedat /tmp/Dqp4Cs8tQW:1------> 3say sqrt 0:7⏏5<EOL> expecting any of: colon pair» | ||
moritz | m: say(sqrt 0:) | ||
camelia | rakudo-moar df0c3a: OUTPUT«0» | ||
FROGGS | m: my $a = 0; sin $a: | ||
camelia | rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Rl9gS7OYMLConfusedat /tmp/Rl9gS7OYML:1------> 3my $a = 0; sin $a:7⏏5<EOL> expecting any of: colon pair» | ||
masak | oh, so it's related to listops. surprising. | 07:14 | |
07:14
gfldex left,
mudguts left
07:18
fez joined,
fez is now known as Guest1278
07:22
Guest1278 left
07:24
Ven left
|
|||
moritz just found a bug in vim | 07:27 | ||
when you have a file open, and another program modifies the file, vim asks you if you want to reload it | |||
and if you do, it ignores the modeline in that file | |||
07:28
colomon left
07:30
colomon joined
|
|||
masak | moritz: wow. | 07:30 | |
moritz: submit a vimbug! :) | |||
moritz | masak: I will. But first I'll check if newer vims still do that | 07:31 | |
or if it's maybe an oddity in my configuration | |||
07:33
JimmyZ_ joined
|
|||
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 | |
model refactors are trickier, but often far more interesting. | |||
moritz | what do you mean by "model refactoring"? | 07:35 | |
change the data model? | |||
masak | could me something like, I had a hash somewhere, but now I want to switch to a set instead. | ||
so I have to change not just the declaration, but all places that use that data structure. | 07:36 | ||
moritz | aye | ||
another common one at $work is "move an attribute to a different object" | |||
masak | right, that'd count too. | ||
right now in 007 I have a situation where I'm changing array-of-thing to array-of-hash-of-thing. | 07:37 | ||
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. | |||
moritz | one notes that static typing would also help find the places. | ||
masak | indeed. | 07:38 | |
07:40
zakharyas joined,
Ven joined
|
|||
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/x1ni1zkIyWVariable '@b' is not declaredat /tmp/x1ni1zkIyW:1------> 3my @a = { :foo }, { :bar, :baz }; 7⏏5@b = @a.map(*.clone.item); say @b.perl; » | ||
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» | ||
masak | apparently, that `.item` is necessary, or the cloned hashes flatten into the array. | ||
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» | ||
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» | ||
masak | hm. | ||
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» | ||
masak | m: my @a = { :foo }, { :bar, :baz }; my @b = @a.map({ .list.hash.item }); say @b.perl; say @a[0] === @b[0] | ||
camelia | rakudo-moar df0c3a: OUTPUT«[{:foo}, {:bar, :baz}]<>False» | ||
07:55
darutoko joined
|
|||
timotimo | moin | 07:57 | |
masak | moin moin | 07:58 | |
or, as we'd say in Low Saxon, "mooien Morgen" :) | 07:59 | ||
Ven waves | 08:00 | ||
TEttinger | gaaaaah | ||
DrForr | Sounds Dutch to me. | ||
TEttinger | Padre doesn't know how to syntax highlight NQP | ||
token string { <?[']> <quote_EXPR: ':q'> | |||
masak | TEttinger: patch it! :) | 08:01 | |
TEttinger | that single quote screws up the whole syntax highlighter | ||
they haven't released since 2013 and the build has been broken for all of 2015 | |||
masak | DrForr: it's Dutch, German, Danish... they use it in Luxemburg, too. | ||
TEttinger: oh, that's sad news :/ | |||
DrForr | Notify the maintainer?... | 08:06 | |
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
|
|||
masak | style survey: `%h{$key}:exists`, or `%h{$key} :exists` ? | 08:19 | |
08:21
abraxxa left
|
|||
moritz | the former | 08:21 | |
I think of it as postcircumfix:<{ }>(:$exists!) | |||
so it belongs to the } as close as possible | |||
(in fact, I'm slightly surprised it doesn't go on the inside | 08:22 | ||
%h{$key :exists} | |||
masak | :) | ||
I think I can motivate to myself why it doesn't go on the inside. not sure I can verbalize it, though. | |||
something like, adverbs that modify ops come after the op. it's mostly a coincidence that {} has an inside. | 08:23 | ||
of course, that answer is a little bit like saying "it's not X because it's Y". | |||
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:24
laouji left
|
|||
arnsholt | Gnarlier, then =p | 08:25 | |
08:25
laouji joined
|
|||
masak | "gnarlier" is a good slogan for adverbs in general... :P | 08:26 | |
timotimo | well, there can also be , inside the { } | ||
so it's a bit strange to have %foo{"bar", "baz" :exists} | |||
masak | timotimo: right. | ||
timotimo | on the other hands, named arguments are already like that | ||
masak | this looks like it deserves to be linked here: stefan-marr.de/papers/pldi-marr-et-...ogramming/ | 08:27 | |
TEttinger | timotimo, woah, using Atom now, very slick, and it successfully handles ['] | ||
but | |||
masak | HN discussion: news.ycombinator.com/item?id=9741072 | ||
08:27
laouji left
|
|||
TEttinger | it fails on the very next line with ["] | 08:27 | |
timotimo | haha | ||
oh man | |||
grammars really are a tiny bit difficult every now and then | 08:28 | ||
i wonder: is gnome shell supposed to take about 1 gig of ram? | |||
maybe right now is the time to get back to xfce. | |||
arnsholt | I'm really happy with XMonad, FWIW | 08:31 | |
TEttinger | github.com/atom/language-perl ok, so this is what it uses. the line that causes it to fail is here, github.com/perl6/nqp/blob/master/e...h.nqp#L231 | 08:33 | |
open source syntax highlighters are nice :) | |||
08:34
abraxxa joined,
laouji joined
|
|||
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? | ||
TEttinger | oh! | 08:35 | |
masak | hm, isn't it <["]> ? | ||
TEttinger | and it breaks github's syntax highlighting too | ||
pretty much, masak | |||
| <?["]> <quote_EXPR: ':qq'> | |||
masak | right. | 08:36 | |
that's a zero-width character class. | |||
...I think the term is. :) | |||
TEttinger | a double quote with no closing quote? | ||
that's practically a negative width thing... | 08:37 | ||
masak | both the opening and closing quotes are parsed by quote_EXPR | ||
which is why the `?` is there in `<?["]>`, because it's not consuming the `"` | |||
jnthn | Generally, you can make any <...> assertion a zero-width lookeahead by starting with ? | ||
TEttinger | ah, so the syntax highlighter needs to be aware of '?' | ||
jnthn | <foo> # call rule <foo> and capture if it matches | 08:38 | |
<?foo> # call rule foo, check it matches, but don't advance the cursor | |||
uh, and I meant "rule foo" in the first one | |||
jnthn still waking up :) | |||
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
laouji left
|
|||
jnthn | TEttinger: quote_EXPR matches an opening and a closing | 08:39 | |
masak | TEttinger: what I said above. | ||
TEttinger | I mean in that line of source | ||
masak | TEttinger: it's a zero-width match! | ||
jnthn | Oh, you mean the syntax highlighter bug | ||
TEttinger | yes | ||
jnthn | Yes, no idea about that :) | ||
masak | it shouldn't count the " as an opening close, is the short answer. | ||
TEttinger | ok | 08:40 | |
masak | more generally, it shouldn't count anything inside a char class as an opening quote. | ||
or an opening anything. | |||
char classes are very special environments wrt parsing, and they do tend to confuse syntax highlighters for this reason. | |||
regex syntax is already a DSL, but charclasses are even DSL-ier than that. | |||
TEttinger | where a char class is anything within /<.*\[.+\]>/ | 08:41 | |
is that the right uh regex | |||
timotimo | well, ".*" is a bit much | ||
masak | TEttinger: right, modulo things like `?` and other stuff. | ||
TEttinger | .? | ||
masak | well, `<- ["]>` is OK too, IIRC. | ||
maybe just check STD :) | 08:42 | ||
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 | ||
08:44
laouji joined
|
|||
TEttinger | so under what conditions do the contents of <THE STUFF IN HERE> get parsed as a character class? | 08:44 | |
masak | TEttinger: when there's also a `[]` in there. | 08:45 | |
TEttinger | x < y[0] && y[1] > z | ||
masak | TEttinger: but I don't know if that's a good way to explain it to the parser. | ||
right. | |||
TEttinger | hm | ||
masak | TEttinger: maybe check how STD has it? | ||
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. | ||
github.com/perl6/std/blob/master/STD.pm6 | 08:47 | ||
TEttinger | thanks | ||
timotimo | what's an IIFE? | ||
masak | timotimo: "Immediately Invoked Function Expression". it's a JavaScript term. | 08:49 | |
timotimo: in this case, the sub insulates against the grammar's $/ and gives a fresh one to match with. | |||
TEttinger | oh wow. github can't even syntax highlight STD.pm6 | 08:51 | |
github.com/perl6/std/blob/master/S...#L283-L286 | |||
timotimo | ah | ||
i think github uses the same highlighter as textmate and atom and such | |||
08:52
espadrine_ joined
|
|||
TEttinger | everything after this line is a string, unless it was supposed to be in double quotes... github.com/perl6/std/blob/master/STD.pm6#L3571 | 08:53 | |
and it only stops because it incorrectly parses a comment, wow | 08:54 | ||
08:54
cognominal joined
|
|||
TEttinger | github.com/perl6/std/blob/master/STD.pm6#L4428 | 08:54 | |
is there any way I could uh, fix this with approaching-zero perl knowledge :) | 08:55 | ||
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 | ||
masak | I skimmed the grammar stuff and didn't find it either :/ | ||
timotimo | and cclass_expr | ||
TEttinger | err, is this? github.com/perl6/std/blob/master/STD.pm6#L5020 | 08:58 | |
timotimo | things between < ... > are called "assertion" | ||
masak | timotimo++ | ||
TEttinger | maybe github.com/perl6/std/blob/master/STD.pm6#L5185 ? | 08:59 | |
08:59
kjs_ joined
|
|||
TEttinger | ok, yeah. it looks like quotes get special-special treatment in cclass_elem github.com/perl6/std/blob/master/STD.pm6#L5253 | 09:01 | |
timotimo | that isn't for "between [ and ]", though | ||
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/…» | ||
timotimo | this is about <"hi"> instead | ||
09:02
kjs_ left
|
|||
TEttinger | is this then, timotimo? github.com/perl6/std/blob/master/STD.pm6#L5218 | 09:03 | |
09:03
cognominal left
|
|||
TEttinger | timotimo: the syntax trouble stems from trying to highlight <?["]> | 09:03 | |
also, <?[']> | |||
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 :) | ||
TEttinger | but I definitely don't "get" the syntax well enough to fix this | ||
timotimo | could be the ? trips the parser up. possibly also <-["]>? | ||
TEttinger | so... somewhere in std.pm6 there's a list of what is valid in a cclass, syntactically, right? | 09:07 | |
09:10
laouji left
|
|||
TEttinger | github.com/perl6/std/blob/master/S...5144-L5151 maybe? | 09:10 | |
09:13
laouji joined,
uncleyear left
|
|||
TEttinger | brain... hurts | 09:13 | |
timotimo | those are things valid between < and > | 09:14 | |
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 | |||
so token assertion:sym<...> { <sym> } simply matches "..." | |||
and the rules for <|>, <?>, <!> and <*> mostly just mean you can have < > with nothing but a single |, ?, ! or * inside | 09:15 | ||
09:18
uncleyear joined
|
|||
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 left,
uncleyear joined
|
|||
timotimo | you are right; it's just that the < > from assertions and from :sym are overlapping right now | 09:23 | |
TEttinger | oh ok | ||
so the assertion always is in <> | |||
timotimo | i meant to refer to the parts from here "token assertion:sym<|> { <sym> [ <?before '>'> |" to there | 09:24 | |
to hopefully keep your head from hurting :) | |||
TEttinger | heh | ||
09:24
itz joined
|
|||
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 | ||
so there's going to be a lot of confusion however it goes | 09:25 | ||
so should I post a github issue on github.com/atom/language-perl so they know that it doesn't parse charclasses correctly when they contain quotes? | 09:27 | ||
or does someone want to send a PR fixing the relatively small perl 6 file? | 09:28 | ||
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:29 | |
itz | hmm the average perl6 module has pod or markdown visible from github rather than via p6doc Module::Name after install | 09:31 | |
09:31
laouji left
|
|||
TEttinger | ...do they even handle character classes? github.com/atom/language-perl/blob...l%206.cson | 09:31 | |
timotimo | TEttinger: i'd prefer that to be fixed in textmate's perl bundle and having it re-converted again | ||
itz | maybe panda should append such pod to the main module | ||
09:31
yeahnoob left,
laouji joined
|
|||
TEttinger | timotimo, yeah | 09:31 | |
is that open source? | 09:32 | ||
timotimo | it is | ||
github.com/textmate/perl.tmbundle | |||
TEttinger | github.com/textmate/perl.tmbundle/...tmLanguage | ||
ah | |||
09:34
Ven left
|
|||
TEttinger | hm. github.com/atom/language-perl/pull/39 | 09:35 | |
timotimo | well, the perl6.cson file is separate from the perl.cson file | 09:38 | |
though there's probably a derivation of some kind going on? | |||
TEttinger | I didn't see one | 09:41 | |
timotimo | the perl6.cson file seems pretty small | 09:44 | |
can it be complete without deriving from the perl.cson file? | 09:45 | ||
well, it is just a syntax highlighting definition file, not a complete grammar | |||
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) | ||
camelia | rakudo-moar df0c3a: OUTPUT«===============================================================================The use of nqp::operations has been deprecated for non-CORE code. Pleasechange your code to not use these non-portable functions. If you really wantto keep using nqp:…» | ||
jnthn | m: EVAL 'nqp::istype(Int, Numeric)' | ||
camelia | ( no output ) | ||
jnthn | Oops :) | ||
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:53 | |
moritz | m: say "\C[APOSTROPHE]" | 09:54 | |
camelia | rakudo-moar df0c3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WTQJjdM72oUnrecognized backslash sequence: '\C'at /tmp/WTQJjdM72o:1------> 3say "\7⏏5C[APOSTROPHE]" expecting any of: argument list double quotes term» | ||
moritz | m: say "\c[APOSTROPHE]" | 09:55 | |
camelia | rakudo-moar df0c3a: OUTPUT«'» | ||
TEttinger | oh! | ||
moritz | m: say so "'" ~~ /<[\c[APOSTROPHE]]>/ | ||
camelia | rakudo-moar df0c3a: OUTPUT«True» | ||
TEttinger | double quote, moritz? | ||
that's very handy, thank you. moritz++ | 09:56 | ||
moritz | .u " | ||
yoleaux | U+0022 QUOTATION MARK [Po] (") | ||
09:56
andreoss joined
|
|||
TEttinger | m: say so '"' ~~ /<[\c[QUOTATION MARK]]>/ | 09:56 | |
camelia | rakudo-moar df0c3a: OUTPUT«True» | ||
dalek | kudo/nom: d422469 | jnthn++ | src/Perl6/ (3 files): Fix missing nqp::op use detection inside an EVAL. |
10:02 | |
kudo/nom: 7925788 | jnthn++ | src/ (2 files): Complain when trying to override special form ops. Don't silently allow things that'll never work, leading to confusion as seen in RT #125427. |
|||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125427 | ||
dalek | kudo/nom: c875f5f | jnthn++ | src/core/Version.pm: Minor performance tweak (remove dupe .Numeric). |
10:03 | |
ast: 76e6a8a | jnthn++ | S32-exceptions/misc.t: Tests for RT #125427. |
|||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125427 | ||
TEttinger | well, it looks silly, but it works. github.com/tommyettinger/lilikoi/b...i.nqp#L246 | ||
dalek | ast: 86d2451 | jnthn++ | integration/weird-errors.t: Test to cover RT #125365. |
10:04 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125365 | ||
10:05
Akagi201 left
10:09
abraxxa left
10:12
|Tux| left
10:14
|Tux| joined
10:17
RabidGravy left
10:27
dayangkun left
|
|||
dalek | kudo/nom: 84d11db | jnthn++ | src/core/Exception.pm: Show location of bogus control exceptions. Steal the Backtrace of the control exception that we failed to find a handler for, so we actually have some location information to emit. Fixes RT #125339. |
10:27 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125339 | ||
dalek | ast: 0abc04d | jnthn++ | S04-exception-handlers/control.t: Test for RT #125339. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125339 | ||
jnthn | lunch & | 10:31 | |
10:35
_mg_ left
10:53
cognominal joined
|
|||
colomon | m: my $s = <a b c>.Set; given “z” { when $s { say “Match” } } | 10:58 | |
camelia | ( no output ) | ||
colomon | m: my $s = <a b c>.Set; given “a” { when $s { say “Match” } } | ||
camelia | ( no output ) | ||
11:00
_mg_ joined
11:02
akakcolin joined
11:03
akakcoli_ left
|
|||
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/JL81QQYYMeMissing blockat /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 …» | ||
jnthn | Hm, whatever the ops is :) | ||
But it's doing "a".ACCEPTS($s) | 11:04 | ||
Which I guess ain't going to end too well | |||
11:04
espadrine_ is now known as espadrine
|
|||
espadrine | timotimo: what's a good example of perl6 to check syntax highlighting with? | 11:04 | |
psch | m: my $s = <a b c>.Set; given “a” { when * (elem) $s { say “Match” } } | 11:11 | |
camelia | rakudo-moar 84d11d: OUTPUT«Match» | ||
11:15
[Tux] left
11:17
gagalicious left
11:29
[Tux] joined
|
|||
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. | ||
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. | ||
yoleaux | jnthn: I'll pass your message to TimToady. | ||
jnthn | I suspect the last of the Proc::Async things went away with fixing that lazy deserialization bunch of races. | ||
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: gist.github.com/espadrine/7f54306303b8c4cbca77 | 11:31 | |
FROGGS | yeah | ||
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() | ||
jnthn | FROGGS: Ouch, that's not a great bit of API design... | 11:33 | |
psch | FROGGS: yes, i agree | ||
but you *get* an InputStream... | |||
FROGGS | true that :o) | ||
11:33
Ven joined
|
|||
FROGGS | psch: but I also get an InputStream for stderr, which is exposed via .getErrorStream | 11:33 | |
so... | |||
I like our API better :P | 11:34 | ||
psch | yeah, it's still bad API design :) | ||
dalek | kudo/nom: f1fa644 | peschwa++ | src/vm/ (2 files): Let Failure always match p6typecheckrv. According to jnthn++ there's a need to adjust Perl6::Optimizer to not inline non-native calls anymore with this, but I am unclear how exactly that should be done and don't see any fallout from not doing it. |
||
FROGGS | psch: do you happen to know how I can redirect the stdout/stderr of a process to nirvana? | 11:35 | |
i.e. not letting inherit ours, and not capturing it | |||
psch | not offhand, no. i'd guess passing new ones, but those gobble memory in the worst case... | 11:36 | |
r: sub foo($) { }; { foo(Junction); CATCH { default { .perl.say } } } # this stumps me | |||
camelia | rakudo-moar 84d11d: OUTPUT«X::TypeCheck::Binding.new(symbol => "<anon>", operation => Any, got => Junction, expected => Any)» | ||
( no output ) | |||
FROGGS | hmmm, okay... I'll fix/implement the other stuff first | ||
(or write tests) | 11:37 | ||
psch | huh, jvm should have printed something there... | ||
r: sub foo($) { }; { foo(Junction); CATCH { default { .perl.say } } } | |||
camelia | rakudo-moar 84d11d: OUTPUT«X::TypeCheck::Binding.new(symbol => "<anon>", operation => Any, got => Junction, expected => Any)» | ||
..rakudo-jvm 84d11d: OUTPUT«X::AdHoc.new(payload => "Nominal type check failed for parameter 'null'")» | |||
psch | there | ||
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? | ||
psch | it's in Binder.java, moar doesn't explicitely check for gcx.Junction (or the equiv)... | ||
i don't get how to go past that, though, and fall through to juncOrFail()... | 11:38 | ||
FROGGS | hmmm, I dont know enough here to be of help | 11:39 | |
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:40 | |
11:42
laouji left
11:43
laouji joined
11:45
rindolf left
|
|||
psch | FROGGS: stackoverflow.com/questions/4799006/ is probably the best you can do | 11:53 | |
i.e. subclass OutputStream with empty write() candidates | |||
FROGGS | hh! | ||
ahh* | |||
psch | (the top-voted answer, not the example in the quest, just to be clear :) ) | ||
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 | ||
well, ProcessBuilder lets you set the Process' streams | 11:55 | ||
FROGGS | true... | ||
12:02
akakcolin left
12:03
larion joined,
akakcolin joined
|
|||
jnthn | FROGGS: Yes, in oplist we tend to mark the name as DEPRECATED | 12:06 | |
FROGGS: It says what to do in the comment at the top of oplist ;) | 12:07 | ||
12:11
firefish5000 left
|
|||
colomon is on day two of converting $work scripts from p5 to p6 | 12:14 | ||
jnthn | :) | 12:24 | |
jnthn tires of putting stuff into boxes and returns to hacking | |||
FROGGS | jnthn: I don't read comments :P | ||
12:25
rindolf joined
|
|||
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? | ||
17 Jun 2015 20:19Z <[ptc]> nebuchadnezzar: I believe the terminology and branch names might be confusing me slightly... | |||
FROGGS | nebuchadnezzar: what what what? | 12:28 | |
jnthn | .ask RabidGravy if rt.perl.org/Ticket/Display.html?id=125408 also seems fixed for him (I just tried it and it doesn't fail) | ||
yoleaux | jnthn: I'll pass your message to RabidGravy. | ||
FROGGS | nebuchadnezzar: is it true that MoarVM needs to run on mips(el) in order to make it fit for release? | 12:31 | |
jnthn | "fit for release" in what sense? | 12:35 | |
moritz | debian, I think | ||
jnthn | Better not be. | ||
FROGGS | aye | ||
jnthn | That'd be ridiculous. | ||
FROGGS | bugs.debian.org/cgi-bin/pkgreport....src=moarvm | 12:36 | |
Severity | |||
1 Serious (policy violations or makes package unfit for release) | |||
moritz | iirc you can specify the architecture on which a package can be built | ||
FROGGS | jnthn: but no worry, I can get in libffi support until next releae | ||
release* | |||
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? | ||
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 | ||
jnthn | Hm, aparently not... | 12:38 | |
FROGGS | jnthn: there is no dyncall package | 12:39 | |
(sadly) | |||
jnthn | Bah, so that becomes "our problem". | ||
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 | ||
We've so, so many better things to spend our time on than platforms with a fraction of a percent market share. | |||
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: anonscm.debian.org/cgit/mirror/pac...h-specific | 12:43 | |
12:44
domidumont left
|
|||
nebuchadnezzar | or maybe just the Architecture: www.debian.org/doc/debian-policy/c...chitecture | 12:44 | |
12:46
domidumont joined
12:47
domidumont left
|
|||
moritz | so !mipsel it seems | 12:48 | |
12:49
akakcolin left
|
|||
nebuchadnezzar | moritz: yes, I'll see with the Debian team what the best to do | 12:49 | |
12:51
domidumont joined
|
|||
jnthn | nebuchadnezzar++ | 12:52 | |
12:52
domidumont left
|
|||
jnthn | Certainly if somebody who knows/cares for that architecture provides a patch, I'll happily accept it. | 12:52 | |
12:53
domidumont joined
|
|||
dalek | ast: 02bc00a | jnthn++ | S15-nfg/many-threads.t: Add tests covering Uni => NFG over many threads. This tests thread safety of the graphemes table. There's an NYI in MoarVM at the moment that causes this test to panic; once that's fixed, this test can be added to spectest.data and will ensure we don't regress in this area. |
12:54 | |
12:55
aborazmeh joined,
aborazmeh left,
aborazmeh joined
12:58
akakcolin joined
|
|||
dalek | ast: 486ed3d | peschwa++ | S03-operators/arith.t: Correct expectation for a few tests. Now that Failure falls through p6typecheckrv we actually get Numeric::DivideByZero, not TypeCheck::Return. |
13:07 | |
kudo-star-daily: c5fd165 | coke++ | log/ (2 files): today (automated commit) |
13:12 | ||
rl6-roast-data: 1d39954 | coke++ | / (9 files): today (automated commit) |
|||
13:20
laouji left
13:22
muraiki joined
|
|||
TEttinger | In NQP, how would you make a grammar token that matches double-quoted strings with a # before them? | 13:24 | |
more accurately, I need # to be a "dispatch character" that changes the next thing read | 13:25 | ||
jnthn | '#' <?["]> <quote_EXPR: ...> # or some such | ||
TimToady | m: say abs -42: ; | ||
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. | ||
camelia | rakudo-moar f1fa64: OUTPUT«42» | ||
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. | ||
TEttinger | that is very easy, thank you :) jnthn++ | 13:26 | |
TimToady | masak: it's just an EOF anomaly | ||
moritz | m: say abs -42:; | ||
camelia | rakudo-moar f1fa64: OUTPUT«42» | ||
moritz | m: say abs -42: | ||
camelia | rakudo-moar f1fa64: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V2UzSPiN8kConfusedat /tmp/V2UzSPiN8k:1------> 3say abs -42:7⏏5<EOL> expecting any of: colon pair» | ||
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 :) | ||
moritz | TimToady++ | ||
muraiki: most likely jnthn++ | 13:27 | ||
muraiki | jnthn++ thanks :) | ||
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 | ||
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 | ||
ugexe | muraiki: nope. tried to figure that out for awhile myself | ||
and you cant do (cd somedir && $cmd) with proc::async for whatever reason | |||
13:29
iH2O joined
|
|||
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 | ||
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 | ||
jnthn | muraiki: Well, can file an RT; it's a reasonable request :) | ||
muraiki | jnthn: thanks :) | ||
ugexe | ive been using my $dir = $*CWD, chdir $some-dir; proc::async stuff; LEAVE chdir $dir and havent had any problems actually | 13:30 | |
although i imagine if something crashes it would have thread implications like you mention | |||
nwc10 | .tell yoleaux I'm very confused as to why messages are going via you | ||
yoleaux | nwc10: Thanks for the message. | ||
nwc10 | .tell yoleaux good morning. | ||
yoleaux | nwc10: Thanks for the message. | ||
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 | ||
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? | ||
(if I wanted to have an identifier rule that matched anything not starting with a digit or reserved symbol, is that possible?) | 13:36 | ||
(ending at whitespace or comma) | 13:37 | ||
jnthn | TEttinger: They're built-ins, but since thye're just methods you can override them | ||
psch | TEttinger: src/HLL/Grammar.nqp and src/NQP/Grammar.nqp for the definitions | 13:38 | |
TEttinger | thanks both! | ||
psch | TEttinger: the former is the base for any HLL, the latter the NQP grammar | ||
13:39
iH2O left
|
|||
ugexe | whats wrong with Grammar::Debugger? | 13:40 | |
13:41
telex left
13:42
andreoss left,
telex joined
|
|||
TEttinger | hm, I can't actually find ident anywhere in HLL/Grammar | 13:43 | |
the NQP grammar only mentions it kinda, twice, as | 13:44 | ||
token identifier { <.ident> [ <[\-']> <.ident> ]* } | |||
psch | TEttinger: nqp/src/QRegex/Cursor.nqp:622 | 13:45 | |
TEttinger | woah | ||
psch | a grammar is a Cursor | ||
or something like that :s | |||
13:46
Woodi left
|
|||
psch | m: say grammar { } ~~ Cursor | 13:46 | |
camelia | rakudo-moar f1fa64: OUTPUT«True» | ||
TEttinger | it appears to just check for alphabetical or underscore | ||
.u _ | |||
yoleaux | U+005F LOW LINE [Pc] (_) | ||
13:46
Woodi joined
|
|||
psch | TEttinger: well, that's a reasonable default for identifiers in most languages i'd say | 13:47 | |
13:56
g4 left
|
|||
TEttinger | yeah, I just wasn't sure what it really meant | 13:57 | |
dalek | kudo/attr-isrequired: 95cf7f6 | coke++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Add a getter for Attribute's $!required |
14:06 | |
[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:07 | |
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]> | ||
TEttinger | oh, that's again simple :) | 14:14 | |
jnthn++ thanks | |||
flussence | m: /<[^A-Z]>/ | ||
camelia | rakudo-moar f1fa64: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3MSQipVQ6EUnsupported 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 thingat /tmp/3MSQipVQ6E:1------> 3/<…» | ||
flussence | m: /<[^A..Z]>/ | ||
camelia | ( no output ) | ||
flussence | std: /<[^A..Z]>/ | ||
camelia | std 28329a7: OUTPUT«ok 00:00 137m» | ||
TEttinger | hm ok | ||
flussence | hm, no complaints about that there... | ||
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? | ||
yeah, that :) | |||
jnthn | Worth considering; it'll be a common thing to try | 14:16 | |
TEttinger | m: "hey" ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]>/ | 14:17 | |
camelia | ( no output ) | ||
TEttinger | m: say "hey" ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]>/ | ||
camelia | rakudo-moar f1fa64: OUTPUT«「h」» | ||
TEttinger | ahhhh | ||
dalek | ast: e3540cd | jnthn++ | S15-nfg/many-threads.t: Tweak to make the test "harder". By doing enough work to trigger some GCs while doing per-thread work also. |
||
TEttinger | ok | ||
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 '/'…» | ||
TEttinger | m: say "hey" ~~ /<-[\d\'\"\{\}\(\)\[\]\~\#\,\s\/]><-[\'\"\{\}\(\)\[\]\~\#\,\s\/]>+/ | ||
camelia | rakudo-moar f1fa64: OUTPUT«「hey」» | ||
TEttinger | woo complicated regexes! | ||
flussence | m: say "hey" ~~ /<-[\d'"{}()[]~#,s/]><-[\s'"{}()[]~#,/]>+/ | 14:19 | |
camelia | rakudo-moar f1fa64: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cig_kWRS7uUnable 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…» | ||
flussence | oh | ||
m: say "hey" ~~ /<-[\d'"{}()[\]~#,s/]><-[\s'"{}()[\]~#,/]>+/ | |||
camelia | rakudo-moar f1fa64: OUTPUT«「hey」» | ||
TEttinger | m: say "hey" ~~ /.U #/ | ||
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: …» | ||
TEttinger | OOPS | 14:20 | |
.u # | |||
yoleaux | U+0023 NUMBER SIGN [Po] (#) | ||
14:26
akakcoli_ joined
14:27
akakcolin left,
akakcolin joined,
gfldex joined
14:29
domidumont left
|
|||
dalek | p: 16db457 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for NFG mutli-thread fixes. |
14:29 | |
14:30
domidumont joined,
yqt joined
|
|||
dalek | kudo/nom: d179b43 | jnthn++ | t (2 files): Bump NQP_REVISION; run S15-nfg/many-threads.t. |
14:31 | |
14:31
akakcoli_ left
14:35
gagalicious joined
14:37
kst] is now known as kst
14:38
dj_goku left,
firefish5000 joined
14:44
RabidGravy joined
14:47
xinming joined
14:48
yqt left
|
|||
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:48 | |
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:50 | |
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? | ||
I see | |||
I guess I just like being able to supply it in the constructor :) but thanks, that will solve my problem | 14:52 | ||
14:58
mr-foobar left
14:59
mr-foobar joined
15:00
Ven left
15:03
RabidGravy left
15:05
njmurphy joined,
akakcolin left,
akakcoli_ joined
15:08
diana_olhovik left
|
|||
masak | catching up on backlog. | 15:10 | |
did someone rakudobug the indirect object colon EOF anomaly? | |||
jnthn | RT says no | ||
Or at least, they didn't do so today | 15:11 | ||
masak says "rakudobug"! | |||
jnthn | (just looking at the tail of the cue) | ||
uh, queue | |||
15:16
RabidGravy joined,
_mg_ left
15:17
Ven_ joined,
akakcoli_ left,
kaare__ is now known as kaare_
15:18
rindolf left
|
|||
colomon just told a shell script to use perl7... | 15:20 | ||
dalek | pan style="color: #395be5">perl6-examples: 742c9dd | paultcochrane++ | lib/Pod/Htmlify.pm6: Replace hard tabs with spaces |
||
pan style="color: #395be5">perl6-examples: 6191b48 | paultcochrane++ | lib/Pod/ (2 files): Link source files from subcategories to GitHub correctly Source files from within subcategories were missing their subcategory within the link url pointing to GitHub. This commit ensures that files from categories and subcategories are linked to the correct url. |
|||
15:28
skids joined
15:30
vimal2012 joined
15:31
FROGGS[mobile] joined,
FROGGS left
15:32
aborazmeh left
15:33
pat_js joined
15:34
zakharyas left
|
|||
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:35 | |
15:36
FROGGS[mobile] left
|
|||
jnthn | japhb: Ugh, maybe... | 15:37 | |
15:40
telex left
|
|||
Ven_ also had a segfault with the debugger not long ago (with readline not installed) | 15:41 | ||
15:49
FROGGS[mobile] joined
|
|||
hoelzro | morning #perl6 | 15:56 | |
FROGGS[mobile] | hi hoelzro | ||
15:57
captain-adequate joined
|
|||
timotimo | o/ | 15:57 | |
hoelzro | o/ FROGGS[mobile], timotimo | 15:58 | |
15:58
akakcolin joined
15:59
Ven_ left
16:01
domidumont left
|
|||
lizmat | morning #perl6! | 16:03 | |
lizmat is packing and getting ready to commute home | |||
16:03
vimal2012 left
|
|||
hoelzro | o/ lizmat | 16:04 | |
safe travels back home! | |||
lizmat | thank you! | 16:05 | |
FROGGS[mobile] | hi lizmat! | ||
lizmat | FROGGS[mobile] o/ | 16:06 | |
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:07 | |
lizmat | but isn't that a genuine scoping bug ? | 16:08 | |
jnthn | No, it's not a bug. | ||
The rules in Perl 6 are very clear. | |||
timotimo | i don't think the my $i is scoped to the inside of the () and { } only | ||
lizmat | ok, then it's a case DIHWIDT | ||
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 | |
We could perhaps better document that. | |||
lizmat | some people might think it's a "signature" of the loop | ||
jnthn | I don't think we need to stress much over it, though. | ||
Uses of "loop" should be rare anyway. | |||
lizmat | agree, DIHWIDT :-) | ||
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 | ||
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
pat_js left
|
|||
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 | ||
hoelzro | I know in C++ it's not | ||
jnthn | And in C89 I'm not sure you can even do it. :) | ||
[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 | ||
jnthn | hoelzro: I don't think it warrants a warning | ||
masak | seeing another Parrot release go by, I'm struck by how many types of parrot are called something with "Lovebird". | ||
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) { } | ||
jnthn | Because most of the time, unless you do declare another $i later, you're not going to have a problem. | 16:13 | |
We could put a hint on the "already declared" error | |||
hoelzro | alright, good point | ||
profan | so that's scoped outside of the loop block itself? | ||
i mean, the "loop" construct doesnt have its own scope in that context | |||
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? | ||
jnthn | And in the for case, there's no problem 'cus the loop variable is a block parameter. | ||
hoelzro: There's already a request in RT for the "already declared" message to point to where the previous decl was | 16:16 | ||
hoelzro: I guess we could try and keep enough info around to give a hint about loop. | |||
hoelzro | it would be a nice to have | 16:17 | |
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:18 | ||
16:19
uncleyea1 joined,
uncleyear left
|
|||
jnthn | Yeah, there the idiom you tend to want is "if something() -> $value { ... } | 16:19 | |
hoelzro | right | 16:20 | |
but a lot of people (esp. Perl 5ers) may try if my $value = something() { ... } and get confused when that variable "escapes" | 16:21 | ||
but you're right that the redeclaration warning is probably sufficient | |||
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? | ||
jnthn | Yes, it's mentioned | ||
[ptc]: In the second case you've (eagerly) assigned to an array @lines which puts everything into a Scalar container | 16:25 | ||
[ptc]: In the first case, you're iterating through a lazy list of lines and there is no container | |||
Use "-> $line is copy" to make the first work out | |||
[ptc] | jnthn: ok, so that's why it's not possible to assign to $line in the loop? | ||
jnthn | Correct | ||
iirc though, we should never have allowed $line to be bound to a non-container | 16:26 | ||
(with <->) | |||
[ptc] | ah, ok. Just trying to get an example to work again, and am wondering why it doesn't work | ||
jnthn | So the error should have come a little earlier. | ||
PerlJam | m: my ($a,$b) = "foo bar" ~~ m/^(\w+) \s* (\w+)/; say "($a)($b)"; | ||
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)()» | ||
jnthn | But "is copy" is probably what you're looking for. | ||
PerlJam | Am I having a brain-fart or should that still work in P6? | ||
16:26
huf left
|
|||
[ptc] | jnthn: cool, thanks. I'll give it a go | 16:26 | |
lizmat | commuting& | 16:27 | |
16:27
lizmat left
|
|||
[ptc] | jnthn: btw: the explanation wrt containers was helpful! | 16:27 | |
16:27
MilkmanDan left
|
|||
jnthn | PerlJam: You get back a Match object | 16:27 | |
PerlJam: You probably want to get the list view of it | |||
m: my ($a,$b) = list "foo bar" ~~ m/^(\w+) \s* (\w+)/; say "($a)($b)"; | |||
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)()» | ||
jnthn | m: my ($a,$b) = flat "foo bar" ~~ m/^(\w+) \s* (\w+)/; say "($a)($b)"; | ||
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)()» | ||
jnthn | hmm | ||
oh... | |||
m: my ($a,$b) = @("foo bar" ~~ m/^(\w+) \s* (\w+)/); say "($a)($b)"; | 16:28 | ||
camelia | rakudo-moar d179b4: OUTPUT«(foo)(bar)» | ||
jnthn | m: my ($a,$b) = ("foo bar" ~~ m/^(\w+) \s* (\w+)/).list; say "($a)($b)"; | ||
camelia | rakudo-moar d179b4: OUTPUT«(foo)(bar)» | ||
jnthn | One of those. | ||
16:28
MilkmanDan joined
16:30
larion left
16:32
telex joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: 2a0d34b | paultcochrane++ | categories/euler/prob054-andreoss.pl: [euler] Purge trailing whitespace |
16:33 | |
pan style="color: #395be5">perl6-examples: 76fc334 | paultcochrane++ | t/categories/ (2 files): [t] purge trailing whitespace |
|||
pan style="color: #395be5">perl6-examples: 9251efb | paultcochrane++ | categories/euler/prob054-andreoss.pl: [euler] enable loop param to be writable in loop The code `for $file.IO.lines[^$lines] <-> $line` iterates over a lazy list of lines without a container, thus it gives the error `Cannot assign to an immutable value` (since `$line` is immutable in this case). To enable `$line` to be writable within the loop, one needs to replace `<-> $line` with `-> $line is copy`. Thanks to jnthn++ for the clear explanation. Unfortunately, the script doesn't produce the correct answer, but that's another issue. |
|||
16:47
Blub\0 left
16:50
Blub\0 joined
16:54
domidumont joined
|
|||
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 | ||
yoleaux | [ptc]: I'll pass your message to andreoss. | ||
xinming | When I try to do something with $obj.perl.say, I only saw the MyClass.new without any arguments | ||
Ignore me, I use has $attr, not has $.attr | 16:56 | ||
16:57
rindolf joined
|
|||
JimmyZ_ | 好久不见 | 16:59 | |
masak | JimmyZ_! 好久不见! | 17:02 | |
JimmyZ_ | :) | 17:03 | |
tony-o | m: class A { has $attr = 5; method a { $!attr.say; }; }; A.new.a | ||
camelia | rakudo-moar d179b4: OUTPUT«5» | ||
17:03
huf joined
|
|||
nwc10 | ilmari just pointed me at this: i.imgur.com/qq2ceU9.jpg | 17:03 | |
17:03
FROGGS joined
|
|||
tony-o | xinming: ^^ | 17:04 | |
nwc10: lol | |||
17:04
spintronic joined
|
|||
spintronic | hi guys simple question how do I enter multiline input into the perl6 REPL? | 17:05 | |
masak | pierrot: there's ongoing work on a better REPL which allows you to do that. | 17:06 | |
er, spintronic* | |||
JimmyZ_ | so whats the differenc between has $attr and has $.attr | 17:07 | |
spintronic | ah ok thanks masak! | ||
tony-o | $! doesn't auto create accessors/setters for you | ||
masak | JimmyZ_: `has $attr` gives you an `$!attr` but allows you to call it `$attr` in the class scope. | ||
JimmyZ_: because it doesn't have a `.`, it doesn't give you accessors. | |||
tony-o | m: class E { has $.a; }; E.new.^methods.say; | 17:08 | |
camelia | rakudo-moar d179b4: OUTPUT«a» | ||
masak | JimmyZ_: I see most people discouraging use of `has $attr` in favor of the more explicit `has $!attr` | ||
tony-o | $.a auto creates that accessor for $!a | ||
masak++ | |||
masak | JimmyZ_: but `has $attr` has also been called "a sop to people who don't like twigils" | ||
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:10
bbkr left
17:11
itz left
|
|||
masak | tony-o: it does, but it also steps aside if there's a `method a` in the class. | 17:13 | |
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. :-) | ||
DrForr | Seems pretty stable these last few weeks :) | 17:16 | |
xinming | Things changed a lot, the new Type object thing, and other things. Will read the doc more to catch up. | 17:17 | |
JimmyZ_ | xinming: 欢迎回来 | 17:18 | |
masak | heh. meant to comment on rt.perl.org/Public/Bug/Display.html?id=125431 , but jnthn++ had already left exactly the comment I wanted to write ;) | 17:19 | |
xinming: what new Type object thing? | |||
xinming | masak: I mean the type object. | 17:21 | |
谢谢 | |||
masak: my Int $var; $var contains Int type | |||
and also the Nil and () thing | 17:22 | ||
JimmyZ_ | it is not new. | ||
masak | was gonna say. | 17:23 | |
I don't know how back you have to go for `my Int $var;` to not contain Int. maybe forever. | 17:24 | ||
there are some changes around Nil and (), yes. | |||
hoelzro++ # release | 17:25 | ||
m: sub foo ($a, $f) { if $f { foo("z", 0) }; {$_=$a; say $a; say $_} }; foo("x", 1) | |||
camelia | rakudo-moar d179b4: OUTPUT«zzzz» | ||
masak | wow, to think that we still have a lexical bug... :/ | 17:27 | |
17:28
kaare_ left
17:29
kaare_ joined
|
|||
masak | the correct output would be "[call foo("x", 1)][call foo("z", 0)]zz[return]xx[return]" | 17:29 | |
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«zzxx» | ||
bartolin | hi, #perl6 | ||
17:31
JimmyZ_ left
|
|||
hoelzro | [Coke]: btw, I didn't get around to updating the PortFile for Moar/NQP, but I can do that after work today | 17:31 | |
masak | here's a shorter version: | 17:33 | |
m: my $y = 1; sub foo($x) { $y-- && foo("z"); { say $x } }; foo("x") | |||
camelia | rakudo-moar d179b4: OUTPUT«zz» | ||
masak | again, should say "zx" | ||
masak adds the example to RT #109322 | 17:35 | ||
bartolin | nice, masak++ | ||
17:35
kaare_ left
|
|||
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:36 | |
bartolin didn't know masak's particular love for lexbugs | 17:37 | ||
masak | "love" is a charitable interpretation of what I said. | 17:38 | |
bartolin | *g* | ||
masak | watch this: | ||
FROGGS | ohh noes!! whitespace! | 17:39 | |
masak | moritz: RT #58392! | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=58392 | ||
masak | (sorry, lag) | ||
bartolin reads ... | |||
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/7jXucfm4GkUndeclared routine: a1 used at line 1» | ||
grondilu | m: enum Square <a1 a2>; say a1 # should this work? | ||
camelia | rakudo-moar d179b4: OUTPUT«a1» | ||
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/qlsG29Qxa2Undeclared name: Square used at line 1Undeclared routines: a1 used at line 1 enum used at line 1» | ||
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:43 | |
bartolin | masak: that looks like it was a very nice bug ... | 17:44 | |
masak | it's the most frustrating bug in the entire RT. | ||
grondilu: I don't see offhand why that shouldn't work. | 17:45 | ||
jnthn | It's very well RT'd already that enum doesn't like anything too fancy | 17:46 | |
It's non-trivial to fix because enums show up in the CORE.setting | |||
Or at least, it was last time I looked. | |||
masak | oh. circularity trouble. | 17:47 | |
jnthn | Aye | ||
And to think some folks wish Rakudo were a bootstrapping compiler... :P | |||
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«zzxx» | ||
jnthn | m: sub foo ($a, $f) { if $f { foo("z", 0) }; (-> {$_=$a; say $a; say $_})() }; foo("x", 1) | ||
camelia | rakudo-moar d179b4: OUTPUT«zzxx» | ||
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? | ||
just a thought. | 17:50 | ||
spintronic | how do I load a script from the Perl6 REPL? | ||
masak | spintronic: you can load a module with the -M flag | ||
spintronic | masak: looks like I can use EVAL slurp 'myscript.p6' too? | 17:51 | |
jnthn | masak: That may be a way to do it | ||
spintronic: or EVALFILE 'myscript.p6' | |||
17:54
larion joined
|
|||
jnthn tests a fix for the bare block thing | 17:54 | ||
17:54
bbkr joined
17:55
bbkr left
|
|||
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 | |
is there any reason not to break subroutines out of BOOTSTRAP's "sub bind" for code reuse, performance-wise? | |||
spintronic | jnthn and masak: both of them work great thanks! | ||
17:59
kaare_ joined
|
|||
jnthn | skids: What do you want to re-use there, ooc? | 18:00 | |
18:00
nebuchadnezzar left
|
|||
skids | Well, the $capsnap was the first thing I noticed, but I'm sure there will be more. | 18:00 | |
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 | ||
timotimo | ah, good | ||
dalek | kudo/nom: 175c4d8 | jnthn++ | src/Perl6/Actions.nqp: Fix reentrancy fail with bare blocks. Resolves RT #109322. |
18:02 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=109322 | ||
dalek | ast: 7fae5b5 | jnthn++ | S06-advanced/lexical-subs.t: Unfudge test for RT #109322. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=109322 | ||
skids | Really it looks like eventually binding could be "prime, and if there are no leftover args, you successfully bound" | 18:03 | |
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 | |
18:04
nebuchadnezzar joined
|
|||
skids | Right, but for bootstrap. | 18:04 | |
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. | ||
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) | ||
jnthn | skids: Faking up a signature/arity/count? | ||
Ah | 18:07 | ||
bartolin | wow, jnthn++ # that quick fix for RT #109322 (and all those other fixed tickets) | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=109322 | ||
timotimo | because sometimes i see "bind" and "bind_one_value" and friends at somewhat high places in profiles | ||
skids | BTW I found RT#125437 while looking over the binder code. | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125437 | ||
jnthn | skids: I don't think you've have to change the binder to do those | ||
timotimo | usually not as high as the reify gang, but i'd expect them to almost always disappear completely | 18:08 | |
and they end up with very high call counts sometimes | |||
bbiab | |||
jnthn | timotimo: I'd put something in Actions.nqp | ||
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. | ||
jnthn | timotimo: There's a line "if lower_signature(...)" | 18:09 | |
timotimo: Add an else to that if and you can log which blocks don't be their sigs lowered | |||
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:10 | ||
skids | jnthn: yes, I'm aware. But I don't think(?) things are introspectable enough yet to do all these things from Perl6. | 18:11 | |
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:13 | ||
Unless using EVAL is a performant option. | 18:14 | ||
Oh, and one other question was under what scenarios "unnamed capture parameters" appear. | 18:17 | ||
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 | |
You could even lazily work those bits out if they're asked for | |||
skids | That's an idea, for sure. | 18:20 | |
jnthn | You may need to use nqp::ops to manipulate the Signature | ||
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. | ||
*arguments | 18:23 | ||
xinming | m: class T { has Array of Int @abc }; | 18:24 | |
camelia | ( no output ) | ||
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/8M9D5kS81gVariable '@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;» | ||
xinming | m: class T { has Array of Int @!abc; method t () { @abc.perl.say } }; T.new.t; | ||
camelia | rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ni1o9f9G5FVariable '@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;» | ||
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; | ||
camelia | rakudo-moar 175c4d: OUTPUT«Array[Array[Int]].new()» | ||
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. | ||
strange | |||
bbl | |||
My mistake, It worked now. I don't know why, maybe typo. | 18:27 | ||
skids | xinming: the twigils. | ||
note that that's an array of an array of int | 18:28 | ||
xinming | skids: Yes, And I just noticed, I don't need 'Array of' thing in my case. | 18:30 | |
It seems, perl6 still doesn't support required object attributes yet. | 18:36 | ||
needs to do it within BUILD method | |||
skids | xinming: has $.a = die("must haz a") | ||
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. | ||
skids | (And personally I think has $.a! to be consistent with sigs might be nice.) | 18:38 | |
Yes "is required" is NYI. | |||
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/q2IH0hYjkZInvalid adverb value for :w(hello)at /tmp/q2IH0hYjkZ:1------> 3class T { has A $.a handles qw:w(hello) 7⏏5}; T.new.hello;» | ||
xinming | Is this a bug? | 18:42 | |
m: class A { method hello () { "Hello".say; } }; class T { has A $.a handles qw(hello) }; T.new.hello; | |||
camelia | rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BCJOIpB5oJCannot invoke this object (REPR: Null, cs = 0)at /tmp/BCJOIpB5oJ:1» | ||
xinming | m: class A { method hello () { "Hello".say; } }; class T { has A $.a handles qq:w(hello) }; T.new.hello; | ||
camelia | rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rZD0Lex865Invalid adverb value for :w(hello)at /tmp/rZD0Lex865:1------> 3class T { has A $.a handles qq:w(hello) 7⏏5}; T.new.hello;» | ||
xinming | these three neither worked. | ||
18:42
_mg_ joined
|
|||
xinming | the <> worked though | 18:42 | |
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 left,
TEttinger left,
Sqirrel joined
|
|||
xinming | I don't mean the regex | 18:45 | |
I mean the qw thing in perl6 | |||
skids | m: qw:w(hello).say | ||
camelia | rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LfdSTTsZRPInvalid adverb value for :w(hello)at /tmp/LfdSTTsZRP:1------> 3qw:w(hello)7⏏5.say» | ||
xinming | I'll test it again | ||
yes, seems qw doesn't work. | |||
skids | m: q:w(hello).say | 18:46 | |
camelia | rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7JiwM5FJjhInvalid adverb value for :w(hello)at /tmp/7JiwM5FJjh:1------> 3q:w(hello)7⏏5.say» | ||
skids | m: q:w/hell/.say | ||
camelia | rakudo-moar 175c4d: OUTPUT«hell» | ||
skids | It's the delimiter. | 18:47 | |
Whitespace is mandatory with () | 18:48 | ||
xinming | m: q:w (ab c); | ||
camelia | ( no output ) | ||
skids | m: q:w (hello).say | ||
camelia | rakudo-moar 175c4d: OUTPUT«hello» | ||
xinming | m: q:w (ab c).say; | ||
camelia | rakudo-moar 175c4d: OUTPUT«ab c» | ||
xinming | m: q:w/ab c/.say; | ||
camelia | rakudo-moar 175c4d: OUTPUT«ab c» | ||
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. | ||
PerlJam | it seems totally natural to me :) | ||
skids | xinming: design.perl6.org/S02.html#Delimiter...ting_forms explained here. | 18:50 | |
grondilu | the gist is you should avoid using () for that | 18:51 | |
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 | |
skids: thanks | |||
18:54
nowan_ joined,
domidumont left
18:56
nowan left
18:59
diana_olhovik_ joined
19:00
nys joined
|
|||
FROGGS | $ perl6-j -e 'my $p1 = shell("dir", :out); my $p2 = shell("wc", :in($p1.out), :out); say $p2.out.lines' | 19:02 | |
35 104 1475 | |||
that was quite some work... | |||
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 | ||
ugexe: will look | |||
ugexe: should work now | 19:05 | ||
it looses connection to its Pg database after weeks it seems | 19:06 | ||
ugexe | FROGGS++ with the quickness | ||
i was hoping it wasnt me sending bad requests | 19:07 | ||
FROGGS | no, that seems very unlikely | 19:08 | |
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 | |
oops | |||
i.imgur.com/DjFHalp.png | 19:11 | ||
damnit | |||
PerlJam | tony-o++ anyway :) | 19:12 | |
19:12
espadrine left
|
|||
dalek | pan style="color: #395be5">perl6-examples: ae590ca | paultcochrane++ | t/categories/cookbook/13classes-objects-and-ties.t: [cookbook] add a test for 13classes-objects-and-ties |
19:13 | |
FROGGS | tony-o: I like it | ||
PerlJam | Does NativeCall have a way to indicate const-ness? | 19:15 | |
19:17
spider-mario joined
|
|||
dalek | p/openpipe3: 04c2ae0 | FROGGS++ | src/vm/jvm/ (5 files): extend nqp::shell/nqp::spawn with in/out/err/flags params This means that we can use shell() and run() in rakudo for purposes we used pipe() for, but with extra freedom and flexibility. nqp::openpipe, as well as nqp::shell1 and nqp::shell3 are removed. |
19:18 | |
FROGGS | PerlJam: no | ||
tony-o | as soon as i add arrays to it ill give it an upload so we can start making it better | 19:19 | |
its p rough | |||
19:22
kaare__ joined
|
|||
timotimo | there are terminals out there that support an escape sequence that lets you specify 256 values for R, G and B each | 19:22 | |
19:22
kaare_ left
|
|||
ugexe | pipe :p deprecation messages from IO::Handle: github.com/rakudo/rakudo/blob/nom/...dle.pm#L13 | 19:23 | |
as in im not calling pipe directly. Some core feature like Proc::Async must be using it | |||
FROGGS | ugexe: are you calling CompUnit.precomp by any chance? | 19:27 | |
ugexe | yeah | 19:29 | |
FROGGS | that's causing it... | 19:30 | |
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:31 | |
19:32
_mg_ left
|
|||
FROGGS | ugexe: open(:p) is deprecated and warns, and pipe() which is meant to be used right now just calls open(:p) :o( | 19:32 | |
19:33
akakcolin left
|
|||
timotimo | %) | 19:34 | |
19:35
akakcolin joined
|
|||
ugexe | that pipe() will just get replaced with Proc.pipe() etc fork in the future eh? | 19:35 | |
s/fork/branch/ | |||
timotimo | FROGGS: großartige arbeit :) | 19:39 | |
FROGGS | :D | ||
ugexe: will be replaced with shell(...), run(...) or Proc.new(...).shell(...) etc | 19:40 | ||
19:43
kurahaupo joined
19:44
akakcolin left
|
|||
timotimo | we'll end up with ten different ways to invoke external programs :\ | 19:45 | |
we'll also have to have something like python's shlex module, eh? | 19:46 | ||
ugexe | i dont mind a billion different ways after dealing with too few ways :) | 19:47 | |
but i draw my limit at a billion | 19:48 | ||
timotimo | mhm | 19:49 | |
dalek | kudo/openpipe3: b9980d9 | FROGGS++ | src/core/IO/Handle.pm: use nqp::shell instead of removed nqp::openpipe |
||
19:50
yqt joined
|
|||
dalek | p/openpipe3: 8c606c6 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: remove mapping for nqp::openpipe on moar |
19:50 | |
FROGGS | timotimo: shell("cmd", :out) will result in a call to: Proc.new(:out).shell("cmd") | 19:51 | |
timotimo | ok | ||
FROGGS | and run(@args, :out) will result in a call to: Proc.new(:out).run(@args) | 19:52 | |
so Proc is a bit like ProcessBuilder | |||
dunno what shlex is though | |||
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 | ||
jnthn | A lower-pitched shrillex? :P | ||
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? | ||
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? | ||
skids | m: role A [ :$a where { $_ == False } ] { }; class B does A[:!a] { }; | 19:57 | |
camelia | ( no output ) | ||
skids | m: role A [ :$a where { $_ == False } = True ] { }; class B does A[:!a] { }; | ||
camelia | rakudo-moar 175c4d: OUTPUT«===SORRY!===No appropriate parametric role variant available for 'A'» | ||
skids | recent breakage | ||
star: role A [ :$a where { $_ == False } = True ] { }; class B does A[:!a] { }; | |||
camelia | star-m 2015.03: OUTPUT«===SORRY!===No appropriate parametric role variant available for 'A'» | ||
skids | hrm. | ||
zacts | hello | 19:58 | |
skids | was not expecting that last one to fail. | ||
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. | ||
FROGGS | hi zacts | ||
masak | hi zacts | ||
19:59
rindolf left
|
|||
skids | I've been using named args in roles for several years now. | 19:59 | |
jnthn: They are actually a big part of the Sum API. | 20:00 | ||
20:01
kst left
|
|||
skids | m: role A [ $a where { $_ == False } ] { }; class B does A[False] { }; # anyway it is not a named arg thing | 20:01 | |
camelia | ( no output ) | ||
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
|
|||
skids | role A [ $a where { $_ == False } = True ] { }; class B does A[False] { }; | 20:02 | |
m: role A [ $a where { $_ == False } = True ] { }; class B does A[False] { }; | |||
camelia | rakudo-moar 175c4d: OUTPUT«===SORRY!===No appropriate parametric role variant available for 'A'» | ||
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» | ||
jnthn | There you go | ||
It's parsing the default as an assignment there somehow. | |||
star: multi foo($a where { $_ == False } = True) { }; foo(False); | |||
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» | ||
jnthn | Maybe that's what changed. | ||
skids | Oh right, I know now what must be done. It is an old bug. | ||
jnthn | I wonder how STD parses that | 20:04 | |
I dont't know how to get STD to show the difference though | |||
skids | m: role A [ $a where { $_ == False }= True ] { }; class B does A[False] { }; | ||
camelia | ( no output ) | ||
skids | It just seems to have crept into places it did not used to be, I think. | ||
jnthn | | where <EXPR('i=')> | 20:06 | |
skids | RT#123623 | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123623 | ||
jnthn | That's item assignment. | ||
20:06
domidumont joined
|
|||
jnthn | But yeah, seems it's nothing to do with roles, and everything to do with signatures. | 20:07 | |
The prec limit seems right though | |||
ohhh | 20:08 | ||
if $inprec lt $preclim { | 20:09 | ||
But sTD has | |||
if $inprec le $preclim { | |||
zacts | what are the main issues rakudo perl6 is facing for developers? | 20:10 | |
and what is a good newbie entrypoint into rakudo (other than learning perl6 itself)? | |||
jnthn | And if I change it in NQP to "le" then I get parse fails in NQP... | 20:13 | |
moritz | zacts: github.com/edumentab/rakudo-and-nq...als-course | ||
zacts | cool | ||
jnthn | uh, maybe legitimately | 20:14 | |
zacts | moritz: and how about current setbacks / issues facing developers? | ||
what are the main problems that will need to be solved to make rakudo production ready? | |||
jnthn | std: my $a; my $b; defined($a) ?? $a := $b !! $b | ||
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 !! $bParse failedFAILED 00:00 138m» | ||
skids | zacts: It's pretty complicated in there and the bus factor is a bit low. | 20:15 | |
jnthn | Also, nobody has exactly the same definition of "production ready". | 20:18 | |
dalek | ast: 7a175ae | usev6++ | S (2 files): Use existing ticket number RT #118069 |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=118069 | ||
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:19 | |
For others it's "wish the concurrency was more stable", but developers who grok that area are few and far between. | 20:21 | ||
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 :) | |||
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:22 | ||
20:25
Khisanth left
|
|||
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:26 | |
hoelzro | speaking of LHF, I was just talking to Milwaukee.pm about that last night after my hacking on Rakudo tal | 20:27 | |
*talk | |||
20:27
uncleyea1 is now known as uncleyear,
uncleyear left,
uncleyear joined,
darutoko left
|
|||
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 | |
20:28
FROGGS[mobile] left
|
|||
hoelzro | so I'm wondering if we should have a "low hanging fruit" tag | 20:28 | |
jnthn | std: 1 ?? 2 ?? 3 !! 4 !! 5 | ||
camelia | std 28329a7: OUTPUT«ok 00:00 136m» | ||
jnthn | std: 1 ?? 2 ?? first 3 !! first 4 !! 5 | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===List operator is not allowed inside ??!!; please use parens at /tmp/C8v1Oqd_85 line 1:------> 031 ?? 2 ?? first 3 !!7⏏5 first 4 !! 5Parse failedFAILED 00:00 136m» | ||
20:28
Khisanth joined
20:29
bin_005 joined
|
|||
masak | hoelzro: didn't we have a "low hanging fruit" tag in RT at some point? | 20:30 | |
jnthn | LHF | ||
And yeah, it's been used | |||
maybe is somewhere else | |||
masak | maybe it's still there? :) | ||
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)…» | ||
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 } } | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Undeclared name: 'MapIter' used at line 1Undeclared routine: 'nqp::istype' used at line 1Check failedFAILED 00:00 152m» | ||
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 } } | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Undeclared name: 'MapIter' used at line 1Check failedFAILED 00:00 152m» | ||
hoelzro | I don't see it in RT | ||
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 } } | ||
camelia | std 28329a7: OUTPUT«ok 00:00 153m» | ||
jnthn | bah | 20:32 | |
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 failedFAILED 00:00 150m» | ||
20:35
kaare__ left
|
|||
dalek | kudo/nom: d474242 | jnthn++ | src/core/Any.pm: Fix listop use inside ?? ... !! We don't yet choke on it like STD does, but when we start to this will be a problem. |
20:35 | |
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:36 | |
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! | ||
jnthn | With that fixed, we make it through the Rakudo build and "make test" | 20:39 | |
And it fixes the parse bug with the default | |||
timotimo | good catch | 20:40 | |
jnthn | Now for the spectest fallout... | ||
20:40
naptastic joined
|
|||
jnthn | ugh, there is some too | 20:40 | |
naptastic | p6: my $foo='string'; say "barf {$foo} frab" | ||
camelia | rakudo-moar 175c4d: OUTPUT«barf string frab» | ||
20:40
domidumont left
|
|||
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:1barf frab» | ||
naptastic | p6: my $foo='string'; say "barf \{} frab" | ||
camelia | rakudo-moar 175c4d: OUTPUT«barf {} frab» | ||
naptastic | p6: my $foo='string'; say "barf {\} frab" | ||
camelia | rakudo-moar 175c4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileYou can't backslash thatat /tmp/tmpfile:1------> 3my $foo='string'; say "barf {\7⏏5} frab" expecting any of: prefix term» | ||
naptastic | Is there a way to use curlies in an interpolating string in Perl 6 without escaping them? | ||
labster | jnthn++ for the compiler reserved ops error, very nice. | ||
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 | ||
naptastic | Guess I have some more reading to do | ||
masak | S02 has the details | ||
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 » | ||
jnthn | m: my $x = 'nyan'; say q:s"$x cat ~=={.^.}" | ||
camelia | rakudo-moar 175c4d: OUTPUT«nyan cat ~=={.^.}» | ||
naptastic | Oh my! I do have some reading to do! | ||
jnthn | q is the thing that knows about backslash escapes, and :s turns on interpolating scalars | 20:44 | |
I think I did an advent blog post on quoting stuff a couple of years ago... | |||
Though there's a decent chance this is described in doc.perl6.org somewhere too... | 20:45 | ||
20:45
beastd joined
|
|||
labster | No, doc.perl6.org/language/quoting needs a bit more | 20:45 | |
jnthn | Feel free to steal examples from the blog post :) | 20:46 | |
Unlucky. 13 spectests have regressiosn thanks to my EXPR fixes... | |||
labster | m: my $x = 'nyan'; say qq:!c"$x cat ~=={.^.}" # just turns off closure interpolation | ||
camelia | rakudo-moar 175c4d: OUTPUT«nyan cat ~=={.^.}» | ||
jnthn | Aye, that's another way | 20:47 | |
Also, there's gotta be a better ascii art nyan cat... | |||
naptastic | btw | 20:48 | |
^..^ is a bat | |||
I don't care what anyone else says | |||
labster | naptastic: design.perl6.org/S02.html#Adverbs_on_quotes | ||
naptastic | it's a bat. | ||
20:48
salva joined
|
|||
naptastic | oh gawd, :x | 20:48 | |
labster | yes, that's Perl 6's bat operator | ||
masak | naptastic: when Gotham needs help, they project ^..^ onto the clody sky. | ||
labster | when masak needs help, he projects »ö« | 20:49 | |
masak | Camelia, I summon thee! | ||
jnthn | m: 'nananananananana' ^..^ 'man!' | 20:50 | |
camelia | ( no output ) | ||
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» | ||
japhb | .oO( Nana-na-na, nana-na-na, heeyyy, GOODBYE ) |
||
naptastic | Ok, good, that's what I thought | ||
20:51
diana_olhovik_ left
|
|||
labster | obligatory: xkcd.com/851/ | 20:52 | |
[ptc] | done; | ||
exit 0; | |||
sorry! | 20:53 | ||
timotimo | FINISH SECTION | ||
labster | __END__ | ||
masak | :q! | 20:58 | |
jnthn | std: my @foo; my $exists = @foo[0]:exists; | 20:59 | |
camelia | std 28329a7: OUTPUT«ok 00:00 140m» | ||
masak | sexists! | ||
20:59
cognominal left
|
|||
PerlJam | gist.github.com/perlpilot/525c50dc95880e7388a2 | 20:59 | |
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 github.com/perlpilot/p6-lapacke if you want to try it yourself. | ||
labster | ESLOWNESS | ||
PerlJam | (it's a simple interface to LAPACK) | ||
jnthn | PerlJam: Did you precomp any of that? | ||
PerlJam | no. I did not. | ||
jnthn | OK, so it's probably mostly parse/compilation time. | 21:02 | |
PerlJam | Aye. | ||
jnthn | (Which we still need to get faster.) | ||
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 :( | ||
masak | PerlJam: it reminds me of the November load times back in 2008 :) | ||
PerlJam: we just look at them and went "ok, this is not web scale" | 21:07 | ||
it baseically forced us to precompile. | |||
jnthn | std: my @foo; (my $exists = @foo[0]):exists; | 21:08 | |
camelia | std 28329a7: OUTPUT«ok 00:01 141m» | ||
jnthn | Does anybody have an STD? | ||
masak | *snrk* | ||
jnthn | If so, could you get me the AST it spits out for | ||
std: my @foo; my $exists = @foo[0]:exists; | |||
camelia | std 28329a7: OUTPUT«ok 00:00 140m» | ||
21:09
bin_005 left
|
|||
jnthn | Because I think STD is getting it wrong. | 21:09 | |
And attaching the :exists adverb wrongly | |||
'cus infixish has prec i= | |||
(%item_assignment) | |||
And we preclimit to %item_assignment for initializers | |||
So we end up trying to adverb completely the wrong thing. | 21:10 | ||
dalek | pan style="color: #395be5">perl6-examples: 1fea69c | paultcochrane++ | categories/cookbook/09directories/09-05-all-files-dir.pl: [cookbook] pass dir to process as command line arg |
||
perl6-examples: da6fc19 | paultcochrane++ | categories/cookbook/09directories/09-05-all-files-dir.pl: | |||
perl6-examples: [cookbook] be slightly more explicit about what's being processed | |||
21:10
dalek left
21:11
dalek joined,
ChanServ sets mode: +v dalek
|
|||
bartolin | jnthn: my STD is from October 2014. That's probably too old? | 21:13 | |
jnthn | bartolin: It's probably fine actually | ||
bartolin: I doubt this aspect has changed for a couple of years | |||
Because STD only parses, this thing coulda easily gone unknown for a long time | |||
bartolin | jnthn: ok, is that what you need: gist.github.com/usev6/3697d60ce7fe77f0d680 | 21:14 | |
jnthn | And Rakudo's had a bug that's been hiding it. | ||
21:14
espadrine joined,
bin_005 joined
|
|||
jnthn | bartolin: Yes | 21:15 | |
Would lvoe second opinions, but that looks busted | |||
The VAST::Adverb is on the scope declarator | 21:16 | ||
21:16
RabidGravy left
21:17
naptastic left
|
|||
jnthn | bartolin: Thanks, I think that confirms I'm looking at STD bug. | 21:18 | |
Unfortunately, I don't immediately know what to do about this... | |||
21:18
espadrine_ joined
|
|||
bartolin | yw | 21:18 | |
21:19
espadrine left
|
|||
timotimo | looks like something TimToady ought to have a look at | 21:20 | |
21:20
zacts left
|
|||
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
muraiki left
|
|||
jnthn | Yeah, though maybe I can get an answer if he drops by :) | 21:22 | |
timotimo | that'd be nice | 21:23 | |
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. | ||
masak | jnthn++ | 21:25 | |
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
salva left
|
|||
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:26 | |
21:26
nowan_ left
|
|||
masak | well, the '=' *is* a higher point in the AST than '[0]'... | 21:27 | |
jnthn | masak: According to the VAST, it finds the whole scope decl | 21:28 | |
masak: Thing is, the = there is not parsed as an infix | |||
masak: Initializers are a special form. | |||
masak | oh? | ||
oh, right. | |||
jnthn | Thus why we hit the preclimit. | ||
I suspect this issue can be made to manifest itself somehwere else, though, with enough creativity | 21:29 | ||
21:29
nowan joined
|
|||
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. | ||
jnthn | masak: Right, I think we agree that "my $exists = @foo[0]:exists" should see the adverb go onto the @foo[0] | 21:30 | |
masak: The problem is that in Rakudo it only did because we had a bug with preclimit handling. | |||
masak | nodnod | ||
jnthn | masak: And when I bring us in line with STD, I uncovered that STD also has this wrong. | ||
masak | intriguing! | ||
fix one thing, another problem plops up. | |||
it's like a waterbed of correctness ;) | |||
jnthn | Something like :) | 21:31 | |
21:39
vendethiel joined
21:41
espadrine_ left,
espadrine joined
21:43
naptastic joined
|
|||
naptastic | p6: my $foo='barf'; say ͼ is $foo foo? ͽ | 21:44 | |
camelia | rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> 3my $foo='barf'; say ͼ is $foo7⏏5 foo? ͽ expecting any of: infix infix stopper postfix statement …» | ||
naptastic | p6: my $foo='barf'; say ͼ is foo? ͽ | ||
camelia | rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileBogus postfixat /tmp/tmpfile:1------> 3my $foo='barf'; say ͼ is foo7⏏5? ͽ expecting any of: infix infix stopper postfix statement end …» | ||
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/tmpfileUnsupported 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; | ||
camelia | rakudo-moar d47424: OUTPUT«baz» | ||
naptastic | p6: my $foo = 'bar'; $foo ~~ s߷ar߷az߷; print $foo; | ||
camelia | rakudo-moar d47424: OUTPUT«baz» | ||
naptastic | p6: my $foo = 'bar'; $foo ~~ sxABarxBBxABazxBB; print $foo; | 21:49 | |
camelia | rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileMissing infix inside hyperat /tmp/tmpfile:1------> 3my $foo = 'bar'; $foo ~~ s«ar»«7⏏5az»; print $foo; expecting any of: infix infix stopper» | ||
21:49
synbot6 left
|
|||
naptastic | hmm... why didn't it like that? | 21:50 | |
p6: my $foo = 'bar'; $foo ~~ s<<ar>><<az>>; print $foo; | |||
camelia | rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUnsupported use of brackets around replacement; in Perl 6 please use assignment syntaxat /tmp/tmpfile:1------> 3my $foo = 'bar'; $foo ~~ s<<ar>>7⏏5<<az>>; print $foo;» | ||
naptastic | p6: my $foo = 'bar'; $foo ~~ s<ar><az>; print $foo; | ||
camelia | rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUnsupported use of brackets around replacement; in Perl 6 please use assignment syntaxat /tmp/tmpfile:1------> 3my $foo = 'bar'; $foo ~~ s<ar>7⏏5<az>; print $foo;» | ||
naptastic | wtf? | ||
naptastic goes to read | |||
FROGGS | p6: my $foo = 'bar'; $foo ~~ s«ar» = 'az'; print $foo; | 21:51 | |
camelia | rakudo-moar d47424: OUTPUT«baz» | ||
masak | FROGGS++ # faster | ||
m: my $foo = 'bar'; $foo ~~ s/ar/az/; print $foo; | |||
camelia | rakudo-moar d47424: OUTPUT«baz» | ||
jnthn | p6: my $foo = 'b51 bomber'; $foo ~~ s<\d+> += 1; print $foo; | 21:52 | |
camelia | rakudo-moar d47424: OUTPUT«b52 bomber» | ||
jnthn | Just had to show that one off :P | ||
masak | naptastic: only when you use open/close delimiters is there a parsing problem. | ||
naptastic | Hah, ok. | ||
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 ;) | ||
naptastic | That's... going to take some getting used to. | 21:53 | |
I use s{}{} all the time, to avoid the 'dancing matchsticks' effect | |||
masak | the good news, as jnthn++ hints at, is that we gained quite a bit of expressive power. | ||
vendethiel | \o #perl6 o/ | 21:58 | |
masak | o/ \o | 22:00 | |
dalek | osystem: f68db9e | tony-o++ | META.list: weeeee, a data::dump 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 | |
masak | :) | 22:13 | |
22:14
coffee` is now known as scribouilleur
|
|||
jnthn | f yeah! | 22:17 | |
22:28
FROGGS left
|
|||
naptastic | Has anyone made a comprehensive list of which pairing characters can be used together? | 22:30 | |
masak | 'night, #perl6 | ||
naptastic | night masak | 22:31 | |
vendethiel | 'night | ||
22:31
espadrine left
|
|||
jnthn | naptastic: github.com/perl6/nqp/blob/master/s...mar.nqp#L4 | 22:32 | |
(It's comprehensive by definition 'cus it's the one the parser uses. :)) | 22:33 | ||
naptastic | Hahahaha | ||
thanks jnthn! It's not very pretty as-is, but I can work with it. | |||
hmm, I wonder... | |||
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 | ||
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] | |||
camelia | rakudo-moar d47424: OUTPUT«5===SORRY!5===Unrecognized backslash sequence: '\x'at /tmp/tmpfile:1------> 032243]\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------> 032243]…» | ||
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 | ||
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 | |||
[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 | |||
timotimo | yeah, no, that ain't gonna fly :) | ||
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 | ||
tony-o | nice | ||
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]\ | ||
x[FF09]\x[FF1C]\x[FF1E]\x[FF3B]\x[FF3D]\x[FF5B]\x[FF5D]\x[FF5F]\x[FF60]\x[FF62]\x[FF63]"; | |||
oooooookay nope nevermind. | |||
tony-o | put it in a gist | ||
naptastic | I swear I've got Perl 6 installed here someplace... | 22:35 | |
perl6 -e 'say "(blablablalbalbrarrrrgh)";' gave some pretty impressive output, almost all of which was actually readable! | 22:36 | ||
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> | ||
naptastic | ooh! That's useful! | 22:39 | |
What's gist? | |||
timotimo | gist.github.com is gist | ||
naptastic | p6: gist.github.com/naptastic/27da641c292d33e40ead | 22:40 | |
camelia | rakudo-moar d47424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUnable 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
|
|||
timotimo | it's the one nopaste service camelia understands | 22:40 | |
no private pastes, though | |||
naptastic | d'oh | ||
timotimo | :) | ||
naptastic | p6: gist.github.com/naptastic/06bb2c16a3f1a618b87a | ||
tony-o | m: gist.github.com/tony-o/9bff8e7c78fc484fba1f | ||
camelia | rakudo-moar d47424: OUTPUT«<>[](){}()<>[]{}«»༺༻༼༽᚛᚜‘’‚’‛’“”„”‟”‹›⁅⁆⁽⁾₍₎∈∋∉∌∊∍∕⧵∼∽≃⋍≒≓≔≕≤≥≦≧≨≩≪≫≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉…» | ||
rakudo-moar d47424: OUTPUT«like this» | |||
tony-o | should this line also include 'lib'? -> github.com/tadzik/panda/blob/maste...da.pm#L166 | 22:44 | |
jnthn | sleep & | ||
22:45
cognominal left
|
|||
naptastic | aw man, camelia truncated the output! | 22:45 | |
22:52
spider-mario left
|
|||
naptastic | utf8 ༺ | 22:59 | |
timotimo | hmm | 23:22 | |
i never put nqp::getcodelocation into any method or so for code objects | |||
skids | Been noticing "MVMArray: Can't pop from an empty array" lately during inside backtrace generation. Here's a one-liner: | 23:25 | |
m: '%s : %s'.fmt(1).say | |||
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…» | ||
skids | Seen it in more places than that though. | 23:26 | |
23:27
skarn left
23:34
skarn joined
23:38
grandtheftjiujit joined,
grandtheftjiujit left
23:40
grandtehftjiujit joined
|
|||
timotimo | where does that pop? :\ | 23:47 | |
23:59
dj_goku joined
|
|||
timotimo | ah | 23:59 |