Geth | nqp/appveyor: 2e7cd40291 | (Samantha McVey)++ | .appveyor.yml Try debugging Appveyor |
03:14 | |
samcv | nqp is building in the appveyor branch, but for some reason not running the tests, not sure why | 03:22 | |
Geth | nqp/appveyor: 16802a7cb6 | (Samantha McVey)++ | .appveyor.yml Run nmake and nmake install in different steps (appveyor) |
03:24 | |
rakudo: Gnouc++ created pull request #1164: Make :delete works with lazy Arrays |
04:15 | ||
roast: Gnouc++ created pull request #326: :delete on lazy Arrays |
|||
travis-ci | Rakudo build errored. Elizabeth Mattijsen 'Map/Hash have their own optimized .sort | 04:53 | |
travis-ci.org/rakudo/rakudo/builds/276935301 github.com/rakudo/rakudo/compare/4...6741e77d76 | |||
buggable | [travis build above] ✓ All failures are due to: missing build log (1 failure). | ||
Geth | nqp/appveyor: 3748aa53cc | (Samantha McVey)++ | .appveyor.yml Turn build section of Appveyor build off Hopefully avoid "Specify which project or solution file to use because the folder contains more than one project or solution file." error. |
05:04 | |
[Tux] | This is Rakudo version 2017.09-27-gda5c36c13 built on MoarVM version 2017.09.1-13-g3dea7dff | 06:03 | |
csv-ip5xs 1.339 - 1.341 | |||
test 10.012 - 10.168 | |||
test-t 3.452 - 3.482 | |||
csv-parser 12.642 - 13.312 | |||
lizmat | Files=1227, Tests=75113, 294 wallclock secs (14.49 usr 5.24 sys + 1992.84 cusr 205.69 csys = 2218.26 CPU) | 07:36 | |
Geth | rakudo/nom: 0385b2aa45 | (Cuong Manh Le)++ | src/core/Array.pm Make :delete works with lazy Arrays Fixes RT#131790 |
07:38 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131790 | ||
Geth | rakudo/nom: 3e35819914 | lizmat++ (committed using GitHub Web editor) | src/core/Array.pm Merge pull request #1164 from Gnouc/nom Make :delete works with lazy Arrays |
||
roast: 9cc47b28a9 | (Cuong Manh Le)++ | S32-array/delete-adverb.t :delete on lazy Arrays RT #131790 |
07:39 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131790 | ||
Geth | roast: bf4b2048d5 | lizmat++ (committed using GitHub Web editor) | S32-array/delete-adverb.t Merge pull request #326 from Gnouc/master :delete on lazy Arrays |
||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Bump nqp: new libuv and fix for thread ID race' | 08:13 | |
travis-ci.org/rakudo/rakudo/builds/276986184 github.com/rakudo/rakudo/compare/4...8b84971dff | |||
Rakudo build failed. Elizabeth Mattijsen 'Iterable eqv Iterable should check types first | 10:11 | ||
travis-ci.org/rakudo/rakudo/builds/277009878 github.com/rakudo/rakudo/compare/1...eeef9baa42 | |||
buggable | [travis build above] ✓ All failures are due to: GitHub connectivity (1 failure). | ||
lizmat | afk for most of the day& | 10:18 | |
Geth | rakudo/supply-locking-refactor: 93a66d75b9 | (Jonathan Worthington)++ | src/core/Supply.pm An on-demand Supply isn't magically serial/sanitry We had a case right here in CORE.setting that violated it, so user's own code sure as heck might do so also. |
12:36 | |
rakudo/supply-locking-refactor: 9e179355cf | (Jonathan Worthington)++ | src/core/Supply.pm Filter out duplicate done/quit messages |
|||
Zoffix | ZOFVM: Files=1277, Tests=152091, 161 wallclock secs (20.70 usr 3.29 sys + 3016.86 cusr 269.89 csys = 3310.74 CPU) | 12:37 | |
I sure how that's just we added more tests :/ | |||
m: say 161/137 | |||
camelia | 1.175182 | ||
Zoffix | 17% slower :/ | ||
buggable: speed :50 | 12:39 | ||
buggable | Zoffix, Refusing to draw more than 4 rows | ||
Zoffix | buggable: speed 50 :4 | ||
buggable | Zoffix, ▅ ▆ ▇ ↑ ↑█ dates: 2017-09-02–2017-09-19 | ||
Zoffix, ▂ █▄ █ █▃█ ▃ ██ range: 3.376s–4.237s | |||
Zoffix, ▆█▂ ██ █▃ ▄███▆ ▃▁ █ ▂ ▃█▆▄██▂▃ ▁ speed: 3% faster | |||
Zoffix, ███▇▄▃██▅▇▅█▆▅▇▁▄▅██▇▇█████▆██▇█▆█▂▂████████▇█▄▃▅▇ | |||
jnthn | Pretty :) | 12:40 | |
Geth | rakudo/supply-locking-refactor: c46be84ca3 | (Jonathan Worthington)++ | src/core.d/await.pm Move classes outside of `REACT` sub That pattern caused some pain with `SUPPLY` before now. |
12:45 | |
rakudo/supply-locking-refactor: 633a15b82b | (Jonathan Worthington)++ | src/core/Supply.pm Sanitize per tapping, not per Supply I've put this off before now as it causes a couple of regressions in S17-supply/basic.t, but it's the right thing to do, and not doing it causes other issues. Regressions will be investigated and dealt with before this branch is merged. |
|||
rakudo/supply-locking-refactor: ef4d16fe19 | (Jonathan Worthington)++ | src/core/Supply.pm Serialize lock should be per tap, not per Supply This may allow for finer-grained concurrency in the case of supplies being used for publish/subscribe. |
|||
rakudo/supply-locking-refactor: 5a9bb4a58e | (Jonathan Worthington)++ | src/core/Supply.pm Remove unused attribute |
|||
Zoffix | ZOFVM: Files=1277, Tests=152091, 143 wallclock secs (20.57 usr 3.13 sys + 2952.57 cusr 231.80 csys = 3208.07 CPU) | 12:49 | |
Geth | rakudo/nom: bb45791c5d | (Zoffix Znet)++ | 2 files Make `eqv` throw typed exceptions on lazy comparisons Closes RT#132117: rt.perl.org/Ticket/Display.html?id=132117 P.S.: the exception's wording says "lazy lists". It's lowercased "list", which I suppose is enough wiggle room to be OK when throwing for lazy Seqs |
12:51 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=132117 | ||
roast: 66c13e9402 | (Zoffix Znet)++ | S03-operators/eqv.t Spec `eqv` behaviour with lazy arguments RT#132117: rt.perl.org/Ticket/Display.html?id=132117 Rakudo fixes: github.com/rakudo/rakudo/commit/66c2d05f29 github.com/rakudo/rakudo/commit/48a84d6aff github.com/rakudo/rakudo/commit/bb45791c5d |
12:53 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=132117 | ||
roast: 7e5caccdee | (Zoffix Znet)++ | S03-operators/eqv.t Add couple more eqv on lazy tests To cover potential separate candidates for Lists/Arays (rakudo has separate ones for Seqs) |
12:58 | ||
roast: 7ece4e5787 | (Jonathan Worthington)++ | S17-supply/basic.t Remove tests with some odd exepctations They claimed to cover RT #123477, and there are indeed tests in this file that cover that issue. However, these tests went further: they expected not only that the protocol would be enforced from the point of view of an individual tap (which is what the RT ticket was using), but also that this would carry over to future taps of the same Supply. ... (10 more lines) |
13:05 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123477 | ||
rakudo/supply-block-refactor: f53d396374 | (Jonathan Worthington)++ | src/core/Supply.pm Closure clone per supply/react, not per whenever Saves some work for supply/react blocks that have multiple whenever blocks inside of them. Also sprinkle some comments explaining what's going on. |
14:32 | ||
jnthn | m: react { await Promise.in(0.1) }; say 'ok' | 14:58 | |
camelia | ok | ||
jnthn | m: use v6.d.PREVIEW; react { await Promise.in(0.1) }; say 'ok' | ||
camelia | ok | ||
jnthn | m: await start react { await Promise.in(0.1) }; say 'ok' | ||
camelia | ok | ||
jnthn | m: use v6.d.PREVIEW; await start react { await Promise.in(0.1) }; say 'ok' | ||
camelia | A react block: in code at <tmp> line 1 Died because of the exception: An operation first awaited: in block at <tmp> line 1 Died with the exception: No matching continuation reset found in block at … |
||
jnthn | Darn. | 14:59 | |
Figured it wasn't going to be due to any of the patches in my branch. | |||
Geth | rakudo/supply-block-refactor: 29863a0bdc | (Jonathan Worthington)++ | src/core/ThreadPoolScheduler.pm Fix non-blocking react { await blah() } The `react` (and also `await $some-supply`) constructs will tap the `Supply` upon the call to `subscribe-awaiter`. This causes some amount of synchronous execution to take place, and that code may then itself `await`. This broke because the continuation tag was removed by the react/await prior to this. Protect the continuation tag, so it survives. |
15:19 | |
jnthn | .tell pmurias A while back you asked if the continuation protect flag should stay or go away. Turns out, stay: github.com/rakudo/rakudo/commit/29863a0bdc | ||
yoleaux | jnthn: I'll pass your message to pmurias. | ||
jnthn | m: use v6.d.PREVIEW; use Test; lives-ok { await start react { await Promise.in(0.1) } } | 15:20 | |
camelia | not ok 1 - # Failed test at <tmp> line 1 # No matching continuation reset found |
||
jnthn | Got a test for the above locally, will push it once I merge stuff | 16:35 | |
Geth | nqp: 4bc6050d6e | (Zoffix Znet)++ | tools/build/MOAR_REVISION Bump MoarVM |
17:22 | |
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...6-g3b4b032 | |||
rakudo/nom: dff7d9b28a | (Zoffix Znet)++ | tools/build/NQP_REVISION Bump NQP |
|||
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....3-g4bc6050 0d2ca0d7e1 | (Zoffix Znet)++ | t/02-rakudo/10-nqp-ops.t …does not SEGV. RT#132128: rt.perl.org/Ticket/Display.html?id=132128 Rakudo fix: github.com/rakudo/rakudo/commit/dff7d9b28a NQP fix: github.com/perl6/nqp/commit/4bc6050d6e MoarVM fix: github.com/MoarVM/MoarVM/commit/3b4b032984 |
|||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=132128 | ||
Zoffix | oops, slightly wrong ticket in commit message. | ||
Geth | rakudo/nom: de56c05649 | (Zoffix Znet)++ | t/02-rakudo/10-nqp-ops.t Add reference to ticket to the test |
17:26 | |
rakudo/nom: 0834036dd4 | (Zoffix Znet)++ | src/core/Int.pm Fix issues with Int.new - Fix wrong error (default constructor blah blah) with wrong args - Fix subclassed Ints returning an Int instead of subclass Fixes RT#132128: rt.perl.org/Ticket/Display.html?id=132128 |
18:10 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=132128 | ||
roast: ba7d5c1dd1 | (Zoffix Znet)++ | S32-num/int.t Test subclassing of Int.new RT#132128: rt.perl.org/Ticket/Display.html?id=132128 Rakudo fix: github.com/rakudo/rakudo/commit/0834036dd4 |
18:11 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=132128 | ||
nqp/jit_nativecall: e7f0c9b3d8 | (Stefan Seifert)++ | 12 files Map the new nativecallinvokejit OP nativecallbuild now has a return value indicating whether we were able to JIT compile code for the call site |
18:55 | ||
rakudo/jit_nativecall: 8 commits pushed by (Stefan Seifert)++
|
|||
smls | Anyone up for reviewing my NPQ PR (QRegex fixes) from 4 weeks ago, before it bitrots? github.com/perl6/nqp/pull/368 | 19:05 | |
Pinging TimToday (Still the highest authority on intended P6 regex behavior, right? Although this case looks like an obvious fix...) | 19:06 | ||
Pinging jnthn (git blame of most of the surrounding code). | |||
Zoffix | .oO( that stuff's over my head ) |
19:19 | |
Geth | rakudo: dwarring++ created pull request #1165: fix subset isa method on a subset. |
19:20 | |
nqp/jit_nativecall: 4bc6bcc51b | (Stefan Seifert)++ | 12 files Map the new nativeinvoke OP nativecallbuild now has a return value indicating whether we were able to JIT compile code for the call site |
19:44 | ||
nqp/jit_nativecall: e2029c8fd5 | (Stefan Seifert)++ | 12 files Map the new nativeinvoke OP nativecallbuild now has a return value indicating whether we were able to JIT compile code for the call site |
|||
rakudo/jit_nativecall: 6 commits pushed by (Stefan Seifert)++
|
19:52 | ||
nine | Ok, everything ready for review :) | ||
samcv | do we want to enable perl6 -n0 to have null separated lines | 19:56 | |
or maybe -0n idk. seems perl5 accepts both but that seems odd | 19:57 | ||
ilmari | because -0 and -n are separate flags | 19:58 | |
and perl5 allows bundling flags | |||
samcv | ah | 20:00 | |
makes sense now :) | |||
lizmat comes back from a day afk to find all sorts of new goodies :-) | 20:09 | ||
m: dd 2.WHERE, Int.new(2).WHERE | 20:49 | ||
camelia | 139898000064752 139898001015248 |
||
lizmat | Zoffix: why should they be different ? You can't assign into an Int, can you ? | 20:50 | |
Zoffix | lizmat: that's an old test. Perhaps it should be improved. What it's testing is: | 20:53 | |
m: dd (2 does role Meows {}).^name; (Int.new: 2).^name.say | |||
camelia | "Int+\{Meows}" Int |
||
Zoffix | c: HEAD~200 m: dd (2 does role Meows {}).^name; (Int.new: 2).^name.say | ||
committable6 | Zoffix, ¦HEAD~200: «"Int+\{Meows}"Int+{Meows}» | ||
Zoffix | I think that was fixed today, so that test didn't test the failure | ||
I mean, it's an old test I wrote, so that's what I intended :) | 20:54 | ||
lizmat | ok, because I'v just made Int.new 7x faster, but it fails that test | ||
Geth | rakudo/nom: cee1be22cf | (David Warring)++ | src/Perl6/Metamodel/SubsetHOW.nqp fix subset isa method on a subset. perl6 -e'subset S of Int; subset S2 of S; say S2.isa(S)' now returns True. fully resolves RT #132073 |
20:55 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=132073 | ||
Geth | rakudo/nom: b66f5e1cc8 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/Perl6/Metamodel/SubsetHOW.nqp Merge pull request #1165 from dwarring/subset-isa2 fix subset isa method on a subset. |
||
lizmat | (while preserving subclassability / mixability) | ||
Zoffix | wow cool :) | ||
OK, remove the test :) It's not part of 6.c-errata | 20:56 | ||
lizmat | will do | ||
Zoffix | m: dd (2 does role Meows {}).^name; (Int.new: 2).^name.say | ||
camelia | "Int+\{Meows}" Int |
||
Zoffix | m: dd (2e0 does role Meows {}).^name; (Num.new: 2e0).^name.say | 20:57 | |
camelia | "Num+\{Meows}" Num |
||
lizmat | m: class Y is Int {}; dd Y.new(42).WHAT, Int.new(42).WHAT | ||
camelia | Y Int |
||
Zoffix | (Int.new: 2).^name.say returning `Int+\{Meows}` above is basically about cached constants I think. And whatever Int.new is doing now reboxes the native int into a fresh thing | 20:59 | |
lizmat | hmm... seems the int version is still borked: | 21:05 | |
m: dd (2 does role Meows {}).^name; (Int.new: my int $ = 2).^name.say | |||
camelia | "Int+\{Meows}" Int+{Meows} |
||
lizmat | and that's what I was using as a model for optimization :-( | ||
timotimo | huh, is the boxed int cache in moarvm faulty? | 21:06 | |
lizmat | well, perhaps ? | ||
Zoffix | :( | ||
m: dd (2e0 does role Meows {}).^name; (Num.new: my num $ = 2e0).^name.say | 21:07 | ||
camelia | "Num+\{Meows}" Num |
||
Zoffix | s: Num, 'new', \(my num $ = 2e0) | ||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/0834...Num.pm#L32 | ||
Zoffix | seems same as Int's version for natives. | 21:08 | |
m: use MONKEY; augment class Int { method znew ($v) { nqp::box_i($v.Int, self) } }; dd (2 does role Meows {}).^name; (Int.znew: my int $ = 2).^name.say | 21:09 | ||
camelia | "Int+\{Meows}" Int+{Meows} |
||
Zoffix | m: use MONKEY; augment class Num { method znew ($v) { nqp::box_n($v.Num, self) } }; dd (2e0 does role Meows {}).^name; (Num.znew: my num $ = 2e0).^name.say | 21:10 | |
camelia | "Num+\{Meows}" Num |
||
Zoffix | .oO( Nums aren't cached? ) |
||
lizmat | what would be the key? :-) | 21:11 | |
Zoffix | key? | ||
FWIW, as I remember it, solving this issue for Int is something I just thought up while fixing the issue of >64bit ints failing. So I don't think there was a usecase it was fixing and there weren't test for it in 6.c-errata. We could say it's cached; deal with it. If there's no way around it | 21:13 | ||
Well, I didn't even fix it and wrote a faulty test, so... :) | |||
Zoffix & | 21:16 | ||
lizmat | m: dd 2 does role Meows {}; dd 2.WHAT # this feels like a very bad case of action at a distance | 21:47 | |
camelia | 2 Int+{Meows} |
||
lizmat | perhaps 2 does ... should not be allowed ? | ||
timotimo | probably :) | ||
you know how much fun you can have when you alter java's boxed int cache? :D | |||
ilmari | boxed_int[4] = new Integer(7); ? | 21:58 | |
timotimo | yeah, like that | ||
geekosaur | suddenly I am reminded of fortran fun | ||
gfldex stares at „java“ and „fun“ in the same sentence | 21:59 | ||
geekosaur | (i.e. java didn't invent that) | ||
ilmari | gfldex: but "fortran" and "fun" is fine? | 22:00 | |
geekosaur | fortran is call by reference, so if you call a function with a numeric literal then that literal has to be compiled into a memory location. these are in common storage so there will be only one of each distinct literal in each program | ||
timotimo | cool, you can also modify strings | ||
geekosaur | since it's call by reference, it's cool with updating the value (perl 6's "is rw" automatically) | ||
hijinks ensue | |||
I should probably specify fortran IV, I think newer takes (don't recall about fortran 95) allow by-value | 22:01 | ||
this was possible --- and being used in the wild --- for several decades before compiler writers realized it (by trying to add by-value optimizations and having the odd program suddenly break) | 22:03 | ||
travis-ci | Rakudo build failed. Zoffix Znet 'Merge pull request #1163 from skids/rt132119 | 22:12 | |
travis-ci.org/rakudo/rakudo/builds/277036247 github.com/rakudo/rakudo/compare/0...5c36c134db | |||
buggable | [travis build above] ✓ All failures are due to: GitHub connectivity (1 failure). | ||
samcv | discussed this with jnthn in #moarvm. i think it makes sense for .codes to count each utf8-c8 grapheme as 1 code | 22:31 | |
since it shouldn't be decomposed ever | |||
plan to change that, as well as fixing a problem where string operations on strings containing utf8-c8 synthetics would cause them to turn into normal text. | 22:32 | ||
m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); say $u.chars; $u.=subst("a","a"); say $u.chars | |||
camelia | 6 9 |
||
samcv | replace a with a, and it turns the utf8c8 graphemes into standard text which it should not. will be fixing that too | 22:33 | |
any objections to the .codes returning 1 for each utf8c8 grapheme? | |||
though i guess .ords decomposes the utf8c8 into non utf8c8. not sure what it should do in that case anyway | 22:34 | ||
m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); say $u.ords. say $u | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3u=$b.decode("utf8-c8"); say $u.ords. say7⏏5 $u expecting any of: infix infix stopper postfix statement end … |
||
samcv | m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); say $u.ords; say $u | 22:35 | |
camelia | (103 1114109 120 70 56 111 1114109 120 68 57 1114109 120 68 50 97) g?xF8o?xD9?xD2a |
||
timotimo | my terminal doesn't understand this at all %) | 22:54 | |
samcv | well. it's utf8c8 :P | 23:03 | |
it's a private area character | |||
timotimo, any thoughts on having .codes return 1 for each utf8c8 synth? | 23:04 | ||
i mean .ords converts it into like what you see on your screen as the output. but that's because it's not printing out as utf8c8 and converting to utf8 | 23:05 | ||
m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); $*OUT.say: :enc<utf8c8>,$u.ords; say $u | |||
camelia | (103 1114109 120 70 56 111 1114109 120 68 57 1114109 120 68 50 97) g?xF8o?xD9?xD2a |
||
samcv | m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); $*OUT.say: :enc<utf8c8>,$u.ords; | 23:06 | |
camelia | (103 1114109 120 70 56 111 1114109 120 68 57 1114109 120 68 50 97) | ||
samcv | m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); $*OUT.say: :enc<utf8c8>, $u | ||
camelia | g?xF8o?xD9?xD2a | ||
samcv | m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); $*OUT.say: :enc<utf8-c8>, $u | ||
camelia | g?xF8o?xD9?xD2a | ||
samcv | m: my @ints = 103, 248, 111, 217, 210, 97; my $b = Buf.new(@ints); my Str $u=$b.decode("utf8-c8"); $*OUT.write: :enc<utf8-c8>, $u | ||
camelia | Type check failed in binding to parameter '$buf'; expected Blob but got Str ("g?xF8o?xD9?xD2a") in block <unit> at <tmp> line 1 |
||
samcv | forget what i'm supposed to use :P | 23:07 | |
jnthn | $*OUT.write: $u.encode('utf8-c8') | 23:08 | |
Or $*OUT.encoding('utf8-c8'); say $u | |||
samcv | for now i'm not going to change .codes. will think about it a little more | 23:12 | |
also .ords returns flattened synthetics. which is weird. not sure what that shuold do either. any idea jnthn | 23:13 | ||
oh looks like you're going to bed. night o/ | |||
i sort of feel .ords should return the name number as .codes does. so i'm kind of unsure what to do | |||
and would probalby want to change both at the same time so it's consistent | 23:14 | ||
timotimo | samcv: i don't know what use cases there are for .codes on an utf8-c8 string and what's more convenient | 23:17 | |
samcv | oh. make distclean solved my issue with compiling moarvm not updating its version number. even after running ./Configure.pl again | 23:19 | |
hmm | |||
timotimo | really, the biggest problem with utf8-c8 i see at the moment is that if you pipe random binary data in you can accidentally hit "valid" utf8 that will still throw an exception | 23:22 | |
samcv | ah so that's what causes it | 23:26 | |
timotimo | hm, i can't provoke it right now for some reason | 23:30 | |
so maybe it actually got fixed and i just didn't notice? | |||
yeah, i've been running a loop that runs Buf.new(^256 .roll(64)).decode("utf8-c8") until it throws an exception | 23:32 | ||
that's cool. | 23:33 | ||
samcv | m: my $b = Buf.new([245, 187, 185, 167]).decode("utf8-c8").say | 23:44 | |
camelia | Error encoding UTF-8 string: could not encode codepoint 1556071 (0x17BE67), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF) in block <unit> at <tmp> line 1 |
||
samcv | m: my $b = Buf.new([245, 187, 185, 167]).decode("utf8-c8").ords.say | 23:45 | |
camelia | (1556071) | ||
samcv | well i fixed one of them at least timotimo | 23:49 | |
maybe | 23:50 | ||
timotimo | i wonder if i just did my code wrong that i never stumbled upon any case where it threw an exception | 23:52 | |
weird. | |||
samcv | well i found the issue | 23:54 | |
it doesn't check if the codepoint is too large | |||
i fuond the rigth spot and put a check in and it didn't die |