Repository navigation
Backport upstream correctness fixes for elide.22 - #176
Merged
Merged
Conversation
(cherry picked from commit 271e693)
Do not emit publishOldBytecodes() from updateBytecode unless instruction tracing is enabled. That method is only generated when tracing (or other bytecode-updatable features) is on, so a tracing-disabled root with no instrumentations failed to compile. Fixes oracle#14682 (cherry picked from commit 37de5e6)
Gate the generated updateBytecode call on isBytecodeUpdatable() rather than enableInstructionTracing. Tracing-disabled roots with @instrumentation still declare publishOldBytecodes and must invoke it before invalidation. (cherry picked from commit 8d308ee)
Rename InstructionTracingDisabledGenerationTest to NotUpdatableBytecodeTest and describe the failure in terms of bytecode updatability. Drop the tests that inspect generated methods; compiling the tracing-disabled root is the regression check. (cherry picked from commit f517e20)
(cherry picked from commit 39f474d)
(cherry picked from commit 180ee14)
Float.equals and Double.equals collapse every NaN to one canonical payload, so distinct NaN constants shared a constant-pool slot. ConstantsBuffer now compares and hashes those values with their raw bits. Other constants are still deduplicated with equals, and +0.0 and -0.0 stay distinct as they already were. Signed-off-by: The-Alchemist <kap4020@gmail.com> (cherry picked from commit bc5b0a8)
(cherry picked from commit 9ee47df)
(cherry picked from commit 65cffba)
(cherry picked from commit 432a7f9)
(cherry picked from commit f7daf33)
(cherry picked from commit 4522753)
(cherry picked from commit f37d16b)
(cherry picked from commit da25c2e)
(cherry picked from commit d0dd1da)
(cherry picked from commit 3bc5219)
(cherry picked from commit 17d1c6b)
(cherry picked from commit 308cd80)
(cherry picked from commit 8dfdd8c)
(cherry picked from commit 4cdf1bf)
(cherry picked from commit b400b1e)
(cherry picked from commit 055c3fd)
…ified. (cherry picked from commit 9e49bd0)
(cherry picked from commit e97755c)
(cherry picked from commit eadbace)
(cherry picked from commit 6381da7)
(cherry picked from commit 983dae9)
Boxing-eliminated quickenings used null to mean that no unexpected operand was passed in. A real null was discarded and the slow path re-read a frame slot the fast path had already cleared. Signed-off-by: The-Alchemist <kap4020@gmail.com> (cherry picked from commit 11e6577)
The boxing-elimination slow path used a private Object sentinel to tell "no unexpected operand" apart from a null guest value. Pass the UnexpectedResultException instead: a null exception means the operand is still on the stack, and getResult() supplies the guest value when one was thrown, including null. Signed-off-by: The-Alchemist <kap4020@gmail.com> (cherry picked from commit 2fe6557)
Sam Gammon (sgammon)
marked this pull request as ready for review
October 31, 2026 00:17
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.
Backport 29 upstream correctness fixes to the 25.5 line: Bytecode DSL generation and slow paths, raw floating-point constants, Vector API stamp propagation, interpreter/Ristretto dispatch and method handles, runtime startup and metadata, JFR accounting, and build/test reliability. Normalize the new changelog entries to 25.5.
Preserve the fork's receiver checks and dispatch publication when adapting the linkTo conversion fix. Skip the JFR write-lock patch already present in the fork. Hold broader refactors and EE-incompatible changes for separate work.
Validation on the combined elide.22 candidate: strict substratevm build, formatting/checkstyle, 60 Bytecode DSL tests, 22 native Ristretto/Truffle tests, Truffle SpotBugs, and EE LinkCheck. Shenandoah/Truffle integration is tracked separately in #174.