|
Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by moderator on 21 May 2018. |
|||||||||||||||||||||||||||||||||||||||
| Geth | nqp: jstuder-gh++ created pull request #449: s:global/start/beginning/ in JVM slice methods |
00:40 | |||||||||||||||||||||||||||||||||||||
|
01:09
llfourn joined
|
|||||||||||||||||||||||||||||||||||||||
| skids | m: Any(:a) | 01:32 | |||||||||||||||||||||||||||||||||||||
| camelia | Cannot coerce to Any with named arguments in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
|
01:58
ilbot3 joined
|
|||||||||||||||||||||||||||||||||||||||
| moderator | Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm | ||||||||||||||||||||||||||||||||||||||
| Zoffix | k, plan B: `sub Rakudo-InternalSubs-DIVIDE_RATIONALS` | 02:19 | |||||||||||||||||||||||||||||||||||||
| samcv | working on the moarvm release now. on a vacation with my family but have some down time now :) luckily i've been working on tools to automate part of the release log | 02:23 | |||||||||||||||||||||||||||||||||||||
| not all of it. but i have a script to try and categorize each commit so it should reduce the time a lot | 02:24 | ||||||||||||||||||||||||||||||||||||||
| Zoffix | Hardcore :) Releasing while on vacation :) | 02:26 | |||||||||||||||||||||||||||||||||||||
| samcv | well i just had a Daiquiri so gonna do it :) | ||||||||||||||||||||||||||||||||||||||
|
02:27
lizmat joined
|
|||||||||||||||||||||||||||||||||||||||
| samcv | i mean i'm in a cabin in maryland atm, was in Washington DC for the previous 3 days. So now i actually don't have any plans and haven't been walking around washington dc all day | 02:27 | |||||||||||||||||||||||||||||||||||||
| Zoffix | nice | 02:31 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | Zoffix: why not a just a sub in the existing Rakudo::Internals? | 02:33 | |||||||||||||||||||||||||||||||||||||
| Zoffix | MasterDuke: that's what I originally did but was getting the same error, so I assumed RI was too soon in the setting and created that second file, but still getting the error | 02:35 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | huh | 02:36 | |||||||||||||||||||||||||||||||||||||
| Zoffix | m: FatRat.new(1, 2⁶4).Rat | 02:48 | |||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1) at <tmp>:1 ------> 3FatRat.new(1, 2⁶7⏏054).Rat expecting any of: in… |
||||||||||||||||||||||||||||||||||||||
| Zoffix | m: FatRat.new(1, 2⁶⁴).Rat | ||||||||||||||||||||||||||||||||||||||
| camelia | Cannot convert from FatRat to Rat because denominator is too big in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
| Zoffix | I guess this will now return a fattish Rat | ||||||||||||||||||||||||||||||||||||||
| $ ./perl6 -e 'my $a = 42; say $a/0' | 03:13 | ||||||||||||||||||||||||||||||||||||||
| Attempt to divide by zero when coercing Rational to Str | |||||||||||||||||||||||||||||||||||||||
| That's the error now, with ZeroDenominator role mixin | |||||||||||||||||||||||||||||||||||||||
| Wonder if that's confusing to newcomers who just see that code as dividing stuff and not a coercion or a Rational | 03:14 | ||||||||||||||||||||||||||||||||||||||
| damn, there's actually a spectest covering the error says something about the numerator github.com/perl6/roast/commit/4e63...851c2374c4 | 03:36 | ||||||||||||||||||||||||||||||||||||||
| Maybe ZeroDenominator role can live with normalization. Gonna see where this path leads before merging this branch. | 03:37 | ||||||||||||||||||||||||||||||||||||||
| I mean, without normalization, so that 42/0 remains with 42 in numerator | |||||||||||||||||||||||||||||||||||||||
| m: m: use nqp; my \\nu = <1>; say nqp::box_i(nqp::islt_I(nqp::decont(nu), 0) ?? -1 !! nu ?? 1 !! 0, nu.WHAT) | 03:44 | ||||||||||||||||||||||||||||||||||||||
| camelia | concatenate requires a concrete string, but got null in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
| Zoffix | *sigh* so now this is the issue with making Rational respect the types of given attributes when binding :/ | 03:45 | |||||||||||||||||||||||||||||||||||||
| Geth | ¦ rakudo: zoffixznet self-assigned Rational doesn't preserve types of nu/de github.com/rakudo/rakudo/issues/1855 | 03:56 | |||||||||||||||||||||||||||||||||||||
| Zoffix | There's a way out, but it'll prolly be slow. Gonna ignore this for now. Filed as ^ | ||||||||||||||||||||||||||||||||||||||
| Geth | roast: 513da79cd0 | usev6++ | S11-compunit/compunit-dependencyspecification.t [JVM] Fix typo in implementation name |
05:00 | |||||||||||||||||||||||||||||||||||||
|
05:35
shareable6 joined
05:42
nativecallable6 joined,
bloatable6 joined
05:43
quotable6 joined,
coverable6 joined,
releasable6 joined,
greppable6 joined,
reportable6 joined,
bisectable6 joined,
notable6 joined,
committable6 joined,
evalable6 joined,
unicodable6 joined,
benchable6 joined,
statisfiable6 joined,
squashable6 joined,
undersightable6 joined,
shareable6 joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | rakudo: skids++ created pull request #1856: Execute code in elided duplicate argument pair values |
06:37 | |||||||||||||||||||||||||||||||||||||
|
07:17
robertle joined
|
|||||||||||||||||||||||||||||||||||||||
| |Tux| |
|
08:04 | |||||||||||||||||||||||||||||||||||||
|
08:06
shareable6 joined
|
|||||||||||||||||||||||||||||||||||||||
| lizmat | Files=1239, Tests=76372, 322 wallclock secs (15.65 usr 5.57 sys + 2216.43 cusr 231.76 csys = 2469.41 CPU) | 08:07 | |||||||||||||||||||||||||||||||||||||
|
08:11
brrt joined
08:20
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
| AlexDaniel | actually I can cut a release from any branch | 08:33 | |||||||||||||||||||||||||||||||||||||
| similarly to how point releases are done | |||||||||||||||||||||||||||||||||||||||
| so for the next release I think that's what we should do? | |||||||||||||||||||||||||||||||||||||||
| this way we wouldn't have this typical “oh no release is happening stop your work because master is locked” issue | 08:34 | ||||||||||||||||||||||||||||||||||||||
| is there even any reason not to do that? Branches are so cheap | 08:35 | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel unlocks master | 08:40 | ||||||||||||||||||||||||||||||||||||||
| Geth | nqp: fc6441a192 | (Luis F. Uceta)++ | src/HLL/Compiler.nqp Fix STDIN error for non-interactive REPL mode Do not close STDIN it is the source of the program Fixes github.com/rakudo/rakudo/issues/1824 |
08:44 | |||||||||||||||||||||||||||||||||||||
| nqp: 68aa44de08 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | src/HLL/Compiler.nqp Merge pull request #447 from uzluisf/master Fix STDIN error for non-interactive REPL mode |
|||||||||||||||||||||||||||||||||||||||
| rakudo: a79de42904 | (Zoffix Znet)++ | 2 files Fix premature .perl chopping in X::TypeCheck Fixes github.com/rakudo/rakudo/issues/1848 R#1848 Before chopping .perl, check if object's .^name is part of it, and if it is, bump the chop length by the length of the .^name. |
|||||||||||||||||||||||||||||||||||||||
| synopsebot | R#1848 [closed]: github.com/rakudo/rakudo/issues/1848 X::TypeCheck chops off .perl too soon | ||||||||||||||||||||||||||||||||||||||
| rakudo: 75430ac9cb | (Tom Browder)++ (committed by Aleks-Daniel Jakimenko-Aleksejev) | src/Perl6/Pod.nqp Fix for GH #1852: pod converts non-breaking space into normal space Tests have been added for the fix. |
|||||||||||||||||||||||||||||||||||||||
| synopsebot | RAKUDO#1852 [open]: github.com/rakudo/rakudo/issues/1852 Pod convert non-breaking space into normal space. | ||||||||||||||||||||||||||||||||||||||
| rakudo: 26f0033427 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 3 files Merge branch 'post-release-2018.05' |
|||||||||||||||||||||||||||||||||||||||
| AlexDaniel | I'll simply cut the release from release/2018.05. | ||||||||||||||||||||||||||||||||||||||
| so please free to use master | 08:45 | ||||||||||||||||||||||||||||||||||||||
| Zoffix ↑ | 08:47 | ||||||||||||||||||||||||||||||||||||||
| hm I also wonder why we didn't do that before | 08:50 | ||||||||||||||||||||||||||||||||||||||
| I don't care from which branch the release is cut, my release sakefile doesn't care also | |||||||||||||||||||||||||||||||||||||||
| in the end the release branch is merged back to master anyway, so in the end it'll look the same… | 08:51 | ||||||||||||||||||||||||||||||||||||||
| … and now there's even less pressure on release managers to cut releases in time :P | 08:54 | ||||||||||||||||||||||||||||||||||||||
|
09:30
TimToady joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | rakudo: d1d31fd574 | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp Make sure "use p5isms" also works for "rand" |
10:01 | |||||||||||||||||||||||||||||||||||||
| lizmat | AlexDaniel: if you could cherry-pick that info the release branch, that would be brill | ||||||||||||||||||||||||||||||||||||||
| if not, then that's ok too | |||||||||||||||||||||||||||||||||||||||
| Geth | rakudo/car-grant-unreduce: 7 commits pushed by (Aleks-Daniel Jakimenko-Aleksejev)++, (Tom Browder)++, (Elizabeth Mattijsen)++, (Zoffix Znet)++
|
11:22 | |||||||||||||||||||||||||||||||||||||
| Zoffix | Thanks. But I think I'll let it marinate in a branch for a bit. With the R#1855 issues and the error reporting for `my $a = 42; say $a/0` kinda up in the air. | 11:24 | |||||||||||||||||||||||||||||||||||||
| synopsebot | R#1855 [open]: github.com/rakudo/rakudo/issues/1855 [CaR Grant] Rational doesn't preserve types of nu/de | ||||||||||||||||||||||||||||||||||||||
|
11:24
Zoffix left
|
|||||||||||||||||||||||||||||||||||||||
| AlexDaniel | honestly I don't feel like adding any changes to the release branch, however small the change is | 11:25 | |||||||||||||||||||||||||||||||||||||
| I've applied all possible checks to the last commit in the release branch, it is perfect, no need to risk it :) | 11:26 | ||||||||||||||||||||||||||||||||||||||
| m: say rand(5) | 11:28 | ||||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of rand(N); in Perl 6 please use N.rand for Num or (^N).pick for Int result at <tmp>:1 ------> 3say rand7⏏5(5) |
||||||||||||||||||||||||||||||||||||||
| AlexDaniel | does it even work? | ||||||||||||||||||||||||||||||||||||||
|
11:29
brrt joined
|
|||||||||||||||||||||||||||||||||||||||
| AlexDaniel | lizmat: also, any tests? | 11:30 | |||||||||||||||||||||||||||||||||||||
| brrt | . | ||||||||||||||||||||||||||||||||||||||
| yoleaux | 11:15Z <Zoffix> brrt: that didn't really answer my question. You complained we do in HLL what's better done as an op. I asked how to make an op. You reply you're not in favour of it. That makes me feel I should stick to doing things in HLL instead of ops. If some ops are better not done, then maybe it's something you should include in an op creation guide. | ||||||||||||||||||||||||||||||||||||||
| brrt | .tell Zoffix noted | 11:31 | |||||||||||||||||||||||||||||||||||||
| yoleaux | brrt: I'll pass your message to Zoffix. | ||||||||||||||||||||||||||||||||||||||
| lizmat | m: use p5ism; sub rand($a) { $a.rand }; say rand(42) | ||||||||||||||||||||||||||||||||||||||
| camelia | ===SORRY!=== Could not find p5ism at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 CompUnit::Re… |
||||||||||||||||||||||||||||||||||||||
| lizmat | m: use p5isms; sub rand($a) { $a.rand }; say rand(42) | 11:32 | |||||||||||||||||||||||||||||||||||||
| camelia | 17.42038367119953 | ||||||||||||||||||||||||||||||||||||||
| brrt | assumming Zoffix backlogs: I haven't gotten 'round to writing an implementing-an-op-guide | ||||||||||||||||||||||||||||||||||||||
| lizmat | AlexDaniel: yeah it works | ||||||||||||||||||||||||||||||||||||||
| brrt | maybe that should be something i should prioritize over JIT improvements | ||||||||||||||||||||||||||||||||||||||
| having said that, the original complaint was *not* about everything being an op that might possibly be, the original complaint was about 'y u not communicate this' | 11:33 | ||||||||||||||||||||||||||||||||||||||
| also, wasn't as much a complaint as an invitation to further communication | |||||||||||||||||||||||||||||||||||||||
| AlexDaniel | lizmat: wait… isn't that pragma other way around? | 11:34 | |||||||||||||||||||||||||||||||||||||
| brrt | also, I reverse the right to be in favour of one kind of new opcode, and against another | ||||||||||||||||||||||||||||||||||||||
| :-) | |||||||||||||||||||||||||||||||||||||||
| AlexDaniel | shouldnt it be “no p5isms” ? | ||||||||||||||||||||||||||||||||||||||
| lizmat | "no p5isms" is the default | ||||||||||||||||||||||||||||||||||||||
| m: no p5isms; sub rand($a) { $a.rand }; say rand(42) | |||||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of rand(N); in Perl 6 please use N.rand for Num or (^N).pick for Int result at <tmp>:1 ------> 3isms; sub rand($a) { $a.rand }; say rand7⏏5(42) |
||||||||||||||||||||||||||||||||||||||
| lizmat | which is exactly the problem: even though I have a sub in scope with the right signnature, it complains about not being supported | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel is confused | 11:35 | ||||||||||||||||||||||||||||||||||||||
| lizmat | use p5isms just takes away the check | ||||||||||||||||||||||||||||||||||||||
| m: no p5isms; say rand(42) | |||||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of rand(N); in Perl 6 please use N.rand for Num or (^N).pick for Int result at <tmp>:1 ------> 3no p5isms; say rand7⏏5(42) |
||||||||||||||||||||||||||||||||||||||
| lizmat | m: use p5isms; say rand(42) | ||||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Calling rand(Int) will never work with signature of the proto (*%) at <tmp>:1 ------> 3use p5isms; say 7⏏5rand(42) |
||||||||||||||||||||||||||||||||||||||
| AlexDaniel | am I the only one who can't make sense of it? | 11:36 | |||||||||||||||||||||||||||||||||||||
| so if I don't want to be warned about p5isms, I have to say that I “use p5isms”?? | |||||||||||||||||||||||||||||||||||||||
| lizmat | yeah | ||||||||||||||||||||||||||||||||||||||
| because that will *allow* p5isms | 11:37 | ||||||||||||||||||||||||||||||||||||||
| otherwise it would have to be something like | |||||||||||||||||||||||||||||||||||||||
| no p5ism-warnings | |||||||||||||||||||||||||||||||||||||||
| no p5ism-errors | |||||||||||||||||||||||||||||||||||||||
| AlexDaniel: I guess we had the bikeshedding phase on this, but apparently not | 11:38 | ||||||||||||||||||||||||||||||||||||||
| so forget about my request for cherrypicking | 11:39 | ||||||||||||||||||||||||||||||||||||||
| lizmat needs to be afk for a few hours | |||||||||||||||||||||||||||||||||||||||
| AlexDaniel | I remember Zoffix saying that the naming wasn't good, but other than that I can't recall any bikeshedding | ||||||||||||||||||||||||||||||||||||||
| as for the cherry-pick, I guess there may be other places where this pragma doesn't work yet, we'll squash all that for the next release | 11:40 | ||||||||||||||||||||||||||||||||||||||
| lizmat | I remember Zoffix saying that it would also include C++ isms, which I fixed | ||||||||||||||||||||||||||||||||||||||
| it will now only not complain about p5isms | 11:41 | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | hmm | ||||||||||||||||||||||||||||||||||||||
| lizmat | m: use p5isms; new foo bar | ||||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at <tmp>:1 ------> 3use p5isms; new foo 7⏏5bar |
||||||||||||||||||||||||||||||||||||||
| lizmat | afk& | ||||||||||||||||||||||||||||||||||||||
|
11:57
Ven`` joined
|
|||||||||||||||||||||||||||||||||||||||
| Ven`` | o/! I was asked a few questions by a Unicode-savvy and I didn't know how to answer... Well, their first reproach was that we default to grapheme clusters for substr, whereas we try to be explicit everywhere else. Well, that's probably just a doc issue really. | 12:00 | |||||||||||||||||||||||||||||||||||||
| The second is more troubling: the definition of a grapheme cluster changed in 2016, which means any substr is prone to breaking. : There are no guarantees of stability in the definition of grapheme cluster, so updating is likely to bring breaking changes. (apparently, swift is stuck with Unicode 8 for that reason: bugs.swift.org/browse/SR-375). | 12:02 | ||||||||||||||||||||||||||||||||||||||
| (well, for a slightly different reason than our substr changing its behavior, but still: the definition of a grapheme cluster changed and they don't want to break user code). | 12:03 | ||||||||||||||||||||||||||||||||||||||
|
12:04
Zoffix joined,
shareable6 joined
|
|||||||||||||||||||||||||||||||||||||||
| Zoffix | brrt: then I have the answer for you. I don't communicate this because I don't understand the ops. And the couple of ops I did propose where dismissed as a bad idea. | 12:06 | |||||||||||||||||||||||||||||||||||||
| As for `p5isms`. Isn't the name shortsighted anyway? Will we have a separate pragma to disable the C++'s error? | 12:07 | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | Ven``: not sure I understand? | ||||||||||||||||||||||||||||||||||||||
| Ven``: any string is subject to unicode normalization | |||||||||||||||||||||||||||||||||||||||
| Zoffix | And will it become `pfooisms` when Perl 5 releases a new major version? | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | Ven``: and whenever a new unicode version is supported, it may add new characters and change normalization rules | 12:08 | |||||||||||||||||||||||||||||||||||||
| Zoffix | +1 to " honestly I don't feel like adding any changes to the release branch, however small the change is" | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | ↑ there's probably an exception for security-related fixes, but I'll judge case by case | 12:09 | |||||||||||||||||||||||||||||||||||||
| Zoffix | m: say so /<[0-9]>/ | ||||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of - as character range; in Perl 6 please use .. for range, for explicit - in character class, escape it or place it as the first or last thing at <tmp>:1 ------> 3say so /<[0-7⏏… |
||||||||||||||||||||||||||||||||||||||
| Zoffix | m: use p5isms; say so /<[0-9]>/ | 12:10 | |||||||||||||||||||||||||||||||||||||
| camelia | ===SORRY!=== This representation (P6int) does not support attribute storage (for type BOOTInt) |
||||||||||||||||||||||||||||||||||||||
| Zoffix | And this isn't a p5ism. Tons of languages use this syntax for char ranges in regexes. | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | what about “use training-wheels;”? :) | ||||||||||||||||||||||||||||||||||||||
| Zoffix | too long | ||||||||||||||||||||||||||||||||||||||
| But that's another thing too: I rather these errors were off by default | 12:11 | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | Zoffix: we can change the default later | ||||||||||||||||||||||||||||||||||||||
| Zoffix | .oO( no hasles; ) |
12:12 | |||||||||||||||||||||||||||||||||||||
| AlexDaniel | Ven``: so what kind of code are we breaking exactly? | ||||||||||||||||||||||||||||||||||||||
| Ven`` | AlexDaniel: The point is: it changes meaning of existing code. | ||||||||||||||||||||||||||||||||||||||
| Zoffix | .oO( use perl6-only-I'm-not-writing-Perl5-dammit ) |
||||||||||||||||||||||||||||||||||||||
| Ven`` | see on some older version: ideone.com/i5CJ8a – that now returns 2. | ||||||||||||||||||||||||||||||||||||||
| Kaiepi | use handicap? | 12:13 | |||||||||||||||||||||||||||||||||||||
| Zoffix | c: 2015.12,HEAD say "🇺🇸🇺🇸".chars | ||||||||||||||||||||||||||||||||||||||
| committable6 | Zoffix, ¦2015.12: «1» ¦HEAD(d1d31fd): «2» | ||||||||||||||||||||||||||||||||||||||
| Zoffix | We had tons of such changes tho | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | why was it 1? | 12:14 | |||||||||||||||||||||||||||||||||||||
| that looks like a bug actually | |||||||||||||||||||||||||||||||||||||||
| Zoffix | c: 2015.12,HEAD my Seq $s = "🇺🇸🇺🇸".comb | ||||||||||||||||||||||||||||||||||||||
| committable6 | Zoffix, ¦2015.12,HEAD(d1d31fd): «» | ||||||||||||||||||||||||||||||||||||||
| Zoffix | c: 2015.12,HEAD my Seq $s = "🇺🇸🇺🇸".comb: /./ | ||||||||||||||||||||||||||||||||||||||
| committable6 | Zoffix, ¦2015.12,HEAD(d1d31fd): «» | ||||||||||||||||||||||||||||||||||||||
| Ven`` | AlexDaniel: because Unicode said so. | ||||||||||||||||||||||||||||||||||||||
| Zoffix | c: 2016.12,HEAD my Seq $s = "🇺🇸🇺🇸".comb: /./ | ||||||||||||||||||||||||||||||||||||||
| committable6 | Zoffix, ¦2016.12: «Type check failed in assignment to $s; expected Seq but got List ($("🇺🇸🇺🇸",)) in block <unit> at /tmp/7oDRFfjEgg line 1 «exit code = 1»» ¦HEAD(d1d31fd): «» | ||||||||||||||||||||||||||||||||||||||
| Ven`` | Regional Indicators are a set of 26 “letters” that you can combine in pairs to make the flags. The pairs are the country short codes in ISO something-something. So, the regional indicator U, followed by the regional indicator S, make up the United States flag. DE makes Germany, etc. In Unicode 8, the grapheme break rules were simply “do not break between regional indicators”. This makes USUSUS a single cluster, even though | 12:15 | |||||||||||||||||||||||||||||||||||||
| Zoffix | So just as .comb was clarified to return a Seq instead of List, so does Unicode support has been upgraded in recent compilers. | 12:16 | |||||||||||||||||||||||||||||||||||||
|
12:16
Zoffix left
|
|||||||||||||||||||||||||||||||||||||||
| AlexDaniel | Zoffix: well, I guess the concern is that Unicode is changing all the time, but we won't be changing other things all the time | 12:16 | |||||||||||||||||||||||||||||||||||||
| Ven`` | I'm not sure i .comb changed its meaning because it was under-specified or because the behavior it provided was "faulty" (didn't account for some use case or w/e), but here it's jsut the standard changing. | 12:17 | |||||||||||||||||||||||||||||||||||||
.oO( use Unicode:ver<8>; ) |
|||||||||||||||||||||||||||||||||||||||
| Again, this can be marked as a doc issue. We just add "This uses grapheme indices, which are subject to changes whenever the Unicode version your Perl 6 impl. is updated" to substr and let people deal with the fallout... | 12:18 | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | but as I said, that's not just about graphemes | 12:19 | |||||||||||||||||||||||||||||||||||||
| you can have two separate single codepoint characters, or something similar | |||||||||||||||||||||||||||||||||||||||
| and in the next version they'll change into a single character | |||||||||||||||||||||||||||||||||||||||
| because normalization | |||||||||||||||||||||||||||||||||||||||
| or maybe not? | 12:20 | ||||||||||||||||||||||||||||||||||||||
| well actually it's correct, in a way | |||||||||||||||||||||||||||||||||||||||
| Ven`` | AlexDaniel: I mean, I don't think any breakage is good. At the same time, you don't want to have to ascribe all your strings to a specific Unicode version... | 12:28 | |||||||||||||||||||||||||||||||||||||
| AlexDaniel | well, I don't really count that as breakage | 12:31 | |||||||||||||||||||||||||||||||||||||
| you updated and now your strings are now normalized according to the latest standard… | |||||||||||||||||||||||||||||||||||||||
| if you highly depend on the exact way your strings are represented, maybe you shouldn't be using strings | |||||||||||||||||||||||||||||||||||||||
| maybe you need Bufs or something else | |||||||||||||||||||||||||||||||||||||||
| or utf8-c8 even | 12:32 | ||||||||||||||||||||||||||||||||||||||
|
12:48
rmf1723 joined
12:55
Ven`` joined
|
|||||||||||||||||||||||||||||||||||||||
| rmf1723 | Ftr, normalization never ever changes. | 12:56 | |||||||||||||||||||||||||||||||||||||
| Stability guaranteed since Unicode 4.1 | |||||||||||||||||||||||||||||||||||||||
| Ven`` | AlexDaniel: ^^^ someone much more unisavvy than I am | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | rmf1723: oh! | 12:58 | |||||||||||||||||||||||||||||||||||||
| didn't know that! | |||||||||||||||||||||||||||||||||||||||
| rmf1723 | Fwiw, I'm the one who brought this up with Ven; I'm working on C++ standardization of this stuff and have been looking around what other languages do | 12:59 | |||||||||||||||||||||||||||||||||||||
|
12:59
pmurias joined
|
|||||||||||||||||||||||||||||||||||||||
| AlexDaniel | rmf1723: I stand corrected then :) | 12:59 | |||||||||||||||||||||||||||||||||||||
| chansen_ | AlexDaniel: www.unicode.org/policies/stability_...malization | 13:02 | |||||||||||||||||||||||||||||||||||||
| rmf1723 | And also to make it clear, the 2015 behavior (two US flags are one char) was correct in 2015 Unicode. So this wasn't a bug that got fixed | 13:04 | |||||||||||||||||||||||||||||||||||||
| At least not in Perl6; it can be argued that it was a bug in the Unicode spec, but that's not relevant, I guess | 13:05 | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | .tell samcv unicode related discussion: irclog.perlgeek.de/perl6-dev/2018-...i_16192660 | ||||||||||||||||||||||||||||||||||||||
| yoleaux | AlexDaniel: I'll pass your message to samcv. | ||||||||||||||||||||||||||||||||||||||
| rmf1723 | Of | 13:08 | |||||||||||||||||||||||||||||||||||||
| *oh I guess that's your local Unicode guru? | |||||||||||||||||||||||||||||||||||||||
| AlexDaniel | yes | ||||||||||||||||||||||||||||||||||||||
| chansen_ | Unicode 11 will bring better stabilization in segmentation for emojis, <www.unicode.org/L2/L2016/16315-hand...ji.pdf> | 13:09 | |||||||||||||||||||||||||||||||||||||
| AlexDaniel | I see | 13:10 | |||||||||||||||||||||||||||||||||||||
| rmf1723 | IIUC that proposal actually brings another breaking change :p | 13:12 | |||||||||||||||||||||||||||||||||||||
| AlexDaniel | rmf1723: fwiw if you spot any other issues, please file bug reports | 13:13 | |||||||||||||||||||||||||||||||||||||
| buggable: uni | |||||||||||||||||||||||||||||||||||||||
| buggable: tag uni | |||||||||||||||||||||||||||||||||||||||
| buggable | AlexDaniel, There are 25 tickets tagged with UNI; See fail.rakudo.party/t/UNI for details | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel | uh, that's the wrong issue tracker :) | 13:14 | |||||||||||||||||||||||||||||||||||||
| github.com/rakudo/rakudo/issues?q=...abel%3AUNI | |||||||||||||||||||||||||||||||||||||||
| rmf1723 | Will do. I'm adding Perl 6 to my list of implementations to look into. | 13:15 | |||||||||||||||||||||||||||||||||||||
| AlexDaniel | 🙌 | ||||||||||||||||||||||||||||||||||||||
| AlexDaniel & | 13:17 | ||||||||||||||||||||||||||||||||||||||
| chansen_ | rmf1723: Technically it's not a breaking change since GCB, SB and WB is auxiliary. Only LB is non-auxiliary. | 13:22 | |||||||||||||||||||||||||||||||||||||
| Similar change was don in Unicode 9 for LB to "future proof" it. <www.unicode.org/reports/tr14/tr14-3...ations> | 13:25 | ||||||||||||||||||||||||||||||||||||||
| chansen_ s/don/done/ | |||||||||||||||||||||||||||||||||||||||
|
13:42
lucasb joined
|
|||||||||||||||||||||||||||||||||||||||
| rmf1723 | But this future-proofing, which they adequately scare quote, isn't a stability guarantee; it's just making it ready for one kind of possible predicted future change. | 13:48 | |||||||||||||||||||||||||||||||||||||
| So with this there is one set of changes that can and are likely be made in the future that won't break things; but there's nothing to say something else will. | 13:49 | ||||||||||||||||||||||||||||||||||||||
|
13:51
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
| chansen_ | True | 13:51 | |||||||||||||||||||||||||||||||||||||
|
14:00
PufferBot joined,
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
| samcv | Unicode grapheme break property standards be like: xkcd.com/927/ | 14:01 | |||||||||||||||||||||||||||||||||||||
| yoleaux | 13:05Z <AlexDaniel> samcv: unicode related discussion: irclog.perlgeek.de/perl6-dev/2018-...i_16192660 | ||||||||||||||||||||||||||||||||||||||
| samcv | s/competing standards/grapheme break rules/g | 14:02 | |||||||||||||||||||||||||||||||||||||
| chansen_ | I don't see the problem, segmentation (WB, SB, GCB) is not part of the Unicode standard, they are auxiliary (guidelines) and if a programming language want to make guarantees about stability outside Unicode thats fine, but there is no stability guarantee from Unicode. | 14:28 | |||||||||||||||||||||||||||||||||||||
| It's worth noting that segmentation is a very complex and varies depending on script/language, which is also why Unicode 11 adds two empty property values and referees to CLDR. | 14:40 | ||||||||||||||||||||||||||||||||||||||
|
15:12
skids joined
15:15
dogbert17 joined
|
|||||||||||||||||||||||||||||||||||||||
| dogbert17 | ZOFFLOP: t/spec/S17-supply/syntax.t test #83 (hang) | 15:16 | |||||||||||||||||||||||||||||||||||||
| samcv | chansen_: i wouldn't say there is a problem either | 15:17 | |||||||||||||||||||||||||||||||||||||
| rmf1723 | chansen_: they *are* a part of the Unicode standard. | 15:18 | |||||||||||||||||||||||||||||||||||||
| www.unicode.org/standard/standard.html | |||||||||||||||||||||||||||||||||||||||
| samcv | that is also true yes | ||||||||||||||||||||||||||||||||||||||
| rmf1723 | Formally, a version of the Unicode Standard is defined by an edition of the core specification, The Unicode Standard, together with the Code Charts, Unicode Standard Annexes and the Unicode Character Database. | ||||||||||||||||||||||||||||||||||||||
| (quote) | |||||||||||||||||||||||||||||||||||||||
| Segmentation is Annex #29 | 15:19 | ||||||||||||||||||||||||||||||||||||||
| samcv | and afaik if you don't process any new codepoints the grapheme breakage should stay the same, though don't quote me on that | ||||||||||||||||||||||||||||||||||||||
| rmf1723 | samcv: no, it does not, because not only the *_Break properties change from version to version, but also the algorithm. | ||||||||||||||||||||||||||||||||||||||
| samcv | and there's always the classical grapheme segmentation if you want something unchanging i suppose... though it's not all that useful nowdays if you are dealing with emoji and all other things people put in | ||||||||||||||||||||||||||||||||||||||
| rmf1723 | samcv: a clear example is the way regional indicators worked in Unicode 8 vs 9. In Unicode 8, 🇺🇸🇺🇸 is a single grapheme cluster. In Unicode 9, it's two. No character properties changed between. | 15:20 | |||||||||||||||||||||||||||||||||||||
| samcv | ah i suppose you are right. they were added earlier | ||||||||||||||||||||||||||||||||||||||
| very true | 15:21 | ||||||||||||||||||||||||||||||||||||||
| though not sure if they were used much before that? i didn't read why they were originally added in the first place, only when i had to deal with the new grapheme break changes | |||||||||||||||||||||||||||||||||||||||
| rmf1723 | Definitely not used much before Unicode... 7? 8? Not sure. They were added in 6.0 | 15:23 | |||||||||||||||||||||||||||||||||||||
| Anyway, chansen_ is right that there is no stability in segmentation, which is why got interested in how Perl6 deals with it. The only other mainstream language I know that defaults to breaking strings into grapheme clusters is Swift, and there they seemingly cornered themselves into Unicode 8 for fear of breaking changes. | 15:26 | ||||||||||||||||||||||||||||||||||||||
| chansen_ back | 15:34 | ||||||||||||||||||||||||||||||||||||||
| =) | |||||||||||||||||||||||||||||||||||||||
| samcv | rmf1723: well atm we don't really attempt to fix that. though if there are issues in the future i could see us letting the user choose a unicode version? dunno. it could be doable i suppose. but atm it's not at the very top of the list | 15:50 | |||||||||||||||||||||||||||||||||||||
| above that is planning to allow strings to be non-normalized and grapheme broken and by codepoint as a different string type | |||||||||||||||||||||||||||||||||||||||
| chansen_ | Python includes two versions of UCD 3.2 (for RFC/IETF IDNA) and the most recent one. | 15:53 | |||||||||||||||||||||||||||||||||||||
| I wouldn't recommend entertaining the idea of supporting multiple versions UCD. From a performance POV it wouldn't be sound ;) | 15:54 | ||||||||||||||||||||||||||||||||||||||
| samcv | yeah i don't really like that idea too much. but i think being able to have codepoint based strings would be a way for us to address the problem for situations that matters | 15:55 | |||||||||||||||||||||||||||||||||||||
| chansen_ | Even if you went the same route as ICU with serialized Trie's there will be a performance cost. | 15:56 | |||||||||||||||||||||||||||||||||||||
| samcv | though mostly it'd be more annoying to maintain tbh | ||||||||||||||||||||||||||||||||||||||
| having to maintain all past versions... | |||||||||||||||||||||||||||||||||||||||
| chansen_ | True | 15:57 | |||||||||||||||||||||||||||||||||||||
| samcv | though it could be doable. but i prefer not to prematurely try and solve problems that haven't yet arised and go for more objective ones :) | ||||||||||||||||||||||||||||||||||||||
|
15:58
brrt joined
|
|||||||||||||||||||||||||||||||||||||||
| chansen_ | I believe rakudo/MoarVM has other interesting optimizations in the pipeline before considering supporting multiple versions of UCD, like a proper lexicon data structure for Unicode character names. | 16:01 | |||||||||||||||||||||||||||||||||||||
| rmf1723 | The problem is that it's not just UCd | 16:09 | |||||||||||||||||||||||||||||||||||||
| The algorithms change too, so there's also old code to maintain. | |||||||||||||||||||||||||||||||||||||||
| timotimo | big test suites can keep us honest :) | 16:10 | |||||||||||||||||||||||||||||||||||||
| rmf1723 | You cannot use the new algorithms with an old UCD because that gives you neither the old behavior nor the new o e. | ||||||||||||||||||||||||||||||||||||||
| *one | |||||||||||||||||||||||||||||||||||||||
|
16:24
lizmat joined
|
|||||||||||||||||||||||||||||||||||||||
| chansen_ | True | 16:27 | |||||||||||||||||||||||||||||||||||||
| Geth | specs: b08407beaa | (Elizabeth Mattijsen)++ | S06-routines.pod s/concatenated/appended/ Concatenation is generally used for strings only. Seems to me "appending" describes what happens better. |
16:29 | |||||||||||||||||||||||||||||||||||||
|
16:53
robertle joined
16:56
lucasb joined
|
|||||||||||||||||||||||||||||||||||||||
| Kaiepi | perl's on graphemes while ve v | 18:00 | |||||||||||||||||||||||||||||||||||||
| touchpad's being finicky sorry | |||||||||||||||||||||||||||||||||||||||
|
18:39
shareable6 joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | rakudo: tbrowder++ created pull request #1857: clean up code, expand space chars considered when normalizing text |
19:01 | |||||||||||||||||||||||||||||||||||||
|
19:25
AlexDaniel joined
19:27
brrt joined
20:14
lucasb joined
|
|||||||||||||||||||||||||||||||||||||||
| lucasb | skids: Can I bother you about the :nth(*-1) thing? | 20:23 | |||||||||||||||||||||||||||||||||||||
| It seems you changed its behavior in a commit. Test were changed here github.com/perl6/roast/commit/e502...7e88dd6955 | |||||||||||||||||||||||||||||||||||||||
| Do you remember with there was any discussion about it? | 20:24 | ||||||||||||||||||||||||||||||||||||||
| I didn't found any in the IRC logs of that day | |||||||||||||||||||||||||||||||||||||||
| s/with/if/ | 20:27 | ||||||||||||||||||||||||||||||||||||||
| m: say 'abc' ~~ m:nth()/\\w/ | 20:38 | ||||||||||||||||||||||||||||||||||||||
| camelia | () | ||||||||||||||||||||||||||||||||||||||
| lucasb | m: say 'abc' ~~ m:nth/\\w/ | ||||||||||||||||||||||||||||||||||||||
| camelia | 「a」 | ||||||||||||||||||||||||||||||||||||||
| lucasb | IMO, those two should have the same result, no? | 20:39 | |||||||||||||||||||||||||||||||||||||
| geekosaur | anyone happen to notice commit messages to the list now get developer.github.com/changes/2018-...precation/ attached? | 20:42 | |||||||||||||||||||||||||||||||||||||
| lizmat just noticed that on my recent specs change | 20:55 | ||||||||||||||||||||||||||||||||||||||
| skids | lucasb: I'll look into that. It was a long time ago... | 21:14 | |||||||||||||||||||||||||||||||||||||
| Hrm that :nth and :nth() is an interesting corner case: considered as a normal adverb, :nth.value is True and :nth().value is False. Really the first form is not idomatic, and it probably wouldn't be horrible to warn on it. | 21:21 | ||||||||||||||||||||||||||||||||||||||
|
21:24
lucasb joined
|
|||||||||||||||||||||||||||||||||||||||
| lucasb | Actually, :nth().value is the empty list, so $str ~~ m:nth()/pattern/ will always return an empty list, whether it matches or not. I think this is correct | 21:32 | |||||||||||||||||||||||||||||||||||||
| since m:nth/pattern/ can be interpreted as m:nth(True)/pattern/, and this can be interpreted as m:nth(1)/pattern/, then I think it's correct also | 21:33 | ||||||||||||||||||||||||||||||||||||||
| I dunno why I mentioned them. Don't bother about them. They seem correct IMO | 21:34 | ||||||||||||||||||||||||||||||||||||||
| I'm just asking that the behavior of :nth(*-1) and :nth(*) be reconsidered. | 21:35 | ||||||||||||||||||||||||||||||||||||||
| IMO, :nth(*-1) should be the *last* occurrence, not the second to last | 21:36 | ||||||||||||||||||||||||||||||||||||||
| and, :nth(*) should be the same as :nth(1..*), not the last occurrence | |||||||||||||||||||||||||||||||||||||||
| I'm not saying that the 1-based-ness of this feature be changed. :nth(1) should still be the same as :1st, etc. | 21:38 | ||||||||||||||||||||||||||||||||||||||
| skids | lucasb: At this point, I'm not sure whether or not the way the Whatever is handled now is even how I implemented way back then. | 21:49 | |||||||||||||||||||||||||||||||||||||
| The general idea was that * is dwimmy and its behavior varies based on context. (you can even write user-defined * behavior) | 21:52 | ||||||||||||||||||||||||||||||||||||||
| lizmat | m: sub a(Whatever) { say "whatever" }; a * | 21:57 | |||||||||||||||||||||||||||||||||||||
| camelia | whatever | ||||||||||||||||||||||||||||||||||||||
| lizmat | m: sub a(*) { say "whatever" }; a * # unfortunately, * by itself is not DWIM in a signature | 21:58 | |||||||||||||||||||||||||||||||||||||
| camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3sub a(*7⏏5) { say "whatever" }; a * # unfortunat |
||||||||||||||||||||||||||||||||||||||
| skids | Or in other words, :nth is not *supposed* to behave the same as []... most obviously because it is 1-based, but in general consistency with [] wasnt the goal. | 21:59 | |||||||||||||||||||||||||||||||||||||
| So I guess what I'm saying I do see a distinction between Callable and Whatever... on a syntactic level the latter may be more dwimmy, and the distinction may be used by experienced coders who want to power past the dwim. | 22:06 | ||||||||||||||||||||||||||||||||||||||
|
22:17
dct joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | roast: tbrowder++ created pull request #430: expand tests for non-breaking space handling |
22:32 | |||||||||||||||||||||||||||||||||||||
|
22:33
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
| skids | Hrm so how seriously do we procedurally deal with ways to violate MONKEY-SEE-NO-EVAL these days... I think there is still a gaping hole in .EVAL anyway, right? | 23:15 | |||||||||||||||||||||||||||||||||||||
| It's nothing crazy, but I don't want to blurt it out on IRC if we have a process in place, even just nominally. | 23:16 | ||||||||||||||||||||||||||||||||||||||