|
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
|
|||