Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
00:08 reportable6 left 00:09 reportable6 joined 01:50 frost joined 02:27 frost left 02:30 frost joined 04:02 sourceable6 left, releasable6 left, bisectable6 left, greppable6 left, reportable6 left, benchable6 left, notable6 left, bloatable6 left, coverable6 left, unicodable6 left, tellable6 left, quotable6 left, committable6 left, linkable6 left, nativecallable6 left, evalable6 left, shareable6 left, statisfiable6 left, shareable6 joined, coverable6 joined, bisectable6 joined, tellable6 joined, committable6 joined 04:03 sourceable6 joined, bloatable6 joined, evalable6 joined, unicodable6 joined, statisfiable6 joined 04:04 greppable6 joined, benchable6 joined, linkable6 joined, quotable6 joined, releasable6 joined, nativecallable6 joined 04:05 reportable6 joined, notable6 joined 06:03 evalable6 left, linkable6 left, linkable6 joined 06:04 evalable6 joined 06:08 reportable6 left 06:10 reportable6 joined
Geth MoarVM: JJ++ created pull request #1709:
LTA error message: One usually connects *to* things
06:34
MoarVM: 79bb406d79 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | src/io/syncsocket.c
One usually connects *to* things

As seen here stackoverflow.com/questions/726398...socketinet
07:02
MoarVM: ce1789ac90 | niner++ (committed using GitHub Web editor) | src/io/syncsocket.c
Merge pull request #1709 from JJ/patch-2

LTA error message: One usually connects *to* things
07:10 evalable6 left, linkable6 left, linkable6 joined 07:11 evalable6 joined 07:36 [Coke]_ joined 07:37 [Coke] left 09:39 committable6 left, nativecallable6 left, quotable6 left, shareable6 left, greppable6 left, coverable6 left, unicodable6 left, evalable6 left, sourceable6 left, reportable6 left, statisfiable6 left, tellable6 left, notable6 left, bloatable6 left, benchable6 left, linkable6 left, bisectable6 left, releasable6 left, coverable6 joined, nativecallable6 joined 09:40 reportable6 joined, committable6 joined, tellable6 joined, notable6 joined, shareable6 joined, greppable6 joined, statisfiable6 joined, evalable6 joined, benchable6 joined 09:41 releasable6 joined, quotable6 joined, linkable6 joined, bisectable6 joined 09:42 bloatable6 joined, sourceable6 joined, unicodable6 joined 10:42 linkable6 left, evalable6 left 10:43 evalable6 joined 10:44 linkable6 joined 11:44 linkable6 left, evalable6 left, notable6 left 11:45 notable6 joined, evalable6 joined, linkable6 joined 12:06 reportable6 left, [Coke]_ is now known as [Coke] 12:08 reportable6 joined
nine Aaaah...that crazy "outer frame does not match expected static frame" message seems to have come from signatures not getting their $!code attribute set, so the runtime blindly tried to execute a Scalar object 12:32
And 464 spectest files passing now 12:37
lizmat that would count as an aha erlebnis indeed
jnthn Urgh. Just been investigating a leak in XLSX::Spreadsheet, which golfed to a leak in LibXML, which golfed to a small leaking example whose leakiness depended on the presence of `default { ... }` around something in the reproduction 12:53
Which in turn pointed to something going on in Rakudo/MoarVM, and it turns out that sometimes we end up with something perpetually in tc->last_handler_result 12:54
Which means we never run any DESTROY submethods
MVM_SPESH_DISABLE=1 raku -e 'class C { submethod DESTROY { note "destroyed" } }; loop { my $x = C.new; given 1 { default {} } }' 13:03
If one removes the `default` the DESTROY submethods run. Leave it in and they don't 13:04
lizmat yuck, but great detective work! 13:05
jnthn I can see two ways forward, I think 13:07
1) Rework the way we invoke finalizers so that we can do it even when tc->last_handler_result is set by saving it and then restoring it. 2) Try to figure out if we can clear it. 13:08
I suspect 1 is more sure-fire
And needs writing code rather than more investigation
Got a patch for 1 that fixes the leak, testing/spectesting now 13:18
13:23 Kaiepi joined
[Coke] I am not sure I have the perserverance for that sort of detective work any more (if ever I did) jnthn++ 13:37
nine Investigating memory leaks is no fun....
[Coke] I remember having to dig into some stuff in java, but it was always "how to work around it", not "fix the vm". :)
Geth MoarVM/finalize-even-with-handler-result: 3796890b93 | (Jonathan Worthington)++ | src/gc/finalize.c
Run finalizers even with tc->last_handler_result

Finalizers can run at pretty much any return point, and it is possible that they could use exception handling that thus end up replacing the content of `tc->last_handler_result`, affecting the code running on the thread before it was asked to run finalizers. The initial solution for this was to not run finalizers if `tc->last_handler_result` was set, on ... (11 more lines)
13:47
MoarVM: jnthn++ created pull request #1710:
Run finalizers even with tc->last_handler_result
jnthn releasable6: status 13:56
releasable6 jnthn, Next release in ≈43 days and ≈5 hours. There are no known blockers. 0 out of 21 commits logged (⚠ 89 warnings)
jnthn, Details: gist.github.com/70449e74610752e7b8...31baa06688
nine jnthn: that finalizer fix seems to have fixed a memory leak in Cro as well! 14:21
14:24 frost left
vrurg_ Do I get it right that LEAVE would not mangle with return values anymore? 14:36
14:38 vrurg_ is now known as vrurg
jnthn vrurg: I think that's a separate issue 14:51
nine Darn....as soon as $resolver is referenced by the compiler stub, compilation fails with Missing serialize REPR function for REPR MVMContext (BOOTContext) 14:54
(but only when precompiling)
Geth MoarVM: 3796890b93 | (Jonathan Worthington)++ | src/gc/finalize.c
Run finalizers even with tc->last_handler_result

Finalizers can run at pretty much any return point, and it is possible that they could use exception handling that thus end up replacing the content of `tc->last_handler_result`, affecting the code running on the thread before it was asked to run finalizers. The initial solution for this was to not run finalizers if `tc->last_handler_result` was set, on ... (11 more lines)
15:00
MoarVM: c315523aba | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/gc/finalize.c
Merge pull request #1710 from MoarVM/finalize-even-with-handler-result

Run finalizers even with tc->last_handler_result
15:01
15:24 Altai-man left 15:25 sena_kun joined 16:28 sena_kun left 16:30 sena_kun joined 16:55 Kaiepi left 17:24 Kaiepi joined 18:07 reportable6 left 18:09 reportable6 joined 19:09 evalable6 left, linkable6 left 19:10 evalable6 joined 19:11 linkable6 joined 19:20 MasterDuke left 19:34 MasterDuke joined
jnthn nine: Was pondering how it could help Cro, and realized it's perhaps TLS 20:46
20:47 moon-child left 21:58 evalable6 left, linkable6 left 22:00 evalable6 joined 22:01 linkable6 joined 23:07 evalable6 left, linkable6 left 23:10 evalable6 joined, linkable6 joined