-
-
Notifications
You must be signed in to change notification settings - Fork 925
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 49299184a8e1^
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: d455523145d6
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 9 commits
- 17 files changed
- 1 contributor
Commits on Oct 10, 2017
-
Mark blocks as escaped and raise LJE for break when appropriate.
Fixes #4686. Fixes #4577. The logic here adds finally wrappers around all call paths that receive a block. When the call exits, the block is marked "escaped" since it no longer has a method activation to go with it. This indicates that non-local flow, like break, should immediately trigger a LocalJumpError. This passes specs but has not been tested extensively with other types of call forms that receive blocks.
Configuration menu - View commit details
-
Copy full SHA for 4929918 - Browse repository at this point
Copy the full SHA 4929918View commit details -
Configuration menu - View commit details
-
Copy full SHA for e362373 - Browse repository at this point
Copy the full SHA e362373View commit details -
Configuration menu - View commit details
-
Copy full SHA for 120a64d - Browse repository at this point
Copy the full SHA 120a64dView commit details -
Configuration menu - View commit details
-
Copy full SHA for c4b17de - Browse repository at this point
Copy the full SHA c4b17deView commit details -
Configuration menu - View commit details
-
Copy full SHA for afdced0 - Browse repository at this point
Copy the full SHA afdced0View commit details -
Final tweaks to LJE break fixes.
* Add literal closure method to IR closure-accepting interface * Replace double boolean in JIT code with enum * Check for null in non-local return logic
Configuration menu - View commit details
-
Copy full SHA for b02ae90 - Browse repository at this point
Copy the full SHA b02ae90View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70d854a - Browse repository at this point
Copy the full SHA 70d854aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 49be9b5 - Browse repository at this point
Copy the full SHA 49be9b5View commit details -
Simplify case/when eqq logic and enlist in normal invocation.
Most case/when will have neither an undefined case value (for bare case statements) nor multiple values for a given when (splatted) so in those cases we can simply do a plain eqq call + isTrue. The unusual cases will still go to the old isEQQ logic, so there may be value in optimizing that path later. The main logic in isEQQ is the processing of a splatted array of when values in sequence, and a small bit of logic that simply checks truthiness of the when value for a bare case statement. This change reduces the bytecode for all case/when, and by more than half for the typical form. It also allows the === call to be optimized with invokedynamic like a normal call.
Configuration menu - View commit details
-
Copy full SHA for d455523 - Browse repository at this point
Copy the full SHA d455523View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 49299184a8e1^...d455523145d6