🦋 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: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
MasterDuke my rakudo build (at 2024.01-32-g5c9156e26) is now dying because of the OOM killer when compiling CORE.c 03:01
tellable6 2024-02-12T09:12:56Z #raku-dev <nine> MasterDuke: pushed a fix for unsigned num
MasterDuke i even restarted because i thought it might have been because of a recent kernel update, but still happens after the restart. i can see the rss quickly climbing and i only have 32gb on this machine 03:03
japhb MasterDuke: If you just build the previous release (meaning 2024.01) does it do the same? 03:16
MasterDuke well, i assume it's a commit from the past ~30h, i was able to build yesterday afternoon 03:17
build with moarvm at HEAD and nqp at 94ee052770e28adc03e217b66210c8e5956c448d and rakudo at e93208ce71c3c51ea3b0c2bf9414d2000139f14c (i.e., latest moarvm, but right before the most recent nqp bump) 03:22
linkable6 (2024-02-12) github.com/Raku/nqp/commit/94ee052770 Bump MoarVM for the latest tweaks/optimizations
(2024-02-11) github.com/rakudo/rakudo/commit/e93208ce71 Remove read lock on MRO
japhb MasterDuke: I was just talking about ruling out something on your system *other* than Rakudo/NQP/MoarVM changes, and giving a solid starting point for bisection. 03:24
Habit, sorry. :-) 03:25
MasterDuke i did suspect the kernel-related stuff, but now i think it's the nqp/rakudo changes 03:26
3291cb41ce862163cb186b00900a864cf5766c7a looks like a decent possibility 03:28
linkable6 (2024-02-12) github.com/Raku/nqp/commit/3291cb41ce Streamline NQPClassHOW
MasterDuke nqp doesn't seem to use a lot of ram to build 03:31
unfortunately i can't see what's happening with heaptrack 04:08
backing up to the working build, we coerce a lot of largish ints to strs when compiling CORE.c (e.g.,  coerced 6445646954776 to a str 3314 times) 04:17
and heaptrack reports a max rss of 2g 04:18
MasterDuke we also coerce 64 to a str 42k times. maybe we should increase MVM_INT_TO_STR_CACHE_SIZE from 64 to 65 04:21
i'm guessing those large numbers are pointer addresses for WHICHes, but i don't know why we coerce the same ones multiple times 04:25
anyway, off to sleep & 04:28
lizmat MasterDuke: that's probably my work on NQP streamlining NQPClassHOW :-( 10:52
tellable6 lizmat, I'll pass your message to MasterDuke
lizmat MasterDuke: sadly, the problem didn't expose itself in NQP itself :-( 10:53
tellable6 lizmat, I'll pass your message to MasterDuke
lizmat MasterDuke: am working on it
tellable6 lizmat, I'll pass your message to MasterDuke
lizmat MasterDuke: fwiw, 6445646954776 appears to be an objectid this is used as a key in the typecache, and thus needs stringification 12:14
tellable6 lizmat, I'll pass your message to MasterDuke
lizmat perhaps the typecache could be a list 12:15
MasterDuke: looks like the issue in rakudo is caused by some circularity in setting up the type cache: a class having roles having classes that have the same roles or some such 12:43
tellable6 lizmat, I'll pass your message to MasterDuke
Geth nqp/main: 23194f5714 | (Elizabeth Mattijsen)++ | src/how/NQPClassHOW.nqp
Only add unique types to the typecache

One of the changes in 3291cb41ce862163cb18 was that recursion on roles in the typecache was unlimited, rather than only one level deep. This tripped something in the Rakudo build causing it to infiniloop on the build, presumably because of a type having a role having that same type, etc. etc. ... (5 more lines)
13:03
rakudo/main: 93f0d69675 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP to get latest NQPClassHOW tweaks
13:25
lizmat MasterDuke: all should be well again now
tellable6 lizmat, I'll pass your message to MasterDuke
Geth nqp/main: 57311710fa | (Elizabeth Mattijsen)++ | src/how/NQPClassHOW.nqp
Add support for TWEAK method

By popular demand, should be helpful in the Rakudo metamodel and bootstrap
13:35
Geth rakudo/main: febe8ee862 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP to get support for TWEAK in NQP

For use in the metamodel and possibly bootstrap
13:46
Geth nqp/main: 6f65509180 | (Elizabeth Mattijsen)++ | src/how/NQPAttribute.nqp
Streamline NQPAttribute

  - mostly cosmetic
  - remove unnecessary tests for !nqpisnull(foo) && foo: if foo is
   trueish, it cannot be nqp::isnull, so the first part of the check
   doesn't make sense, so remove it
  - add some comments
14:04
Geth nqp/main: bd14e3d0df | (Elizabeth Mattijsen)++ | 2 files
Generalize handling of TWEAK

Adds a $!tweaks attribute to NQPClassHOW: a list with codeblocks to be executed at the end of the local BUILDPLAN. This should allow TWEAK blocks from roles to be added to a class, and thus provide a consistent means to initialize attributes of a role that is consumed by a class.
Also add some basic testing of BUILD / TWEAK: they did not appear to be tested as such yet.
19:05