🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
jdv nine: ok 01:48
i like how the gh wiki preview pane/tab shows the entire page but the actual page is truncated... 01:49
Geth rakudo: vrurg++ created pull request #4751:
Fix optimizations of smartmatches over subsets
04:10
lizmat Files=1351, Tests=117097, 283 wallclock secs (34.43 usr 9.78 sys + 3958.45 cusr 326.80 csys = 4329.46 CPU) 09:32
Geth nqp: ee3f49af54 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump NQP to get latest MoarVM fixes
10:14
Geth rakudo: b9ffbb973c | (Elizabeth Mattijsen)++ | 2 files
Bump NQP to get latest MoarVM fixes
10:27
nqp: 7a93ff1436 | (Stefan Seifert)++ | 3 files
Map bitneg_u op
11:16
rakudo: ffa09ff68e | (Stefan Seifert)++ | 2 files
Add unsigned candidate of +^ (bitwise negation) prefix operator

This fixes +^ returning negative results on unsigned arguments with MSB set.
11:17
nine This fixes Digest's t/digest.t, but the other test file will probably need some more multi candidates of bitwise operators 11:19
At least the problem with the say sub turning unsigneds into signeds should be fixed as well :)
MasterDuke i can't repro the error in Data::ExampleDatasets anymore. since the problem was an invalid free() and it bisected to using the right allocation functions for NativeCall i thought maybe that NativeCall fix wasn't complete, but Data::ExampleDatasets doesn't use NativeCall anywhere (directly) 11:31
so the actual problem was probably somewhere in one of the modules it uses, e.g., HTTP::UserAgent, Text::CSV 11:33
but then again it also uses UInts, and there were some recent fixes around subsets, right?
[Tux] MasterDuke: if Text::CSV has a problem, I'd like to know. But then again, lizmat will probably have fixed it before I understand :) 11:39
MasterDuke [Tux]: does Text::CSV use nativecall? 11:40
lizmat no
MasterDuke then the problem probably isn't there
MasterDuke but there's not much more i can do since i can't repro it now 11:45
MasterDuke oh 11:49
i had been running the tests in a loop successfully, and then all of a sudden...`Please install IO::Socket::SSL in order to fetch https sites   in method get-connection at /home/dan/Source/perl6/install/share/perl6/site/sources/E2CEC167A7022D3B9CB025F2F496EBC87CE06263 (HTTP::UserAgent) line 362 <...>` 11:50
github.com/sergot/http-useragent/c...484bdd8f1b is probably relevant 11:53
nine Would be nice if it printed $! 11:55
MasterDuke turns out i had HTTP::UserAgent v1.1.49 installed, upgrading it now 11:56
nine Seems like the remaining issue in Digest is a bug in the module itself. The essence is: if you want to work with native ints, you have to do it consistently. Code like (* +| +^*) +^ * doesn't cut it. Has to be explicit: -> uint32 $x, uint32 $y, uint32 $z --> uint32 { (my uint32 $ = ($x +| +^$y)) +^ $z } 12:10
nine What I don't understand is why this worked previously 12:12
Maybe because we didn't even try to put those resulting Ints into unsigned natives, but instead turned them implicitly into signed natives and the converted those to uints 12:14
Geth nqp: 71418d37c1 | Coke++ | t/docs/opcodes.t
add _u variant

  (for future-proofing, doesn't change test output)
12:29
[Coke]_ "we're more correct so you have to be too" 12:32
[Coke] (regarding nine's Digest comment) 12:33
MasterDuke got that `Please install IO::Socket::SSL in order to fetch https sites` again, even after upgrading HTTP::UserAgent to 1.1.51 12:34
MasterDuke but that might just be a rakudo problem with conditional loading 12:36
[Tux] Rakudo v2021.12-173-gffa09ff68 (v6.d) on MoarVM 2021.12-107-g3ff5b1113
csv-ip5xs0.804 - 0.875
csv-ip5xs-205.297 - 5.409
csv-parser3.744 - 4.094
csv-test-xs-200.406 - 0.408
test6.468 - 6.851
test-t1.614 - 1.618
test-t --race0.923 - 0.961
test-t-2023.201 - 24.351
test-t-20 --race7.148 - 7.164
13:32
lizmat meh :-) 13:32
MasterDuke m: my $a; $a = try require ::("Test") for ^1; say $a    # LTA error 15:08
camelia ===SORRY!===
lang-call cannot invoke object of type 'VMNull' belonging to no language
MasterDuke gist.github.com/Whateverable/40071...2cda7d5e54 never really had a great error 15:09
ugexe m: require ::("Test") for ^1 16:07
camelia ===SORRY!===
lang-call cannot invoke object of type 'VMNull' belonging to no language
ugexe and of course
m: (require ::("Test")) for ^1
camelia ( no output )
ugexe so seems confused about that
m: require ::("Foo") bar; 16:18
camelia ===SORRY!===
lang-call cannot invoke object of type 'VMNull' belonging to no language
ugexe m: require a b;
camelia ===SORRY!===
lang-call cannot invoke object of type 'VMNull' belonging to no language
nine Oh the horrors of the BUILDPLAN :( It's mapping directly from primspec to opcode and back but the numbers needed for primspec 10 are already taken for something else 16:23
Geth nqp: 20d8e148a1 | (Stefan Seifert)++ | 4 files
Map/implement (bind|get)attrs?_u ops
16:35
nqp: c743974ec3 | (Stefan Seifert)++ | 4 files
Map getattrref_u op
rakudo: 118a0c3d33 | (Stefan Seifert)++ | 3 files
Fix "Invalid ....BUILDALL plan: 24" error

The BUILDPLAN logic didn't cope too well with primspec 10.
rakudo: 753c173eac | (Stefan Seifert)++ | src/core.c/Attribute.pm6
Fix Attribute treating all native integers as signed
nine I'm of a mind to completely renumber the BUILDPLAN thing. But it's a little intimidating 16:40
japhb nine: Is this a good time to test rebuilding my module stack, or are you still in the middle of your commit stream? 16:47
nine If it's not a huge effort it may be worth a try 16:54
japhb OK, new run started 17:05
lizmat nine: ++ on renumbering BUILDPLAN 17:10
but otoh, perhaps we should wait for RakuAST
so that we can actually more easily generate code for the BUILDPLAN 17:11
nine Too late. I've gone with multiplying everyting by 100, except for those entries where we add the primspec to a base
So we get 1501 die if a required int attribute is 0, 1502 die if a required num attribute is 0e0, ... 17:12
MasterDuke has flashbacks to numbering lines in qbasic
lizmat ok :-) I can live with that :-)
japhb nine: Digest failed again, but this time in t/ripemd.t (I think you already expected this based on your comments from a few hours ago) 17:23
nine Yes, that needs the fix in the module
Invalid Perl6::Metamodel::v6e::GrammarHOW.BUILDALL plan: 11
Where would that 11 be generated? 17:24
Oh....it's in NQP 17:29
Geth roast: 361072eeb7 | (Elizabeth Mattijsen)++ | S12-attributes/native.t
UnTODO a now passing test
Geth nqp: 56aded28e3 | (Stefan Seifert)++ | 2 files
Re-number BUILDPLAN to accomodate uint support

Rakudo maps from primspec to BUILDPLAN opcode and back, but the numbers required for primspec 10 (uint) are already taken. So re-number to make space.
18:32
rakudo: a38bebecf8 | (Stefan Seifert)++ | 4 files
Properly support uints in BUILDPLANs

Re-number BUILDPLAN to accomodate uint support. Rakudo maps from primspec to BUILDPLAN opcode and back, but the numbers required for primspec 10 (uint) were already taken. So re-number to make space and support uint where appropriate.
Geth rakudo: b9d8aa4999 | (Vadim Belman)++ | src/Perl6/Metamodel/Nominalizable.nqp
Add wrappee-lookup method to Nominalizable

For introspection reasons. The current use for the method is to make sure that a nominalizable type has a subset component in it when optimizing a smartmatch.
21:40
rakudo: d6fb191921 | (Vadim Belman)++ | 2 files
Fix handling of subsets

A subset `where` block can be run-time dependent and therefore can't be reduced to a value at compile-time. But it's still possible to shortcut by either using `nqp::istype` for static optimizations, or by directly invoking `accepts_type` method of subset's HOW via the dispatcher.
rakudo: a1e6bf7786 | (Vadim Belman)++ (committed using GitHub Web editor) | 3 files
Merge pull request #4751 from vrurg/rakudo-4748

Fix optimizations of smartmatches over subsets
Geth rakudo: 14bacc2495 | (Stefan Seifert)++ | src/core.c/Buf.pm6
Fix "container does not reference a native integer" in UnsignedBlob.STORE
22:33