Pin the test node to 25 where exnref is stable#11
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Why
wasmWasi compiles to the exnref exception-handling proposal by default since Kotlin 2.3. On node 24 (V8 13.6) exnref is experimental and only runs behind --experimental-wasm-exnref, and that experimental path intermittently crashed wasmWasiNodeTest under load on CI runners. Node 25 ships V8 14.1 where exnref is stable, so the module instantiates with no flag and the experimental path is gone. Pinning here means every consumer of com.eignex.kmp inherits the stable runtime; klause currently overrides this pin to 25 in its own build script and can drop that override once this ships.
Testing
Ran the kmp-positive sample: wasmWasiNodeTest executes on node-v25.0.0 and passes, and detekt on the sample is green. Confirmed the guard is real by temporarily reverting the pin to 24.10.0 (without the flag) — the sample then fails to compile the wasm module with "Invalid opcode 0x1f (enable with --experimental-wasm-exnref)". Restored to 25. The existing LintPluginRulesTest suite still passes.