02:38 librasteve_ left 08:57 sena_kun joined
timo has anyone used Grammar::Debugger or Grammar::Tracer recently? 10:33
lizmat about a year ago, when I started the =rakudoc handling, why ? 10:47
did it bitrot?
notable6: weekly 10:48
notable6 lizmat, 1 note: 2024-12-10T12:59:58Z <antononcube>: rakuforprediction.wordpress.com/20...aku-set-3/
lizmat notable6: weekly reset
notable6 lizmat, Moved existing notes to “weekly_2024-12-23T10:48:43Z”
timo i'm not entirely sure. i seemed to recall it didn't work when i last tried it? two months ago or so maybe 10:49
lizmat It's a Raku Community module now 10:52
so go for it :-)
I can give you a zef upload bit if necessary 10:54
timo i kind of wish we had a common standard way for module authors to put benchmarks in their distros, maybe in xt/, for the purposes of measuring long-time changes in rakudo and moarvm performance 11:04
so we could do something similar to a blin run, but for benchmarks found in ecosystem modules 11:05
lizmat bt/ ? 11:06
timo .o( backtraces ) 11:07
lizmat I was thinking "benchmark tests" 11:12
timo what i'd like to see at the very least is standardised ways to handle setup and teardown, and a way to specify size of the "workload" to check how scaling behaves, and maybe a rough guideline to create essentially an estimation for what workload size corresponds to what run time. also it'd be important to consider multithreading and multi-processing in this, as well as necessary external
components. say, a postgres database has to be running in order to sensibly benchmark a postgres client library, i imagine
and we probably want to measure some performance counters instead of wallclock time, since other activity on the system that runs the benchmark can easily make timing data become worthless :) 11:31
lizmat in that respect I would love to see cpu time / thread metrics 11:33
timo most performance counters can be impacted by other stuff on the system; i think if there's more load, the program may be context-switched away more often, CPU caches evicted causing an increase in cache misses, stuff like that :| 11:35
i guess if we have to ensure whatever the "benchmark runner" is doesn't get distracted :) 11:36
then we can also use cpu time for measurement
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2024/12/23/2024-...-the-dots/ 11:57
patrickb I've used Grammar::Tracer recently when creating Rainbow. worked like a charm. 13:06
timo oh, ok that's good! 13:07
lizmat ab5tract: I wonder whether we should allow "is revision-gated" as well, indicating the lowest language level being supported 16:04
ab5tract That’s how I originally implemented it but nine didn’t like that 16:08
lizmat ah, ok :-)
timo it was denined 18:07
lizmat aaw! 18:31
timo lizmat: do you know how to trigger the "exception doesn't have a serialization function" error?
lizmat I do not
Ah, I do 18:34
timo i've been trying a few things with no luck
lizmat put this in a module, and use that module: 18:35
my constant $a = do { my $e; CATCH { $e := $_; .resume } die; $e }
my constant $a = do { my $e; CATCH { $e := $_; .resume }; die; $e }
timo my code also dies when the exception has no message so i'd want to put `die "argh!";` 18:40
(but i'm also fixing that problem)
lizmat golf: my constant $a = do { try die; $! } 18:41
timo hm, i get "no message" even with `die "blergh!"` i wonder why that is 18:45
ok, cool. give my moar branch a shot, will you? :) 19:00
Geth rakudo/ugexe/deprecate-multi-file-operations: 1d2a5670d6 | (Nick Logan)++ | 3 files
Deprecate IO subs that operate on multiple paths in 6.e

While convienient, being able to pass multiple paths to e.g. &rmdir is problematic because there isn't a blessed way to handle what to do when an exception or failure occurs, i.e. should it try to rmdir every entry even if some things fail, or stop on the first failure?
... (10 more lines)
19:21
lizmat bisectable6: old=2023.10 dd <42>.narrow 19:24
bisectable6 lizmat, Bisecting by output (old=2023.10 new=bcd7bea) because on both starting points the exit code is 0
19:28 bisectable6 left
lizmat awww I killed bisectable6 ? 19:29
ugexe did we intentionally stop running a spectest CI? 19:31
lizmat not to my knowledge?
ugexe or did we just forget to re-add it during the CI reworking 19:32
lizmat patrickb might know
19:32 bisectable6 joined
ugexe maybe it is just named something else now as well 19:36
patrickb I seem to recall having seen a spectest in the reworked CI. I'm pretty sure it's not been left out intentionally. 19:55
I think it's behind Lin_Spesh_Nodelay 19:58
timo wow, a spec test run with nodelay? i guess that'll be good to tickle out specializer bugs? 20:03
Geth rakudo/ugexe/readd-original-protect-block: 4919b64780 | (Nick Logan)++ | src/core.c/CompUnit/PrecompilationRepository.rakumod
Prevent concurrent hash access

Currently two threads can read null from the $resolved hash and both end up trying to resolve the same thing. This restores the original lock protect scope from before 95fb926 to ensure read and write don't have a race condition.
20:45
rakudo/ugexe/readd-original-protect-block: b6242f4bf4 | (Nick Logan)++ | src/core.c/CompUnit/PrecompilationRepository.rakumod
Give each hash their own lock

There should be no need for the loading mechanism to always block the resolve mechanism. This gives the $resolved hash its own lock instead of using the lock for the $loaded hash.
rakudo/ugexe/disable-default-curis: f8a78ce7e7 | (Nick Logan)++ | src/core.c/CompUnit/RepositoryRegistry.rakumod
Allow default CURIs to be disabled

Previously there was no convenient way to disable the e.g. site, vendor, and core repositories. But when developing with application specific module install locations one might not want for modules to be used outside of that location. This add a new environment variables, RAKU_DISABLE_DEFAULT_CURIS, which can be set to anything to prevent the default repositories from being added to the repo chain itself. Note that it does still register those repositories with the registry.
20:48
rakudo/main: 4919b64780 | (Nick Logan)++ | src/core.c/CompUnit/PrecompilationRepository.rakumod
Prevent concurrent hash access

Currently two threads can read null from the $resolved hash and both end up trying to resolve the same thing. This restores the original lock protect scope from before 95fb926 to ensure read and write don't have a race condition.
21:08
rakudo/main: b6242f4bf4 | (Nick Logan)++ | src/core.c/CompUnit/PrecompilationRepository.rakumod
Give each hash their own lock

There should be no need for the loading mechanism to always block the resolve mechanism. This gives the $resolved hash its own lock instead of using the lock for the $loaded hash.
rakudo/main: f58bed9f61 | (Nick Logan)++ (committed using GitHub Web editor) | src/core.c/CompUnit/PrecompilationRepository.rakumod
Merge pull request #5299 from rakudo/ugexe/readd-original-protect-block

Fix potential concurrent hash access race condition
23:13 sena_kun left