nine m: my $supply = class :: is Supply { method new() { self.CREATE }; method tap($a) { note "tapping, this is gonna take a while"; await Promise.in(2); note "tapped!" } }.new; react { whenever $supply { }; whenever Promise.in(3) { say "3 seconds gone"; }; say "all set up!" } 10:01
camelia tapping, this is gonna take a while
all set up!
3 seconds gone
tapped!
nine This is why the react/whenever version of the signal test is still racy. The await in signal() does not keep us from running the rest of the supply block.
nine And that's because react/whenever specifically installs an AWAITER so an await in a tap handler does not block the react setup 10:05
nine github.com/Raku/roast/commit/099d1...d74f768fee "Fix race condition in react/whenever based signal stress test" On MoarVM signal() uses await to wait for the signal handler to be installed (which happens on the event loop thread). The react/whenever setup code however installs its own $*AWAITER, so an await in one whenever's tap handler does not block the rest of the setup 10:38
code. Instead, those handlers will be processed further at the end of the setup. The racy test on the other hand relied on the whenever handlers to be installed in sequence as part of the setup block messaged the parent process readiness for receiving signals.
Fix by sending that message from a whenever handler itself so we can be absolutely sure that the setup is finished.
sena_kun So the new website can handle 97.95% of the old URLs, not bad. Need to get it to 100% though. 11:03
[Tux] lizmat, I just pushed a new feature in Text::CSV, but I do not understand why line 38 (when uncommented) fails in t/47_comment.t 14:31
care to take a look?
nine Ha! investigating a rare deadlock I came across Semaphore which lets me solve the react/whenever problem with signal() so that the original test code works unmodified :) 15:18
nwc10 do we have any sort of repository of benchmarks? 17:44
currently I'm curious about integer maths
japhb nwc10: github.com/japhb/perl6-bench and a few others. 18:12
MasterDuke i've proposed getting that (and/or others) set up in our CI as a GSoC project, but there haven't been any takers (of course we also haven't been selected for GSoC the last year or two) 18:18
maybe i'll getting around to it myself eventually
nwc10: is this for your getting rid of the intcache experiment? 18:19
nwc10 it's the replacement for that experiment 18:22
which I just pushed to MoarVM as fastcreate_from_intcache 18:23
but I can't work out how to benchmark it, to see if it really helps 18:24
MasterDuke japhb: have you done any work to update perl6-bench recently? i see a bunch of diffs in my local checkout related to running more recent stuff (e.g., removing niecza, looking for tags starting with 2018 not 2015) 21:27
japhb MasterDuke: I have not. A few people have merge rights, I believe, so it shouldn't be completely gated on my time, but if there's demand I might be able to put some cycles towards it. 23:16