Always pass filename into AOT root scope creation#7292
Merged
headius merged 2 commits intojruby:jruby-9.3from Aug 9, 2022
Merged
Always pass filename into AOT root scope creation#7292headius merged 2 commits intojruby:jruby-9.3from
headius merged 2 commits intojruby:jruby-9.3from
Conversation
The filename from which a script is loaded can change after that script has been AOT compiled to either serialized IR or JVM bytecode formats. Previous commits broke this dynamic filename handling by hardcoding the filename into the serialized IR and JVM bytecode, causing jruby#7211. This commit reinstates the dynamic filename by passing it through from load logic to the root scope creation, and removing the hardcoded filenames produced by both AOT forms. Note that one path has always been broken and remains broken: the JVM `main` entry point provided to run a script directly as a Java class. There is no way to reliably determine the real path of the main class, so it continues to hardcode the original filename (which is similar to javac embedding the original filename of a compiled Java source file). Fixes jruby#7211
c0ddfe9 to
b88a8e6
Compare
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.
The filename from which a script is loaded can change after that
script has been AOT compiled to either serialized IR or JVM
bytecode formats. Previous commits broke this dynamic filename
handling by hardcoding the filename into the serialized IR and JVM
bytecode, causing #7211.
This commit reinstates the dynamic filename by passing it through
from load logic to the root scope creation, and removing the
hardcoded filenames produced by both AOT forms.
Note that one path has always been broken and remains broken: the
JVM
mainentry point provided to run a script directly as a Javaclass. There is no way to reliably determine the real path of the
main class, so it continues to hardcode the original filename
(which is similar to javac embedding the original filename of a
compiled Java source file).
Fixes #7211