3 Dec 2021
timo not sure how it broke tbh 22:35
gfldex No biggy. Im more then happy to help make "production ready" work for bigger values of "production". 22:42
releasable6 Next release in ≈19 hours. 4 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00
4 Dec 2021
Geth nqp: 315cc79cd8 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump NQP to get the latest MoarVM fixes by nine++
11:05
rakudo: d1bda7b56f | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP for various MoarVM and NQP fixes
11:21
rakudo/cpucores-once: 65ddcb7c3e | (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.
11:53
lizmat (a rebase)
Geth rakudo/cpucores-once: 2113eae9f0 | (Elizabeth Mattijsen)++ | 2 files
Revert behaviour of Kernel.cpu-cores

It will now always call nqp::cpucores for those cases where the number of CPU's can actually change.
The internal method Kernel.cpu-cores-but-one is now lazy, and will only call nqp::cpucores once in the lifetime of a process.
rakudo/cpucores-once: 27f8cc5788 | (Elizabeth Mattijsen)++ | 2 files
Add Kernel.cpu-cores(:cached) candidate

  - Kernel.cpu-cores now *always* calls nqp::cpucores and sets cache
  - Kernel.cpu-cores(:cached) returns cached value or makes a cached value
  - Kernel.cpu-cores-but-one always uses the cached value
  - Thread.BUILD now makes sure that Kernel.cpu-cpucores(:cached) is called
   **before** starting an OS thread
12:12
rakudo/cpucores-once: 7c10225bba | (Elizabeth Mattijsen)++ | 2 files
Kernel.cpu-cores-but-one is now the only one caching

This is also the one called by Thread.BUILD now, and the :cached candidate of Kernel.cpu-cores is gone and Kernel.cpu-cores is now back to its original state.
13:25
ugexe regarding nqp::cpucores performance -- github.com/libuv/libuv/pull/2914#p...-451430065 suggest libuv could itself be improved 13:46
lizmat well, until then... we have a fix now 13:55
Geth rakudo/cpucores-once: 9cb2d8b5f1 | (Elizabeth Mattijsen)++ | src/core.c/Iterable.pm6
Fix erroneous but harmless use of ; vs ,
14:10
lizmat ugexe++ for the spot
ugexe i like trailing commas because adding new things afterwards doesn't take over the blame for the original line 14:19
git blame rather
lizmat yeah, true that 14:33
pie_flavor is `eqv` the operator to check two bools for equality? 18:24
wrong channel sorry 19:25
5 Dec 2021
japhb I am seeing this error a lot recently: P6opaque: no such attribute '$!storage' on type Map in a Hash when trying to bind a value 06:45
The failing line is the declaration of a method. The weird thing is, I can usually make it go away by adding a throwaway capture ('|c') to the end of the method params. 06:47
Even weirder, it seems to care about the *contents* of the method, even though the workaround affects only the params. 06:48
For example, using a callsame inside a method of a derived class can trigger the error. *Either* switching the callsame to `self.ParentClass::method` or adding the '|c' to the end of the params makes it go away. 06:49
(All this is from debugging weird behavior in a big mess of class and role definitions, so it's not yet golfed.)
Annoyingly, simple attempts at golfing like this don't trigger the error: 06:52
m: class Foo { method bar() { say "Foo::bar" } }; class Quux is Foo { method bar() { callsame; say "Quux::bar" } }; Quux.new.bar;
camelia Foo::bar
Quux::bar
japhb I even triggered the error in one annoying case by moving some methods from a parent class to an (already-existing) child class nearly unchanged (only module namespace fixes, but otherwise character-identical). 06:54
I've seen the same errors with methods that have empty param lists and methods with rather complex param lists (e.g. both kinds of slurpy, along with multiple other params), so no easy explanation there. 06:56
*both kinds of slurpy --> both positional and associative slurpies
[Tux] Rakudo v2021.10-134-gd1bda7b56 (v6.d) on MoarVM 2021.10-124-g6fd623291
csv-ip5xs0.855 - 0.893
csv-ip5xs-205.272 - 5.623
csv-parser4.260 - 4.323
csv-test-xs-200.408 - 0.413
test6.978 - 7.045
test-t1.647 - 1.657
test-t --race0.957 - 0.972
test-t-2023.795 - 23.896
test-t-20 --race7.310 - 7.723
07:56
sena_kun hi folks 18:14
I'm writing a post about latest Comma features for the advent calendar, the bit about public ones is done. Should I write some about paid ones or will it be just ads? 18:15
[Coke] fwiw, it's fine with me, as long as it's clearly marked as part of the paid version. 18:17
but IANARSCM
lizmat sena_kun: it's about features, isn't it? then it's only indirectly advertisement. And only advertisement in the best way, I'd say 22:09
MasterDuke japhb: nine merged some fixes to moarvm yesterday and lizmat bumped nqp+rakudo, are you getting the errors after those? 22:11