Zoffix | "100.00% | 01:02 | |
According to me spreadsheet :) Time to rebuild perl6.wtf website, check if any routines want more testing, finish off The Definitive IO Guide, write up final report, and done | 01:03 | ||
MasterDuke | Zoffix++ | 01:04 | |
japhb | m: ':3[4, 22, 1]'.Numeric.say # MasterDuke | 01:07 | |
camelia | Cannot convert string to number: digit is larger than 2 in ':3' style radix number in '3:3[4⏏5, 22, 1]' (indicated by ⏏) in block <unit> at <tmp> line 1 Actually thrown at: in block <unit> at <tmp> line 1 |
||
MasterDuke | huh | 01:09 | |
BenGoldberg | m: '2:[11111]'.Numeric.say | ||
camelia | Cannot convert string to number: trailing characters after number in '032⏏5:[11111]' (indicated by ⏏) in block <unit> at <tmp> line 1 Actually thrown at: in block <unit> at <tmp> line 1 |
||
BenGoldberg | m: ':2[11111]'.Numeric.say | 01:10 | |
camelia | Cannot convert string to number: digit is larger than 1 in ':2' style radix number in '3:2[11111⏏5]' (indicated by ⏏) in block <unit> at <tmp> line 1 Actually thrown at: in block <unit> at <tmp> line 1 |
||
BenGoldberg | m: ':2[11111'.Numeric.say | ||
camelia | Cannot convert string to number: digit is larger than 1 in ':2' style radix number in '3:2[11111⏏' (indicated by ⏏) in block <unit> at <tmp> line 1 Actually thrown at: in block <unit> at <tmp> line 1 |
||
BenGoldberg | That is a vr strange err message. | ||
MasterDuke | weird, that form is processed in two different spots | 01:14 | |
github.com/rakudo/rakudo/blob/nom/...#L349-L378 and github.com/rakudo/rakudo/blob/nom/...2949-L2968 | 01:16 | ||
japhb | MasterDuke: ISTR the speculations were the basis of the Str.Numeric behavior | 01:18 | |
MasterDuke | hm. ShimmerFairy did the val implementation in 9/2015 and moritz did the UNBASE_BRACKETS implementation in 9/2012. i guess they really should be de-duplicated somehow | 01:26 | |
japhb: and you think the val version is more correct? | 01:28 | ||
BenGoldberg | m: val(':2[11111]').say | 01:30 | |
camelia | :2[11111] | ||
BenGoldberg | m: dd val(':2[11111]') | 01:31 | |
camelia | ":2[11111]" | ||
BenGoldberg | m: dd val(':2[11111]', :val-or-fail) | 01:32 | |
camelia | Failure.new(exception => X::Str::Numeric.new(source => ":2[11111]", pos => 8, reason => "digit is larger than 1 in ':2' style radix number"), backtrace => Backtrace.new) | ||
Zoffix | ./build-coverakudo.sh: line 60: 13598 Segmentation fault perl6 bootstrap.pl | 02:24 | |
Well, crap. I can't finish the grant without coverage report :| | |||
Zoffix tries without pulling in moar master | 02:26 | ||
*phew* seems to be working fine now | 02:31 | ||
japhb | S02:3317 | 02:54 | |
synopsebot6 | Link: design.perl6.org/S02.html#line_3317 | ||
japhb | MasterDuke: ^^ | ||
Gah, link doesn't work. | 02:55 | ||
MasterDuke: S02:3317 says " 3317 All numbers representing digits must be less than the radix, or an error | |||
synopsebot6 | Link: design.perl6.org/S02.html#3317_says | ||
japhb | 3318 will result (at compile time if constant-folding can catch it, or at run | ||
3319 time otherwise)." | |||
MasterDuke | looks like ShimmerFairy also spotted the inconsistency, RT #125800 and 123572 can probably be merged | 02:59 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125800 | ||
Zoffix | perl6.wtf updated. Though it's data is pretty dismal :| | 03:23 | |
like, every method of CatHandle is tested, but it shows at 27% covered :/ perl6.wtf/SETTING__src_core_IO_Cat...erage.html | 03:24 | ||
Oh, wait a second... | 03:26 | ||
haw... I forgot to add S32-io/io-cathandle.t to spectest.data file :P | |||
So I guess I wasted an hour waiting for coverage to build :) Gonna set it to run just 1 stresstest instead of 3; seems to flop less and the failures are consistent | 03:27 | ||
Which, for record, are these: gist.github.com/zoffixznet/f210e22...35f8d37ab8 | 03:28 | ||
Anyone recall what tool tells you which files aren't in spectest.data? Maybe there're others I forgot about | 03:29 | ||
looks like tools/update-passing-test-data.pl | 03:31 | ||
I'll be damned... t/spec/S32-io/tell.t is another forgotten one | 03:33 | ||
.tell pmurias RE: github.com/perl6/roast/blob/master...s-approx.t there's actually a more comprehensive test for that routine in rakudo's test suite. Should it be moved to roast, then? github.com/rakudo/rakudo/blob/nom/...s-approx.t | 03:37 | ||
yoleaux | Zoffix: I'll pass your message to pmurias. | ||
Zoffix | .tell pmurias nevermind. I moved it. Seems to make sense. | 03:41 | |
yoleaux | Zoffix: I'll pass your message to pmurias. | ||
Geth | rakudo/nom: dfdd5439f3 | (Zoffix Znet)++ | t/spectest.data Add now-passing test files - Also a couple of IO test files I forgot to add |
03:45 | |
rakudo/nom: 7aa1c08ceb | (Zoffix Znet)++ | t/02-rakudo/02-new-is-approx.t Move is-approx tests to roast |
|||
roast: 61ab1c61f4 | (Zoffix Znet)++ | S24-testing/10-is-approx.t Replace is-approx test file With more comprehensive set of tests for this routine that existed in rakudo's test suite. |
03:46 | ||
roast: e863b9499a | (Zoffix Znet)++ | S24-testing/10-is-approx.t Remove useless `use lib <lib>` |
03:49 | ||
Zoffix | ZOFVM: Files=1252, Tests=136819, 115 wallclock secs (22.11 usr 2.93 sys + 2334.35 cusr 129.80 csys = 2489.19 CPU) | 03:50 | |
hm, tried building coverage on 24-core my google VM.... there's like a billion failing tests :/ | 04:01 | ||
so many, I just aborted it, 'cause coverage will be crap | |||
Zoffix shudders at rt.perl.org/Ticket/Display.html?id=131392 | 04:22 | ||
I thought Perl 6 left weird-magic-variables stuff to Perl 5 | |||
geekosaur | $/ (match result) is one of the few left | 04:24 | |
Zoffix | m: 'foo' ~~ /$<meow>=.+/; say %() | ||
camelia | Map.new((:meow(Match.new(list => (), made => Any, pos => 3, hash => Map.new(()), orig => "foo", from => 0)))) | ||
Zoffix | m: 'foo' ~~ /(.+)/; say @() | 04:25 | |
camelia | (「foo」) | ||
Zoffix | m: 'foo' ~~ /(.+)/; say $() | ||
camelia | foo | ||
Zoffix | m: class Foo { multi method words(::?CLASS:D:) { say 'meow' }; multi method words(::?CLASS:D \SELF: $limit, :$close) { say 'here' }; multi method words(::?CLASS:D \SELF: :$close) { say 'there' }; }; Foo.new.words; Foo.new.words: :close; Foo.new.words: 4, :close; | 04:33 | |
camelia | there there here |
||
Zoffix | hm. Any way to make the `meow` one to be called on Foo.new.words? | ||
m: class Foo { multi method words(::?CLASS:D:) { say 'meow' }; multi method words(::?CLASS:D \SELF: $limit, :$close) { say 'here' }; multi method words(::?CLASS:D \SELF: :$close!) { say 'there' }; }; Foo.new.words; Foo.new.words: :close; Foo.new.words: 4, :close; | 04:34 | ||
camelia | meow there here |
||
Zoffix | nm | ||
cpan@perlbuild4~/CPANPRC/rakudo (nom)$ t/fudgeandrun t/spec/S06-other/main.t | 04:40 | ||
t/spec/S06-other/main.t .. ===SORRY!=== | |||
Serialized data segment overflows end of stream | |||
Got a whole ton of such failures :S | |||
Rebuilt. Gone now :/ | 04:50 | ||
Wonder if it's one of the new test files I added above that's causing global mess up | |||
ZofBot: it's really dead in here! | |||
ZofBot | Zoffix, First, you can convert the angles into radians, by multiplication: sin(90 * Degrees) or by using the "to-radians" method: sin(90 | ||
Geth | rakudo/nom: ed07b2c375 | (Zoffix Znet)++ | 2 files Fix thinko in .lines/.words handle candidates The no-arg candidates were not chosen, but the ones with :$close were |
04:55 | |
Zoffix | ohhhh | 05:07 | |
Those weird errors? /dev/sda1 9.8G 9.3G 188K 100% / | |||
Geth | roast: 899d223abd | usev6++ | S16-filehandles/argfiles.t [JVM] Skip hanging test |
05:13 | |
rakudo/nom: f9403b3b8e | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm Fix order of RAKUDO_MODULE_DEBUG precomp output By capturing STDERR of precomp processes, their output will appear later than its actually printed. This makes understanding this output much harder as the sequence of events is important. Fix by just not capturing STDERR in that case. |
07:41 | ||
[Tux] | This is Rakudo version 2017.05-290-gf9403b3b8 built on MoarVM version 2017.05-25-g62bc54e9 | 07:53 | |
csv-ip5xs 2.714 | |||
test 12.774 | |||
test-t 4.372 - 4.422 | |||
csv-parser 12.895 | |||
jnthn | morning o/ | 08:44 | |
lizmat | jnthn o/ | 08:45 | |
Geth | nqp: 81b1f29808 | pmurias++ | src/HLL/Compiler.nqp [js] Omit useless parens |
11:06 | |
nqp: cad6b7d667 | pmurias++ | 4 files [js] Implement nqp::execname |
|||
rakudo/js: 955748066e | pmurias++ | 2 files [js] Pass --execname when building rakudo.js |
12:08 | ||
rakudo/nom: 36ea86071e | (Zoffix Znet)++ (committed using GitHub Web editor) | docs/2017-IO-Grant--Action-Plan.md Update list of plan changes in IO grant |
13:03 | ||
rakudo/nom: 51d6ff9c01 | (Zoffix Znet)++ (committed using GitHub Web editor) | docs/2017-IO-Grant--Action-Plan.md List IO::Cat was renamed to IO::CatHandle |
13:27 | ||
Zoffix | m: for 'a', 'b' -> $x { my $z = \(my class Foo {}) } | 14:09 | |
camelia | ( no output ) | ||
Zoffix | m: gist.github.com/zoffixznet/92317fb...bb38bdc4b7 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Redeclaration of symbol 'Foo42' at <tmp>:28 ------> 3 7⏏5}, '((Mu) (Foo) I ♥ Perl 6 1 2 [3 5 (foo |
||
Zoffix | redeclaration? wtf is its problem? | ||
Ah. Closing curly instead of a paren | 14:11 | ||
Geth | roast: ce1b637eab | (Zoffix Znet)++ | S32-io/io-handle.t [io grant] Test IO::Handle.say |
14:13 | |
roast: 0bb629891b | (Zoffix Znet)++ | S32-io/io-handle.t [io grant] Test IO::Handle.print-nl |
14:22 | ||
roast: 20384dc85c | (Zoffix Znet)++ | S32-io/io-handle.t Remove useless open call |
|||
roast: 47c88abe40 | (Zoffix Znet)++ | S32-io/pipe.t [io grant] Test IO::Pipe.proc attribute |
14:27 | ||
roast: 945621d507 | (Zoffix Znet)++ | S32-io/io-path.t [io grant] Test IO::Path.SPEC attribute |
14:35 | ||
roast: 5fb4b633dc | (Zoffix Znet)++ | S32-io/io-path.t [io grant] Test IO::Path.CWD/.path attributes |
14:48 | ||
Zoffix | ZOFVM: Files=1252, Tests=136825, 119 wallclock secs (22.66 usr 3.35 sys + 2404.00 cusr 166.62 csys = 2596.63 CPU) | 15:04 | |
Geth | roast: d0e5701b71 | (Zoffix Znet)++ | S32-io/io-path.t [io grant] Test IO::Path.Numeric and other .numeric methods |
15:05 | |
rakudo/nom: d13d9c2e15 | (Zoffix Znet)++ | src/core/IO/Path.pm [io grant] Throw out IO::Path.int It's already handled via .Numeric |
|||
Zoffix | I mean .Int | 15:08 | |
Geth | rakudo: MasterDuke17++ created pull request #1090: Error for wrong arity in signature has right value |
15:31 | |
rakudo/nom: 86fe766aec | MasterDuke17++ | t/05-messages/01-errors.t Error for wrong arity in signature has right value Tests for rt.perl.org/Ticket/Display.html?id=123085 |
15:33 | ||
rakudo/nom: a18c0649da | (Zoffix Znet)++ (committed using GitHub Web editor) | t/05-messages/01-errors.t Merge pull request #1090 from MasterDuke17/tests_for_RT123085_wrong_arity_in_signatures Error for wrong arity in signature has right value |
|||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123085 | ||
Zoffix | (people who wrote IO::Spec* tests)++ # really thorough job | 15:49 | |
Geth | roast: 94d7133661 | (Zoffix Znet)++ | S16-io/bare-say.t [io grant] Test 0-arg &say/&put/&print |
15:58 | |
ugexe | is/when is tap harness being removed from core? | 16:07 | |
ugexe sees the verbose output stuff was added to the tap-harness6 repo only | 16:08 | ||
Zoffix | ugexe: next Saturday the latest. It's next on my list after finishing IO grant | 16:09 | |
ugexe | it'll be interesting seeing what happens when a core module is removed (re: upgrades) | 16:13 | |
i imagine they will still have TAP::ver<6.c>:auth<perl> installed - in this case i don't see a problem but might be worth figuring out if it could be for other modules in the future | 16:16 | ||
Geth | roast: 4dd22cf61a | (Zoffix Znet)++ | S32-io/slurp.t Remove trailing whitespace |
16:17 | |
roast: 38c61cd329 | (Zoffix Znet)++ | S32-io/slurp.t [io grant] Test &slurp() and &slurp(IO::Handle) |
16:18 | ||
Zoffix | w00t all testing is done | ||
Zoffix starts last perl6.wtf update run | 16:19 | ||
ZOFFLOP: t/spec/S17-supply/interval.t | 16:33 | ||
BTW hack is doing ( ping moritz ) | 16:34 | ||
I mean down | |||
SourceBaby: help | 16:35 | ||
dalek left an hour ago; I'm surprised SourceBaby is still here :S | |||
and I can't ssh [email@hidden.address] | |||
ZOFVM: Files=1252, Tests=136834, 117 wallclock secs (22.78 usr 3.43 sys + 2389.07 cusr 155.78 csys = 2571.06 CPU) | 16:36 | ||
moritz | Zoffix: rebooting now | 16:38 | |
Zoffix | w00t | 16:39 | |
Thanks | |||
dogbert17 | commit: 2016.06 my $a = 1; say Q:c«{$a}()$b()»; | 17:08 | |
committable6 | dogbert17, ¦2016.06: «1()$b()» | ||
dogbert17 | m: 2016.06 my $a = 1; say Q:c«{$a}()$b()»; | 17:09 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 032016.067⏏5 my $a = 1; say Q:c«{$a}()$b()»; expecting any of: infix infix stopper statement end statement mo… |
||
dogbert17 | m: my $a = 1; say Q:c«{$a}()$b()»; | ||
camelia | 1()$b() | ||
dogbert17 | Zoffix: have you ever used the BUILDALL method? | 17:11 | |
Zoffix | nope | ||
dogbert17 | :( trying to update some docs and there's an inconsistency in an example | 17:12 | |
the example has a call to callsame in it but the text explaining the example says you must call nextsame. docs.perl6.org/language/traps | 17:13 | ||
Zoffix | Well, I have an article on callsame/nextsame that may assist you in figuring out which is the right routine in there. perl6.party/post/Perl6-But-Heres-M...with-Maybe | 17:17 | |
"Which also explains why...' | 17:18 | ||
Zoffix shrugs | |||
Don't explain to me | |||
dogbert17 | :) will have a look | 17:19 | |
lizmat | Zoffix: am looking at RT #131395 | 17:34 | |
MasterDuke | m: class A {}; say A.^methods(:all) | 17:41 | |
camelia | (Method+{<anon|70885904>}.new Method+{<anon|70885904>}.new Method+{<anon|70885904>}.new Method+{<anon|70885904>}.new Method+{<anon|70885904>}.new Method+{<anon|70885904>}.new Method+{<anon|70885904>}.new Method+{<anon|70885904>}.new Method+{<anon|7088590… | ||
Geth | rakudo/nom: 9494cbd3b9 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm Fix for RT #131395 Apparently nqp::isnull() is not always the right test for $!reified |
17:42 | |
Zoffix | cool | 17:52 | |
lizmat | greppable6: pack( | 17:56 | |
greppable6 | lizmat, Sorry, can't do that | ||
lizmat | greppable6: pack\( | ||
greppable6 | lizmat, gist.github.com/0450cd99cf5bb95d70...87d457c0b7 | ||
BenGoldberg | greppable6: <|w>pack\( | 18:33 | |
Oops? | 18:34 | ||
Zoffix | It's not Perl 6 regex. it's grep -E | 18:35 | |
Geth | roast: 0faf3c354f | (Zoffix Znet)++ | S03-metaops/cross.t Test X, with empty-List RHS does not crash RT#131395: rt.perl.org/Ticket/Display.html?id=131395 Rakudo fix: github.com/rakudo/rakudo/commit/9494cbd3b9 |
18:36 | |
BenGoldberg | Well, it shouldn't have *died*! ;) | 18:37 | |
BenGoldberg feels bad about accidentally killing the bot :P | |||
MasterDuke | to be precise it's git grep -P -i -I | 18:39 | |
BenGoldberg | Also, I notice in the gist it produced: There's an extra space produced before the matched text, so where the original code had 'unpack', the gist has 'un pack' (or I suppose 'un pack' | ||
with bold) | 18:40 | ||
MasterDuke | yeah, something do with the the markdown i believe | ||
and the way it highlights | |||
BenGoldberg | I think the problem is with beginning and end of <code> sections. | 18:42 | |
E.g.: $buffer.un</code><strong><code>pack(</code></strong><code>"... | |||
There's no *actual* space, but my browser (chrome) is showing it as if there were one. | 18:44 | ||
MasterDuke | do you know a way to fix that? | ||
BenGoldberg | huggable, chromebug | 18:47 | |
huggable | BenGoldberg, nothing found | ||
BenGoldberg shrugs | |||
MasterDuke | not just chrome, i get it in FF too | 18:48 | |
[Coke] | BenGoldberg: URL showing the issue? | 18:50 | |
BenGoldberg | gist.github.com/Whateverable/0450c...87d457c0b7 | ||
If you *select* the text, it kinda shows that the browser knows there's not really supposed to be a space, since the area before and after "pack(" isn't highlighted. | 18:52 | ||
Zoffix | [Coke]: I'm gonna be submitting my completion report today, as I'm hours away from finsihing the IO grant | 18:54 | |
Just gonna cleap up .open docs + finish definitive IO Guide + finish the already-half-made report and done | |||
*clean | |||
BenGoldberg | And (when it's not selected) zooming in shows these odd artifacts in the background color. They're subtle, since it's a super-pale background for the <code> stuff, vs white background for the rest of the page. | 18:55 | |
Geth | rakudo/nom: 608e886a9b | usev6++ | src/core/Exception.pm Don't use unival on JVM backend (NYI there) |
18:58 | |
lizmat | Zoffix: would you mind making the IO Grant completion something for next week's P6W ? | 18:59 | |
[Coke] | Zoffix: sounds good, thanks. | ||
Zoffix | lizmat: sounds fine to me. | 19:02 | |
lizmat | ok... almost done with the P6W of this week, and it's already quite large | ||
Zoffix | \o/ | ||
BenGoldberg | I spy on p6weekly.wordpress.com/ a really annoying bug! | 19:05 | |
I wanted to scroll down to the links for the RSS feeds, and the page kept getting longer and longer, pushing them further and further down. | 19:06 | ||
Zoffix sees no RSS feeds links | 19:08 | ||
ugexe | samcv: I think you can do the type of reinstall you want using (new) --force-install flag. there are --force-[resolve|fetch|build|test] flags as well to only force what you want (or everything with --force) | 19:10 | |
samcv | oh great :) fantastic thanks ugexe | ||
also --depsonly is the only flag that doesn't have dashes between words. really weird | |||
i always try and do --deps-only because that's how every single other flag is | 19:11 | ||
ugexe | heh, yeah i should alias that | 19:12 | |
lizmat | BenGoldberg: if you're interested in just one issue, you can click on the title and get a separate page | ||
BenGoldberg: e.g. p6weekly.wordpress.com/2017/05/22/...-21-yap6b/ | |||
BenGoldberg | No, I wanted my news reader to subscribe to the rss feed, but I couldn't click the link, since it kept running away :) Turning off javascript, then copying the link, then turning it back on fixed the silly problem... | 19:14 | |
BenGoldberg wonders how often you get new people subscribing ;) You'd have to look at accesses to p6weekly.wordpress.com/feed/ whose http "referer" is the main page. | 19:17 | ||
Geth | roast: d36b837130 | usev6++ | 6 files [JVM] Fudge newly failing tests |
19:37 | |
Zoffix | bartolin_: I take it all the JVM failures are now fudged? I recall promising long time ago to fudge stuff when I was done with the grant, and I'm done with writing tests... Wondering if I need to build JVM and stresstest | 19:40 | |
bartolin_ | Zoffix: well, there might be a few failing tests left. It's hard to keep up with all the commits and new tests :-) | 19:41 | |
Zoffix | :) | 19:42 | |
bartolin_ | but I'll fudge the remaining tests as well, so you can use your time for something better. (e.g. relax?) | ||
Zoffix++ | |||
Zoffix | bartolin_++ thanks | ||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/05/29/...-encoding/ | 19:56 | |
MasterDuke | huh, i can't seem to use $*W in Exceptions.pm or Perl6/Metamodel/BOOTSTRAP.nqp | 20:03 | |
Zoffix | wow, lots of stuff | 20:04 | |
lizmat++ good weekly | |||
lizmat: what's 'The Afflighem Affair'? Google-fu is failing me | |||
lizmat | Zoffix: it's the beer I'm drinking there | ||
Zoffix | Ahhhh :) | ||
lizmat | and tonyo coined the term, if I remember correctly :-) | 20:05 | |
which I may not, due to the nature of the alcoholic beverages involved :-) | |||
Zoffix | lol | ||
MasterDuke | `Serialization Error: missing static code ref for closure 'suggest_methods' (src/Perl6/World.nqp:4060)`. heh, tried to get around no $*W when/where i wanted it by returning a closure at BEGIN time. oh well | 20:29 | |
INIT almost worked | 20:35 | ||
Geth | nqp/master: 4 commits pushed by pmurias++
|
20:48 | |
rakudo/js: 2a84ee0bc3 | pmurias++ | 3 files [js] Create a perl6-js runner during "make js-all" |
|||
Zoffix | Writing some examples for IO tutorial and realizing that .lines and .words iterators could probably use .count-only method implementations | 20:52 | |
Something that still reads the lines, but just tosses them while bumping up a counter. Dunno... would that get cleaned up by GC well? The goal here is to, say, count words in a huge file: '500-Petabytes.txt'.IO.words.elems.say | 20:53 | ||
without keeping a huge Seq of words around | |||
jnthn | A Seq by definition doesn't keep things around | 20:54 | |
That's the point of it | |||
Zoffix | s: ().Seq, 'elems', \() | ||
SourceBaby | Zoffix, Sauce is at github.com/rakudo/rakudo/blob/608e...Seq.pm#L97 | ||
jnthn | Except the things that call .cache, of course. | 20:55 | |
Zoffix | jnthn: self.cache.elems | ||
jnthn | Yeah | ||
Zoffix | Yeah | ||
jnthn | :/ | ||
Taht one was cached because otherwise we couldn't do @foo.grep(&blah)[*-1] and so forth | |||
Zoffix | Ah. OK. | 20:56 | |
lizmat | Zoffix: count-only only makes sense if you can determine the number *without* iterating at all | 20:57 | |
jnthn | Which is indeed rather unfortunate for the "just count stuff" case | ||
Zoffix | lizmat: thanks | ||
lizmat | same for bool-only | ||
jnthn | Maybe we need a .count or something | ||
lizmat | (which you *might* get away with?) | ||
jnthn | (where since it's a method call it's the verb, not the noun) | ||
MasterDuke | i'm trying to add a suggest_methods to World.nqp, and call it from either Exception.pm or BOOTSTRAP.nqp. in addition to the error above, also got `X::Method::NotFound exception produced no message` and `Cannot find method 'suggest_methods' on object of type NQPMu` | 21:03 | |
anybody have a suggestion? | 21:04 | ||
lizmat | MasterDuke: this is about levenshteining a method name that wasn't found ? | 21:08 | |
MasterDuke | yeah | ||
lizmat | why not do this in HLL Perl 6 ? | 21:09 | |
I mean, you can call .^methods(:all)>>.name on the object, no ? | |||
MasterDuke | just because the functionality is already mostly done in Word.nqp | ||
lizmat | and it doesn't need to be optimized, as execution is pretty much done by that point, no ? | 21:10 | |
but must it be in nqp ? | |||
MasterDuke | i don't care about that, just didn't want to implement another levenshtein function | 21:11 | |
lizmat | hmmm...there's also src/core/StrDistance.pm | 21:13 | |
which is used in Actions | |||
MasterDuke | ah! | 21:14 | |
lizmat | not sure how they all relate, fwiw | 21:15 | |
never got a round tuit for that | |||
MasterDuke | i'll give that a try | 21:17 | |
lizmat | MasterDuke++ | 21:21 | |
meanwhile, I'm going to try to get away from the keyboard for a while | |||
chansen_ | I have just read lizmat's excellent weekly summary, I'm just curious why the decision of streaming encodings where pushed to Perl6/NQP, seems like a major degradation of performance for programs targeting MoarVM. In my book implementing support for UTF-8, UTF-16(BE|LE) and UTF-32(LE|BE) is the easiest part of Unicode. | 21:23 | |
jnthn | chansen_: I wondered when I read it if somebody would read it that way. Apparently, "yes" | 21:24 | |
The VM still provides fast decoding for the most common ones. | 21:25 | ||
What changed is that previously there have been a bunch of VM-provided ops for doing char-level I/O | 21:26 | ||
While now there's binary I/O and a VM-backed decoder which are decoupled from each other | |||
So what's really moved up to Perl 6 is the coordination, *not* the hot loop work of decoding. | 21:27 | ||
Though in doing that it will be possible for userspace decoders to be used with the built-in IO handles, at least once we standardize the interface to that. | 21:28 | ||
Which it previously wasn't | |||
This also allows for a number of simplifications down at the VM level, and further will also make streaming decode support available when you aren't doing I/O through the VM | 21:29 | ||
Zoffix | .ask samcv is there any switch for disabling highlighting in a code block on the docs site? I got these code blocks that just contain text (I use codeblocks for tighter formatting). I can of course just make the text comments, but wondering if there's a switch. docs.perl6.org/type/IO::Handle#method_open | ||
yoleaux | Zoffix: I'll pass your message to samcv. | ||
samcv | hey Zoffix | 21:30 | |
yoleaux | 21:29Z <Zoffix> samcv: is there any switch for disabling highlighting in a code block on the docs site? I got these code blocks that just contain text (I use codeblocks for tighter formatting). I can of course just make the text comments, but wondering if there's a switch. docs.perl6.org/type/IO::Handle#method_open | ||
samcv | well yeah just use uh | ||
Zoffix | FWIW neither [Tux]'s bench nor my stresstest runs show any noticeable perf degradation after the encoding refactor | ||
samcv | =begin code :allow< B R > | ||
literally :allow<anything> | |||
would prolly trigger it. even if it is not understood as being bold or italic etc | 21:31 | ||
will cause it to render as pod | |||
pod code that is | |||
jnthn | BTW, think I figured out the correct solution to the readchars/getc thing; will have time to tinker with it tomorrow. | ||
samcv | oh nice jnthn | ||
jnthn | (Will need a tweak to the decoder API) | ||
Zoffix | samcv: thanks. I'll give ti a go | 21:32 | |
samcv | Zoffix, alternatively we could add a thing | ||
but that i know works today | |||
with no changes to the build script | |||
Zoffix | cool | ||
jnthn | Down with this summer thing. It's still pretty warm. At 11:30pm. :/ | ||
samcv | :) | ||
chansen_ | jnthn: IIUC, the state of incomplete sequences (is in the host language) while the VM processes any complete sequences in any of the defined Unicode encodings? | 21:33 | |
jnthn | chansen_: For the built-in decodings the normalization buffer and any partially eaten multi-byte sequences are managed in the VM too | 21:35 | |
chansen_: In the host language we ask the I/O handle for some bytes, then feed those bytes to the decoder, and ask it for chars. | |||
chansen_: And it can provide chars in a range of ways (for example, up to a separator, or all that we know are normalized and won't change, or everything assuming we hit eof) | 21:36 | ||
BenGoldberg | Silly question: does the decoder API provide an option to choose whether to throw an error or insert � when it finds invalid bytes? | 21:39 | |
jnthn | At the moment it always throws an error | 21:41 | |
BenGoldberg | Hmm... | ||
jnthn | Until now we've had async I/O code paths and sync I/O code paths, and when we did char level I/O at the VM we ended up with every single decoding improvement needing to happen in both of those places. | 21:43 | |
Whereas now we can do the replacement char support and only have to extend one lower-level API to do it. | 21:44 | ||
chansen_ | jnthn: That make sense, thank you for the explanation. | 21:45 | |
AlexDaniel | BenGoldberg: re greppable and spaces: I just don't know how to highlight something in a code block :( | 21:49 | |
maybe I should simply create .html, host it myself and give a link to it | 21:50 | ||
this way I will not be abusing github, it will be faster, and we'd be able to do whatever we want with it | 21:51 | ||
anyway, I created an issue for it: github.com/perl6/whateverable/issues/155 | 21:54 | ||
Zoffix | .in 2d Future-Zoffix: Address the .sink-all stuff: github.com/rakudo/rakudo/commit/0c...t-22320387 | ||
yoleaux | Zoffix: I'll remind you on 31 May 2017 21:54Z | ||
Zoffix | BenGoldberg++ thanks for that pointer. I'll fix up that code when I get a chance | 21:55 | |
AlexDaniel | .in 5d Future-AlexDaniel: Fix all 103 whateverable issues | 21:56 | |
yoleaux | AlexDaniel: I'll remind you on 3 Jun 2017 21:56Z | ||
Zoffix | heh | 21:57 | |
BenGoldberg | :) | ||
AlexDaniel | greppable6: <|w>pack\( | ||
chansen_ | samcv: I'm glad that you received a grant to improve Unicode support in Perl6! But please learn from existing implementations, there is no need to reinvent structures that have been invented long before Perl6. | 21:58 | |
AlexDaniel | Unhandled exception in code scheduled on thread 20 | ||
Malformed UTF-8 | |||
this is the issue: github.com/perl6/whateverable/issues/153 | |||
samcv | chansen_, what do you mean by structures | ||
BenGoldberg | AlexDaniel, I think greppable needs \b instead of <|w>. | ||
AlexDaniel | BenGoldberg: sure, but as you said, it shouldn't crash :) | 21:59 | |
chansen_ | samcv: data representation in memory or from I/O | ||
BenGoldberg | greppable6: \bpack\( | 22:00 | |
greppable6 | BenGoldberg, gist.github.com/31e6ca66ef71758021...52c265be3e | ||
samcv | not sure what you're saying i should do. thinking you're talking about the structure of the unicode database? | ||
do you have a proposal for an existing data implementation to use? | |||
i'm all ears if there is something that will help me when i start through that phase of my work | 22:01 | ||
or a library for bitfield creation would be neat as well | 22:02 | ||
chansen_ | I'm talking in a more general perspective (bitfield creation?), I assume you are are aware about "compact array"/"folded trie"? | 22:05 | |
samcv | yes that was one thing i had considered. i will def look further into that. thanks | 22:08 | |
the index compresion is one part which i had not fully figured out yet. so that would be great | 22:10 | ||
since we have way more indexes than we have discreet unique property sets | 22:11 | ||
there's like 20,000 different combinations of property values but way more codepoints. and compressing the index was one of the things i needed to decide how that would be implemented | |||
BenGoldberg | You might (or might not) get better results looking at each property (especially booleans) separately. | 22:17 | |
chansen_ | There is no magical bullet for the compression of the folded trie, but first decide on the absolute necessary properties (don't try to represent all of the Unicode properties in one trie) once you have decided on the properties (perhaps GC, GCB, BIDI) you can implement it efficiently. | 22:18 | |
samcv: learn from others, you are not the first to encounter these problems! | 22:19 | ||
samcv: Unicode Demystified is a good read (even though it's old), learn from ICU, read chapter 5 in Unicode Implementation Guidelines. | 22:21 | ||
MasterDuke | p6 -e 'class A { method foo { say "hi" } }; A.fob' No such method 'fob' for invocant of type 'A'. Did you mean 'foo'? in block <unit> at -e line 1 | 22:22 | |
any opinions on whether it should just look through :local methods or :all? | 22:23 | ||
chansen_ | samcv: www.unicode.org/notes/tn31/ might provide some ideas on how to compress names beside base 40 | 22:27 | |
MasterDuke | or how big a difference to allow? | ||
samcv | i've already figured that out | ||
using base 40 encoding and also encoding entire words as single characters | 22:28 | ||
can compress the names a great deal since many names are repeated | |||
BenGoldberg | For example, suppose that *all* you wanted was the 'isDigit' property for all unicode characters. Since the result is just a true or false, we can use something like a Bloom Filter, Quotient Filter, a Skip List, etc. | ||
samcv | so can have the most common 39 words encoded in only two bytes | ||
well less | |||
2/3 of 2 bytes | 22:29 | ||
and standard characters as 1/3 of 2 bytes | |||
and most likely all properties will be equally fast. i only have an issue compressing indexes to ~20,000 unique sets of property value combinations | 22:30 | ||
Zoffix snags the "most commits to docs" title from moritz :) | |||
samcv | but multiple trie's probably for the index | ||
would make sense | |||
Zoffix | Kinda bittersweet, because I didn't really write that much docs.. :/ | ||
timotimo | don't worry, we have a long tail of docs contributors | 22:31 | |
samcv | the actual property values themself when deduplicates to 20,000 sets is not actually that large when you use a compressed bitfield | ||
Zoffix | COMPLETION Report / Perl 6 IO TPF Grant: blogs.perl.org/users/zoffix_znet/20...grant.html | 22:33 | |
BenGoldberg | Zoffix++ | 22:34 | |
timotimo | fantastic! | 22:35 | |
chansen_ | samcv: another trick is to use a bitmap for "common" code-points < U+07FF and use a two-level trie for code-points < 0xFFFF and a three level trie for code-points above > 0xFFFF | 22:36 | |
reduces memory considerably | 22:38 | ||
chansen_ anyway it`s past my bedtime, but we can catch up tomorrow | 22:40 | ||
Zoffix | ZofBot: FREEDOM! | 22:41 | |
ZofBot | Zoffix, Within a submethod the "$ | ||
Zoffix leaves to de-IO in EVERSPACE™ | |||
MasterDuke | Zoffix++ | 22:42 | |
BenGoldberg | Zoffix, Your Trait::IO auto-close thingy looks insane. Is there no better solution than 5 nested nqp::ctxcaller's? | 22:51 | |
AlexDaniel | Zoffix++ | 22:58 | |
awesome | |||
Zoffix | BenGoldberg: no idea. I mostly copied the code from another core trait | 23:09 | |
Maybe not; since it looks up a lexical in a scope. If it just were to start going up scopes, trying to find it, it might get a lexical from a wrong scope, if the names clash | 23:11 | ||
BenGoldberg | Also, what if someone uses $ as the filehandle name? | 23:13 | |
Zoffix | No point | 23:18 | |
Zoffix & | |||
AlexDaniel | m: sub foo() { … }; foo | 23:46 | |
camelia | Stub code executed in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 Actually thrown at: in block <unit> at <tmp> line 1 |
||
AlexDaniel | m: sub foo() { !!! }; foo | ||
camelia | Stub code executed in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
AlexDaniel | m: sub foo() { ??? }; foo | 23:47 | |
camelia | Stub code executed in sub foo at <tmp> line 1 |