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. |
|||
08:12
sena_kun joined
08:46
sena_kun left
|
|||
lizmat | hmmmm in my work on ParaSeq, I'm seeing occasional test failures that can only explain by nqp::eqaddr() returning something other than 0 or 1 | 14:03 | |
nvm, it's probably something else | 14:05 | ||
17:51
sena_kun joined
|
|||
Geth | MoarVM/main: 51ca012d20 | (Patrick Böker)++ | src/core/frame.c Reapply "Don't lose return value with LEAVE phasers" This reverts commit d67da80f392eff0c262491c05520bbc3cdc93eb9. 2024.05 has happened. So give this another try. |
20:48 | |
patrickb | Any reason not to also merge Idea: Let's distinguish `CONTROL` exceptions from `CATCH` exceptions. | 20:49 | |
That's an already well established distinction. | |||
Given the word "conflict" means: An exception thrown within a phaser | |||
during an unwind (a `LEAVE`) wants to unwind out of that phasers | |||
frame. | |||
Then I propose the following rules: | |||
- A `CATCH` exception is in progress, a `CONTROL` exception conflicts. | |||
-> We ignore the `CONTROL` exception and continue with the `CATCH` | |||
exceptions unwind. | 20:50 | ||
- A `CONTROL` exception is in progress, a `CONTROL` exception | |||
conflicts. (That's what has been discussed at length in this issue.) | |||
-> We compare the target frames of the two exception handlers. The one | |||
unwinding more of the stack wins. If it's a tie, the later one (the | |||
one originating from within the phaser) wins. (This behavior is | |||
implemented in github.com/MoarVM/MoarVM/pull/1812.) | |||
- A `CONTROL` or `CATCH` exception is in progress, a `CATCH` exception | |||
conflicts. -> We add the exception to a list (located in the frame the | |||
current unwind targets). After the unwind finishes and before we run | |||
the handler, we throw all the collected exceptions. That's what | |||
[S04](github.com/Raku/old-design-docs/bl...585-L1588) | |||
arg! Sorry, misspaste. | |||
Any reason not to also merge github.com/MoarVM/MoarVM/pull/1785 ? | |||
This is what it should have been. /o\ | |||
22:33
sena_kun left
|