Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-03-02

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

All times shown according to UTC.

Time Nick Message
00:11 pyrimidine joined #perl6-dev
00:16 llfourn joined #perl6-dev
00:35 pyrimidine joined #perl6-dev
00:49 cog__ joined #perl6-dev
00:49 kalkin- joined #perl6-dev
01:05 dogbert17_ joined #perl6-dev
01:16 nebuchadnezzar joined #perl6-dev
02:20 kalkin- joined #perl6-dev
02:49 ilbot3 joined #perl6-dev
02:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
04:10 ZzZombo joined #perl6-dev
04:11 ZzZombo joined #perl6-dev
06:47 pyrimidine joined #perl6-dev
06:49 bartolin joined #perl6-dev
06:50 RabidGravy joined #perl6-dev
06:53 llfourn joined #perl6-dev
07:26 [Tux] This is Rakudo version 2017.02-141-g9d497e9db built on MoarVM version 2017.02-20-g773711e1
07:26 [Tux] csv-ip5xs        2.853
07:26 [Tux] test            12.447
07:26 [Tux] test-t           4.929 - 4.969
07:26 [Tux] csv-parser      12.972
07:54 llfourn joined #perl6-dev
08:02 llfourn joined #perl6-dev
08:19 pyrimidi_ joined #perl6-dev
08:33 lizmat Files=1177, Tests=55955, 192 wallclock secs (11.41 usr  4.46 sys + 1138.59 cusr 108.23 csys = 1262.69 CPU)
08:57 ZzZombo_ joined #perl6-dev
08:57 ZzZombo_ joined #perl6-dev
09:35 lizmat how does one invoke code in METAOP_REDUCE_RIGHT ?
09:36 vendethiel joined #perl6-dev
09:36 lizmat afk for a few hours&
09:39 IOninja .tell lizmat probably with `m: say [**] 2, 3, 4` or any other sub () is assoc('right') {}
09:39 yoleaux2 IOninja: I'll pass your message to lizmat.
09:41 Geth ¦ rakudo/nom: 2dd2eb71da | (Zoffix Znet)++ | docs/release_guide.pod
09:41 Geth ¦ rakudo/nom: s/panda/zef/;
09:41 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2dd2eb71da
09:51 IOninja .tell lizmat turns out not any sub, it has to be an op: sub infix:<foo>($a, $b) is assoc<right> { "($a, $b)" }; say [foo] 1, 2, 3, 4
09:51 yoleaux2 IOninja: I'll pass your message to lizmat.
09:54 Geth ¦ rakudo/nom: 7 commits pushed by (Fernando Correa de Oliveira)++, (Zoffix Znet)++
09:54 Geth ¦ rakudo/nom: eac71817ae | Add ⁇ ‼ operator
09:54 Geth ¦ rakudo/nom: 7cb2f46e45 | Fix
09:54 Geth ¦ rakudo/nom: 1ebe41d9e3 | Fixing the align
09:54 Geth ¦ rakudo/nom: a53b84aaed | Unify ternary explanation
09:54 Geth ¦ rakudo/nom: d8f75f2802 | Fix typo
09:54 Geth ¦ rakudo/nom: e8167ec851 | Change to ??!! ⁇‼ be a single token
09:54 Geth ¦ rakudo/nom: ed971dfc82 | Merge pull request #1029 from FCO/nom
09:54 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/compare/2dd2eb71da...ed971dfc82
09:55 Geth ¦ roast: b8965869d2 | (Fernando Correa de Oliveira)++ | S03-operators/ternary.t
09:55 Geth ¦ roast: Add tests for unicode version of ?? !! (#246)
09:55 Geth ¦ roast: review: https://github.com/perl6/roast/commit/b8965869d2
10:18 Geth ¦ rakudo/nom: afa5245ec4 | (Zoffix Znet)++ | src/Perl6/Grammar.nqp
10:18 Geth ¦ rakudo/nom: Comment why {} is in the token
10:18 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/afa5245ec4
10:18 llfourn joined #perl6-dev
10:42 Geth ¦ rakudo/nom: 9d138b974a | (Zoffix Znet)++ | src/Perl6/Grammar.nqp
10:42 Geth ¦ rakudo/nom: Fix Engrish in comment
10:42 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d138b974a
10:49 gfldex when is the next release?
10:49 IOninja gfldex: April
10:50 IOninja NeuralAnomaly: status
10:50 NeuralAnomaly IOninja, [✘] Next release will be in 2 weeks and 2 days. Since last release, there are 23 new still-open tickets (17 unreviewed and 0 blockers) and 154 unreviewed commits. See http://perl6.fail/release/stats for details
11:47 agentzh joined #perl6-dev
12:08 lizmat IOninja: thanks!
12:08 yoleaux2 09:39Z <IOninja> lizmat: probably with `m: say [**] 2, 3, 4` or any other sub () is assoc('right') {}
12:08 yoleaux2 09:51Z <IOninja> lizmat: turns out not any sub, it has to be an op: sub infix:<foo>($a, $b) is assoc<right> { "($a, $b)" }; say [foo] 1, 2, 3, 4
12:10 Ven joined #perl6-dev
12:32 timotimo https://twitter.com/YtvwlD/status/837279339557318656
12:37 timotimo just a datapoint for the null-in-paths discussion
12:40 Ven joined #perl6-dev
12:45 masak timotimo: pet peeve: NUL
12:45 timotimo OK!
12:46 masak (I think I got that pet peeve from nwc10, maybe)
12:46 IOninja "Sorry, you're not authorized to view these Tweets.".... well OK then
12:46 masak IOninja: probably because they contain a NUL byte :P
12:47 masak (oh noes, and now this channel linked to the tweet) o.O
12:47 timotimo what.
12:47 timotimo oh, damn.
12:47 timotimo executive summary: os.mkdir(s) gives "ValueError: embeded null byte"
12:47 timotimo and open(s, "w") does the same
12:48 masak seems Python stops the madness at the gates, then
12:49 masak surely that's an "illegal arguments exception", that is, Python starts by checking for a NUL before sending it on to C or whatever?
12:55 timotimo i don't think they have something like a "path type"
12:55 lizmat m: die "naughty!" with "abc\0def".index("\0")
12:55 camelia rakudo-moar 9d138b: OUTPUT: «naughty!␤  in block <unit> at <tmp> line 1␤␤»
12:55 timotimo just "a string that's used in some path-related context"
13:00 elaADnlxie joined #perl6-dev
13:01 IOninja Well, just blocking nullbytes in IO::Path seems sane to me. If there's some weird usecase where you need them in filenames, use NativeCall.
13:02 llfourn joined #perl6-dev
13:04 IOninja A related question: what's our security vulnerability policy? I haven't looked in detail at Zefram's tickets, but at first glace it sounds like it's possible to exploit a program by feeding it diacritics/nuls even if it does some checks.
13:04 IOninja And if it's not possible here, but someone reports a ticket that shows such possibilities... what's our plan of action?
13:05 lizmat none that I know of, probably a good thing to discuss at the Perl Toolchain Summit
13:05 timotimo m: die "naughty!" with "abc\0\x[308]def".index("\0")
13:05 camelia rakudo-moar 9d138b: OUTPUT: «naughty!␤  in block <unit> at <tmp> line 1␤␤»
13:05 timotimo that's nice
13:05 IOninja lizmat: when is it?
13:07 lizmat http://blogs.perl.org/users/book1/2017/02/about-the-perl-toolchain-summit.html   # background info
13:07 IOninja held in Lyon, France from Thursday 11th May 2017 through Sunday 14th May 2017
13:07 lizmat there you go
13:07 lizmat IOninja: if you could make it there, that would be brill!
13:09 IOninja I don't know any French though.
13:09 DrForr Lyon, nice.
13:09 lizmat pretty sure the language is English  :-)
13:09 IOninja "sava" that's all I know
13:09 DrForr IOninja: I got around just fine a few years ago.
13:10 IOninja Pass.
13:10 lizmat :-(
13:24 masak :D # "sava"++
13:38 DrForr Several good cheese shops around where I stayed, and I was at an AirBNB-type place.
13:39 timotimo do any of them actually have cheese?
13:41 DrForr Strangely, they did.
13:41 IOninja m: "/tmp/root/tmp".IO.mkdir; "/tmp/root/secret.txt".IO.spurt: 'p4sswrd';
13:41 camelia rakudo-moar 9d138b: ( no output )
13:41 IOninja m: chdir "/tmp/root/tmp"; my $user-input = ".."; $user-input.IO.resolve.starts-with: $*CWD.resolve or die "hax!"; .say for dir $user-input
13:41 camelia rakudo-moar 9d138b: OUTPUT: «hax!␤  in block <unit> at <tmp> line 1␤␤»
13:41 IOninja Hey cool! My awesome program catches all the hax0rs!
13:41 IOninja m: chdir "/tmp/root/tmp"; my $user-input = "..\0"; $user-input.IO.resolve.starts-with: $*CWD.resolve or die "hax!"; .say for dir $user-input
13:41 camelia rakudo-moar 9d138b: OUTPUT: «"..␀/tmp".IO␤"..␀/secret.txt".IO␤»
13:41 IOninja oops
13:42 IOninja At least reading them fails, saying it's a directory
13:42 cog__ m: my str $a where * !~~ /\0/ = 'a'
13:42 camelia rakudo-moar 9d138b: OUTPUT: «Type check failed in assignment to $a; expected <anon> but got Str ("a")␤  in block <unit> at <tmp> line 1␤␤»
13:44 IOninja heh
13:45 IOninja there's some bustification with where clauses on `my`; this is probably part of it
13:45 cog__ m: my $a where * == 1 = 1; $a = 2
13:45 camelia rakudo-moar 9d138b: OUTPUT: «Type check failed in assignment to $a; expected <anon> but got Int (2)␤  in block <unit> at <tmp> line 1␤␤»
13:45 cog__ it seems to work fine on simpler expressions
13:45 IOninja it's the typecheck
13:45 cog__ m: my int $a where * == 1 = 1; $a = 2
13:45 camelia rakudo-moar 9d138b: OUTPUT: «Type check failed in assignment to $a; expected <anon> but got Int (1)␤  in block <unit> at <tmp> line 1␤␤»
13:46 cog__ m: my Int $a where * == 1 = 1; $a = 2
13:46 camelia rakudo-moar 9d138b: OUTPUT: «Type check failed in assignment to $a; expected <anon> but got Int (2)␤  in block <unit> at <tmp> line 1␤␤»
13:46 IOninja m: my int $a where * == 1 = 1; $a = 1
13:46 camelia rakudo-moar 9d138b: OUTPUT: «Type check failed in assignment to $a; expected <anon> but got Int (1)␤  in block <unit> at <tmp> line 1␤␤»
13:46 IOninja m: my $a where * == 1 = 1; $a = 1
13:46 camelia rakudo-moar 9d138b: ( no output )
13:47 timotimo huh, we support native variables with a "where"? how is that even ...
13:47 cog__ m: my $a where * == 1; $a = 1
13:47 camelia rakudo-moar 9d138b: ( no output )
13:47 IOninja What's special about native variables with a where?
13:49 cog__ I suppose the question is where (sic) the info about the where is stored
13:57 IOninja Feels like the Right Thing would be to patch up the nul byte thing and do a point release, but that's a bit troublesome since regular users use Star, don't they
13:57 * IOninja wishes Star's release was as automated as Rakudo's
14:03 jnthn The my $a where ... generates an anonymous refinement type
14:03 jnthn And no, they ain't going to work well with native types; we should detect that
14:04 IOninja jnthn: and throw?
14:05 jnthn Yeah, compile-time error
14:05 IOninja m: sub (int $ where * %% 2){}(42)
14:05 camelia rakudo-moar 9d138b: ( no output )
14:05 IOninja OK
14:05 jnthn That case may be OK 'cus the signature handling of it works a bit differently
14:05 jnthn Yeah, we get away with it on sigs
14:05 jnthn Hm
14:06 jnthn I wonder what it'd take to just make it work
14:06 jnthn That'd be nicer still
14:06 jnthn Though we can only really do that on anonymous ones stuck on a varaible, I think
14:06 jnthn Oh, and we'd have to code-gen the invocation of the where clause
14:06 jnthn So yeah, it's do-able, but it's a bit hairy
14:16 pmurias joined #perl6-dev
14:32 Geth ¦ nqp/master: 14 commits pushed by (Pawel Murias)++
14:32 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/2780ed774a...b93f06bbde
14:41 FROGGS joined #perl6-dev
14:45 elaADnlxie joined #perl6-dev
14:56 Geth ¦ rakudo/nom: 60a8f9e715 | (Elizabeth Mattijsen)++ | src/core/metaops.pm
14:56 Geth ¦ rakudo/nom: Streamline METAOP_REDUCE_RIGHT 2 param op version
14:56 Geth ¦ rakudo/nom:
14:56 Geth ¦ rakudo/nom: - rewrite using nqp ops
14:56 Geth ¦ rakudo/nom: - remove use of iterator: all the values are already in a lowlevel list
14:56 Geth ¦ rakudo/nom: - 30% faster for 2 elems, 50% for 3+ elem cases
14:56 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/60a8f9e715
15:34 pyrimidine joined #perl6-dev
15:49 agentzh joined #perl6-dev
16:06 IOninja I'm gonna rename the 'fap' method in IO::Path...
16:06 mst ...
16:06 mst yes. good plan.
16:06 IOninja :)
16:06 IOninja At least it's a private fap....
16:07 IOninja https://github.com/rakudo/rakudo/blob/nom/src/core/IO/Path.pm#L22-L28
16:10 mst oh, yes, 'this object faps itself in private' makes it much less of an innuendo
16:15 pyrimidine joined #perl6-dev
16:17 Geth ¦ rakudo/nom: 164e393f17 | (Zoffix Znet)++ | src/core/IO/Path.pm
16:17 Geth ¦ rakudo/nom: Use more descriptive name for a private method
16:17 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/164e393f17
16:22 lizmat IOninja++
16:26 gfldex m: constant &foo = &infix:<:=>;
16:26 camelia rakudo-moar 60a8f9: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    infix:<:=> used at line 1. Did you mean 'infix:<=>', 'infix:<+|>', 'infix:<∖>', 'infix:<ne>'?␤␤»
16:28 IOninja m: &infix:<:=>
16:28 camelia rakudo-moar 60a8f9: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    infix:<:=> used at line 1. Did you mean 'infix:<=>', 'infix:<+|>', 'infix:<∖>', 'infix:<ne>'?␤␤»
16:30 llfourn joined #perl6-dev
16:32 jnthn := doesn't have a sub form (it's too low-level to implement as such)
16:40 timotimo clearly "fap" is a method meant for privates.
16:56 robertle joined #perl6-dev
17:16 agentzh joined #perl6-dev
17:21 Geth ¦ roast: 1f5dead548 | (Zoffix Znet)++ | S02-types/array-shapes.t
17:21 Geth ¦ roast: Test container writeableness of .values and .pairs on shaped arrays
17:21 Geth ¦ roast:
17:21 Geth ¦ roast: RT#130440: https://rt.perl.org/Ticket/Display.html?id=130440
17:21 Geth ¦ roast: Rakudo fix: https://github.com/rakudo/rakudo/commit/dc7b688
17:21 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130440
17:21 Geth ¦ roast: review: https://github.com/perl6/roast/commit/1f5dead548
17:22 pyrimidine joined #perl6-dev
17:28 pyrimidine joined #perl6-dev
17:31 llfourn joined #perl6-dev
17:36 perlpilot_ joined #perl6-dev
18:14 nine Why is this supposed to work? require Fancy::Utilities; Fancy::Utilities::lolgreet('me');
18:14 nine Shouldn't subroutine calls get compile time checked?
18:15 TimToady only lexical ones
18:16 nine Why?
18:16 TimToady because we don't have the package to look up our variables yet
18:17 pyrimidine joined #perl6-dev
18:18 nine But that's only because we try to support accessing runtime loaded symbols in this way. But why bother? One can access that via indirect lookup making the runtimeness explicit.
18:19 nine Then the compiler would be free to check those fully qualified subroutine calls, too.
18:19 * TimToady doesn't see the point of turning 'require' into 'use'
18:20 TimToady the thing you're requiring might not even exist yet
18:21 TimToady unless by 'compiler' you're talking about 'link' time
18:21 nine TimToady: that's...actually what I think :) From my perspective 'require' is currently too close to 'use'. I'd rather demote it to making the above example into: require Fancy::Utilities; ::('Fancy::Utilities').WHO<&lolgreet>('me');
18:21 nine Thus Fancy::Utilities::lolgreet could always be a compile time lookup and runtime lookups look like ::('...')
18:22 TimToady require is supposed to introduce Fancy::Utilities already as a package name, so the ::() ought to be unnecessary
18:24 TimToady and we're supposed to have a list after the require of any additional symbols to introduce at compile time...
18:25 pyrimidine joined #perl6-dev
18:25 nine Ok, thanks for the clarification.
18:27 TimToady .oO(then again, so is 'use', but that's NYI, and how have we got so far without selective importation, I dunno...)
18:27 nine Oh...so dropping selective importation was not intentional?
18:28 TimToady not on my part :)
18:28 nine That's a great relieve :)
18:28 elaADnlxie joined #perl6-dev
18:29 nine I miss it greatly. In Perl 5 code, I always explicitly list the symbols I import not least of all so a reader has a clue where a symbol is coming from.
18:29 TimToady I think Someone Very Smart did the Simplest Thing That Could Possibly Work, and it's still kinda working
18:30 TimToady but we really need selective importation down the road to deal with import conflicts
18:30 llfourn joined #perl6-dev
18:30 TimToady and yeah, dox is also goodness
18:31 TimToady and to prevent accidentally importing the future
18:31 nine Just today I broke something because I removed some "unused" "use" statements. Turns out one of them wasn't all that unused.
18:38 jnthn The selective import syntax is :MY<&foo $bar @baz>, iirc?
18:39 TimToady well, if we allow positionals, we could assume :MY by default
18:39 TimToady like P5 does
18:39 TimToady except for the 'my' part :)
18:40 Ven joined #perl6-dev
18:41 jnthn Yeah
18:41 jnthn m: use Test <&is>
18:41 camelia rakudo-moar 164e39: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Error while importing from 'Test':␤no EXPORT sub, but you provided positional argument in the 'use' statement␤at <tmp>:1␤------> 3use Test <&is>7⏏5<EOL>␤»
18:41 jnthn Oh, riht
18:41 jnthn *right
18:42 jnthn We reserved it, in the case you didn't specify an EXPORT sub
18:43 nine m: use Test :MY<&is>;
18:43 camelia rakudo-moar 164e39: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Error while importing from 'Test': no such tag 'MY'␤at <tmp>:1␤------> 3use Test :MY<&is>7⏏5;␤»
18:44 TimToady some days, I just want a module to return a slab of text to eval inline, like a textual macro :)
18:44 nine Ok, where would I find the code that creates the stub in "require Foo::Bar"?
18:45 TimToady I'd look in Actions.nqp, prolly method statement_control:sym<require>
18:50 nine That's what I've gone through a couple of times now. The code for the import list is easy to find, but I don't see anything looking like its creating a symbol for $<module_name>
18:54 TimToady maybe just mentioning Foo::Bar stubs it already, earlier?
18:55 TimToady m: require Foo::Bar; BEGIN say ::('Foo::Bar').WHAT
18:55 camelia rakudo-moar 164e39: OUTPUT: «(Failure)␤Could not find Foo::Bar at line 0 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-1/share/perl6␤    CompUnit::Repos…»
18:55 TimToady or maybe it's not actually doing it yet
18:56 nine That would explain the absence of code :)
18:56 TimToady :D
18:58 TimToady oh, couple days ago we speculated that 'need' should just introduce the name, but actually pull in the module lazily, so that 'need' could serve as a predeclaration for circular OO modules
18:58 nine So it's only working because package lookups are done at runtime in general.
19:01 nine Aaand those lookups start at GLOBAL which collides with the urge to turn those required symbols into lexicals.
19:03 nine I'm not sure if it's really a good idea to extend those lookups to include my lexical %REQUIRE_SYMBOLS like I did with indirect lookup.
19:04 nine It really seems wrong that GLOBAL gets such special treatment when the goal was to make everything as lexical as possible...
19:09 TimToady the whole point of packages is to have global names, which is why the global names need :auth and :ver, so we have something unique to alias to lexically
19:09 TimToady the idea was never to get rid of globals, only prevent collisions in the global namespace
19:11 TimToady so lexical aliases are really the same mechanism as 'our', only the non-lexical thing is in someone else's package, rather than our own
19:20 nine Ah stupid me. In the shower I realized that we'd only generate code for a lookup in GLOBAL if we don't find the name lexically at compile time. So just creating a lexical stub will solve my problem.
19:20 nine I really should move my desk into the shower. I think so much more clearly there :)
19:27 Ven joined #perl6-dev
19:29 Geth ¦ rakudo/Str-parse-names: c10ba0e126 | (Zoffix Znet)++ | 3 files
19:29 Geth ¦ rakudo/Str-parse-names: Implement Str.parse-names
19:29 Geth ¦ rakudo/Str-parse-names:
19:29 Geth ¦ rakudo/Str-parse-names: Functionality:
19:29 Geth ¦ rakudo/Str-parse-names: - similar to "\c[BELL, BLACK HEART SUIT]", except can be used by
19:29 Geth ¦ rakudo/Str-parse-names:     users at runtime, without requiring EVAL/nqp in user's code
19:29 Geth ¦ rakudo/Str-parse-names: - Unlike \c[…] does not allow comments or anything similarly isoteric.
19:30 Geth ¦ rakudo/Str-parse-names:     The idea is this will process some sort of user input, so we want
19:30 Geth ¦ rakudo/Str-parse-names: <…commit message has 5 more lines…>
19:30 Geth ¦ rakudo/Str-parse-names: review: https://github.com/rakudo/rakudo/commit/c10ba0e126
19:30 Geth ¦ rakudo: zoffixznet++ created pull request #1031: Implement Str.parse-names
19:30 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1031
19:30 Geth ¦ roast/Str-parse-names: 5280a11a71 | (Zoffix Znet)++ | S32-str/parse-names.t
19:30 Geth ¦ roast/Str-parse-names: Test Str.parse-names routine
19:30 Geth ¦ roast/Str-parse-names:
19:30 Geth ¦ roast/Str-parse-names: Rakudo implementation: https://github.com/rakudo/rakudo/pull/1031
19:30 Geth ¦ roast/Str-parse-names: review: https://github.com/perl6/roast/commit/5280a11a71
19:31 Geth ¦ roast: zoffixznet++ created pull request #247: Test Str.parse-names routine
19:31 Geth ¦ roast: review: https://github.com/perl6/roast/pull/247
19:31 llfourn joined #perl6-dev
19:59 pyrimidine joined #perl6-dev
20:04 elaADnlxie joined #perl6-dev
20:06 Geth ¦ rakudo/Str-parse-names: 5c1761a648 | (Zoffix Znet)++ | 3 files
20:06 Geth ¦ rakudo/Str-parse-names: Implement Str.parse-names
20:06 Geth ¦ rakudo/Str-parse-names:
20:06 Geth ¦ rakudo/Str-parse-names: Functionality:
20:06 Geth ¦ rakudo/Str-parse-names: - similar to "\c[BELL, BLACK HEART SUIT]", except can be used by
20:06 Geth ¦ rakudo/Str-parse-names:     users at runtime, without requiring EVAL/nqp in user's code
20:06 Geth ¦ rakudo/Str-parse-names: - Unlike \c[…] does not allow comments or anything similarly isoteric.
20:06 Geth ¦ rakudo/Str-parse-names:     The idea is this will process some sort of user input, so we want
20:06 Geth ¦ rakudo/Str-parse-names: <…commit message has 5 more lines…>
20:06 Geth ¦ rakudo/Str-parse-names: review: https://github.com/rakudo/rakudo/commit/5c1761a648
20:07 IOninja Did dalek detect force-pushes?
20:08 jnthn I don't remember it doing so
20:08 IOninja OK then :)
20:19 [Coke] IOninja: why is parse-names plural?
20:20 IOninja [Coke]: 'cause it parses a bunch of character names
20:20 [Coke] oh, because you allow ,-sep strings - is that desired?
20:20 [Coke] ah, you can get combining chars this way into a single resulting grapheme?
20:20 IOninja IMO yes. We allow them in \c[].
20:20 * [Coke] retains his +1
20:20 [Coke] IOninja++
20:21 perlpilot_ IOninja: definitely +1
20:21 perlpilot_ IOninja: though ... what does this have to do with IO?  ;)
20:21 IOninja I'm... on a break :)
20:21 lizmat joined #perl6-dev
20:22 IOninja I do it on another box when I'm home and have a nice big monitor to look at things and box that isn't slower than molases to run things :)
20:22 IOninja Well, I have fast box as a google VM right now, but I type on it via pico.
20:22 IOninja and pico sucks
20:27 Ven joined #perl6-dev
20:29 pyrimidine joined #perl6-dev
20:33 llfourn joined #perl6-dev
20:34 Geth ¦ rakudo/nom: 5c1761a648 | (Zoffix Znet)++ | 3 files
20:34 Geth ¦ rakudo/nom: Implement Str.parse-names
20:34 Geth ¦ rakudo/nom:
20:34 Geth ¦ rakudo/nom: Functionality:
20:34 Geth ¦ rakudo/nom: - similar to "\c[BELL, BLACK HEART SUIT]", except can be used by
20:34 Geth ¦ rakudo/nom:     users at runtime, without requiring EVAL/nqp in user's code
20:34 Geth ¦ rakudo/nom: - Unlike \c[…] does not allow comments or anything similarly isoteric.
20:34 Geth ¦ rakudo/nom:     The idea is this will process some sort of user input, so we want
20:34 Geth ¦ rakudo/nom: <…commit message has 5 more lines…>
20:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5c1761a648
20:34 Geth ¦ rakudo/nom: 84cf1d2fb3 | lizmat++ | 3 files
20:34 Geth ¦ rakudo/nom: Merge pull request #1031 from rakudo/Str-parse-names
20:34 Geth ¦ rakudo/nom:
20:34 Geth ¦ rakudo/nom: Implement Str.parse-names / &parse-names
20:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/84cf1d2fb3
20:36 IOninja \o/
20:36 Geth ¦ roast: 5679afffa1 | (Zoffix Znet)++ | S32-str/parse-names.t
20:36 Geth ¦ roast: Test Str.parse-names routine (#247)
20:36 Geth ¦ roast:
20:36 Geth ¦ roast: Rakudo implementation: https://github.com/rakudo/rakudo/pull/1031
20:36 Geth ¦ roast: review: https://github.com/perl6/roast/commit/5679afffa1
20:37 gfldex All your unicode are belong to us!
20:40 pyrimidine joined #perl6-dev
20:50 pyrimidine joined #perl6-dev
20:51 gfldex IOninja: you may want to wait with docing new features until after release
20:52 perlpilot_ I think I'd rather the docs have a note about what release the feature is available in.
20:52 moritz (or just add "available in rakudo 2017.03+)
20:53 perlpilot_ We should probably be "versioning" docs in that way anyway
21:16 Geth ¦ rakudo/nom: 2cf9b5376d | (Elizabeth Mattijsen)++ | src/core/metaops.pm
21:16 Geth ¦ rakudo/nom: Streamline METAOP_REDUCE_RIGHT completely
21:16 Geth ¦ rakudo/nom:
21:16 Geth ¦ rakudo/nom: - also for infix ops with more than 2 parameters
21:16 Geth ¦ rakudo/nom: - rewrite using nqp ops
21:16 Geth ¦ rakudo/nom: - remove use of iterator
21:16 Geth ¦ rakudo/nom: - use low level list for arguments
21:16 Geth ¦ rakudo/nom: - about 2x as fast
21:16 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2cf9b5376d
21:26 pyrimidine joined #perl6-dev
21:34 llfourn joined #perl6-dev
21:38 IOninja Nah, don't add "available rakudo..." thing. We need proper infrastructure on the docs site to label stuff. We require it to make 6.d happen.
21:42 IOninja As for waiting to document... release of what? Rakudo Star? That's two months away from today. At least half the people asking questions are using rakudobrewed dev commits anyway. I don't see much wrong with documenting stuff while it's still fresh in implementor's mimd and shouting from the rooftops that Perl 6 got something new and cool. Even if you wait, people with previous releases won't have it
21:42 IOninja anyway, so what's the point. Once we have proper way to label when X was introduced, this would be entirely seamless: devs will document right away amd system will first say "nightly" and after a release say the release
21:44 IOninja Wondering about making a bot build and stresstest nightly and and make rakudobrew use that instead of HEAD by default
21:44 * IOninja leaves for the night
21:50 [Coke] (available rakudo) yes, do add that - we need to know when documented features are available, I think.
21:50 [Coke] There are multiple places where we are doing this now.
21:50 pyrimidine joined #perl6-dev
21:50 * [Coke] tries to find one example so we can discuss...
21:54 IOninja I recall us removing those...
21:54 [Coke] https://docs.perl6.org/language/unicode#Named_Sequences - though looking at it now, we probably need to explicitly mention rakudo, probably want to use something like [Available in rakudo-2017.02-*]
21:54 IOninja The language vs compiler thing
21:54 [Coke] a lot of the stuff added since 2016 isn't technically in the language yet.
21:55 IOninja We can figure those out automagically via introspection
21:55 [Coke] so do we document it? I think the practical answer is yes, but we have to make sure we're clear about when it's available.
21:55 [Coke] IOninja: sure, if we can do it automatically, I'm all for that.
21:55 IOninja Except for stuff like Mexico terniaries, I guess
21:56 [Coke] IOninja: is that test in the errata?
21:56 IOninja Nope
21:56 IOninja Which test? The fancy ternary? Nope
21:57 [Coke] so, if we doc it, we mark is available in rakudo-2017.03, etc. (at this point, if we're doing this automatically, you need all the tagged releases available when generating the docs.
21:57 [Coke] I think it helps to add them as we go for now, we can swap them out with automatically generated ones later.
21:58 [Coke] Having a standard format will definitely help with replacing them with robots later.
21:59 [Coke] (maybe we have an offline process that generates this and we run it once in a while, rather than having it be part of the build)
22:01 pyrimidine joined #perl6-dev
22:01 IOninja Yeah, having it run just in a while is better.
22:03 [Coke] Can add the class hierarchy to that. :|
22:04 [Coke] every time I get back to "oh, bootstrap it!", I end up poking at some part of the build or test. :|
22:05 geekosaur joined #perl6-dev
22:05 IOninja Side note: "available in rakudo 2017.03" is somewhat confusing to users who are told to use star.... 'cause there ain't such a release and won't be another for a month+ after 2017.03 compiler release.
22:06 IOninja And on the coolest docsite, a user selects the compiler and version they're using... and they only see stuff available in that release :D
22:09 IOninja Looking at that Unicode page.... I seee it's not just that "Starting.." blurb that refers to a specific compiler. A paragraph above reads "You can access Unicode codepoints by name: Rakudo supports all Unicode 9.0 names."
22:10 IOninja And I recall someone (pmichaud, I believe) saying how they worked hard to maintain the distinction between Perl 6 The Language and any particular compiler. And docs talking about Rakudo like it's the only thing ever made or will be made blurs that distinction quite a bit
22:11 geekosaur joined #perl6-dev
22:12 IOninja Even today, there's agentz guy with their Perl 6 compiler that they plan to make freely available. So even today, Rakudo isn't really the only thing in town.
22:12 IOninja Anyway....
22:12 * IOninja leaves for real now :)
22:18 geekosaur joined #perl6-dev
22:36 llfourn joined #perl6-dev
22:37 pyrimidine joined #perl6-dev
23:10 elaADnlxie joined #perl6-dev
23:12 llfourn joined #perl6-dev
23:16 [Coke] rakudo really is the only thing in town today; but if the docs explicitly mention rakudo in those blurbs (which they should), then I don't see the problem.
23:17 [Coke] any references to rakudo-specific items or meta should definitely be tagged as such.
23:25 dct joined #perl6-dev
23:27 pyrimidine joined #perl6-dev
23:29 [Coke] I'll write up a gist or something explaining my POV with some examples that will hopefully address the "perl6 is not rakudo" issue but dealing with the fact that compiler specific stuff needs mentioning
23:42 pyrimidine joined #perl6-dev

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