🦋 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.
Geth rakudo: afc564293d | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/ThreadPoolScheduler.pm6
Make the max number of threads depend on number of cores (#4652)

Previously, this was set to 64. Clearly, should be dependent on actual number of cores available. For now, the maximum is set to 8 times the number of cores, based on the previous value and the more common 4-8 core hardware that was available when that maximum was originally set, but make sure that we always have at least 64 threads as before.
08:13
releasable6 Next release in ≈3 days and ≈7 hours. 3 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 11:00
Geth rakudo/cpucores-once: 4ffafb9bc6 | (Elizabeth Mattijsen)++ | 4 files
Make sure that nqp::cpucores is only called once ever

It appears that nqp::cpucores can potentially be a heavy operation
  (even like needing to fork() apparently on MacOS Monterey), which
may well have some adverse effects.
Therefore make sure we only call nqp::cpucores only once at startup. Also introduce an implementation-detail Kernel.cpu-cores-but-one method that will be one less than the number of CPU cores, with a minimum of 1.
13:17
rakudo: lizmat++ created pull request #4659:
Make sure that nqp::cpucores is only called once ever
13:18
qorg11 Does raku modules have to be written in raku themselves to get into rakudo? Like 100% of the module have to be written in raku? I'm writing a module which uses some NativeCall functions 13:22
patrickb qorg11: Do you mean uploaded to the ecosystem? If so, then there is no requirement for modules to be written in pure Raku. 13:25
There are many modules out there bringing their own C library with them. 13:26
qorg11 patrickb: I told a guy that i've been writing a lib to work with UNIX sockets (AF_UNIX), which calls the socket() syscall from C (and then it calls read() and write() from C as well)
PF_UNIX 13:27
and that guy told me that maybe i should try to put it in rakudo
patrickb It's a question of tradeoffs. One can call external libraries written in C directly using NativeCall. In some situations it can be helpful to utilise a custom C library (e.g. for performance reasons or because third party headers make heavy use of macros). Doing so does bring the disadvantage, that users are then required to have a C compiler installed. 13:53
timo you can write a library that does that in pure raku and call those syscalls (via the libc, probably) with NativeCall 14:10
Geth DBIish/rbt.sqlite_rows: 9bc9c9d5df | (Rod Taylor)++ | 3 files
Warn on rows call in sqlite

Track situations where the value returned may be inaccurate and warn on those usages.
14:14
Geth DBIish/rbt.sqlite_rows: d0c43afc98 | (Rod Taylor)++ | 3 files
Warn on rows call in sqlite

Track situations where the value returned may be inaccurate and warn on those usages.
14:17
DBIish/rbt.sqlite_rows: 0ad67a0cf8 | (Rod Taylor)++ | 3 files
Warn on rows call in sqlite

Track situations where the value returned may be inaccurate and warn on those usages.
14:20
qorg11 timo: Yeah, maybe that would be a better idea 14:25
Geth DBIish: 0ad67a0cf8 | (Rod Taylor)++ | 3 files
Warn on rows call in sqlite

Track situations where the value returned may be inaccurate and warn on those usages.
14:51
gfldex m: my &flatrotor = &flat ∘ &rotor; 19:12
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
rotor used at line 1. Did you mean 'goto', 'roots'?
gfldex if there a reason why we got sub flat but not sub rotor?
lizmat difficulty finding out what to rotor ? 19:19
I'm not sure anymore
Geth DBIish/rbt.dashy-variable-names: ca767febd6 | (Rod Taylor)++ | 6 files
Use $dash-variable style instead of $under_score
20:24
gfldex m: sub rotor(|c) { c[0].rotor(|c[1..∞]) }; my &flatrotor = &flat ∘ &rotor; say +<199 200 208 210 200 207 240 269 260 263>.&flatrotor(2 => -1).grep(&[≤]); 21:03
camelia 7
gfldex It rotates just fine on that list. :)
lizmat gfldex: then make a PR :-) 21:05
Geth DBIish: ca767febd6 | (Rod Taylor)++ | 6 files
Use $dash-variable style instead of $under_score
21:35
Geth nqp: af71e00979 | (Vadim Belman)++ | src/QAST/SpecialArg.nqp
Fix SpecialArg unintentionally modifying class' MRO

Happened with `nqp::shift` on uncloned binding to `@!mro` returned by
  `self.HOW.parents(self)` call.
22:29
lizmat vrurg 22:51
I guess that warrants an NQP bump >?
vrurg No. It's a minor issue in a rarely used area. 22:52
Only causes problems if QAST dump method is used.
lizmat I see ok
vrurg Besides, the fixed method also doesn't handle values more complex than natives stored in $!named. So, it's one more fix is upcoming. 22:53
Geth nqp: a14409fb39 | (Vadim Belman)++ | src/QAST/SpecialArg.nqp
Don't die on non-primitive objects in $!named

Namely, add direct support for lists. Any other unknown type will be reported by its type named and object ID.
23:15