🦋 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.
00:07 reportable6 left 00:49 [Coke]_ joined 00:52 [Coke] left 00:57 tellable6 joined 00:58 nativecallable6 joined, benchable6 joined 00:59 evalable6 joined 01:07 reportable6 joined 01:18 discord-raku-bot left, discord-raku-bot joined 01:23 discord-raku-bot left, discord-raku-bot joined
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
01:56 shareable6 joined 02:14 discord-raku-bot left, discord-raku-bot joined 02:28 Xliff left 03:01 frost joined 03:03 frost left 03:56 statisfiable6 joined 03:57 bloatable6 joined
Geth rakudo: vrurg++ created pull request #4751:
Fix optimizations of smartmatches over subsets
04:57 linkable6 left, evalable6 left 05:57 bloatable6 left, releasable6 left, notable6 left, coverable6 left, sourceable6 left, benchable6 left, committable6 left, nativecallable6 left, greppable6 left, squashable6 left, bisectable6 left, reportable6 left, tellable6 left, statisfiable6 left, shareable6 left, quotable6 left, unicodable6 left, quotable6 joined 05:58 bloatable6 joined, reportable6 joined, benchable6 joined, tellable6 joined 05:59 evalable6 joined, committable6 joined, bisectable6 joined, squashable6 joined 06:00 unicodable6 joined, statisfiable6 joined 06:07 reportable6 left 06:58 nativecallable6 joined 06:59 linkable6 joined, shareable6 joined, notable6 joined, releasable6 joined, sourceable6 joined 07:00 greppable6 joined 07:45 squashable6 left 07:57 coverable6 joined 08:08 reportable6 joined 08:12 japhb left 08:34 japhb joined 08:38 frost joined 08:42 frost left 08:47 squashable6 joined
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
10:11 ugexe left
Geth nqp: ee3f49af54 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump NQP to get latest MoarVM fixes
10:14 andinus` joined 10:25 ugexe joined
Geth rakudo: b9ffbb973c | (Elizabeth Mattijsen)++ | 2 files
Bump NQP to get latest MoarVM fixes
nqp: 7a93ff1436 | (Stefan Seifert)++ | 3 files
Map bitneg_u op
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.
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
11:41 AlexDaniel joined
MasterDuke but there's not much more i can do since i can't repro it now 11:45
11:45 CIAvash joined 11:47 AlexDaniel left, CIAvash left
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
12:00 AlexDaniel joined 12:02 AlexDaniel left 12:06 reportable6 left 12:08 AlexDaniel joined
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
12:10 CIAvash joined
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)
[Coke]_ "we're more correct so you have to be too" 12:32
12:33 [Coke]_ is now known as [Coke]
[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
12:35 AlexDaniel left
MasterDuke but that might just be a rakudo problem with conditional loading 12:36
12:36 AlexDaniel joined, CIAvash left 13:07 reportable6 joined
[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 CIAvash joined
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
15:43 linkable6 left 15:45 qorg11 left 15:46 linkable6 joined 15:49 qorg11 joined 15:50 linkable6 left 15:52 linkable6 joined
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
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
18:07 reportable6 left 18:10 reportable6 joined
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.
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.
19:42 linkable6 left 20:44 linkable6 joined 20:57 Kaiepi left
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.
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
21:58 vrurg left, vrurg joined 22:03 Kaiepi joined
Geth rakudo: 14bacc2495 | (Stefan Seifert)++ | src/core.c/Buf.pm6
Fix "container does not reference a native integer" in UnsignedBlob.STORE