JRuby

Various issues with LocalJumpError not being created early enough

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Blocker Blocker
  • Resolution: Fixed
  • Affects Version/s: JRuby 1.0.0RC2
  • Fix Version/s: JRuby 1.1b1
  • Component/s: None
  • Labels:
    None
  • Number of attachments :
    1

Description

The attached patch demonstrates a few cases that are not working correctly. We are waiting too long to construct LocalJumpError. We may even need to create it instead of JumpException for flow control, and find an alternative way to deal with the overhead, or have rescue blocks also catch JumpException and do the creation there.

Add cases to this test. We'll do our best to get them in for 1.0.

Issue Links

Activity

Hide
Charles Oliver Nutter added a comment -

Without any additional reported failures related to LocalJumpError, this is being downgraded. I believe it should be fixed, but we need to be pragmatic about getting 1.0 out.

Show
Charles Oliver Nutter added a comment - Without any additional reported failures related to LocalJumpError, this is being downgraded. I believe it should be fixed, but we need to be pragmatic about getting 1.0 out.
Hide
Charles Oliver Nutter added a comment -

These obviously need to be fixed, but we have absolutely no reported issues because of them. They'll be non-trivial to fix, so they're going to be post 1.0

Show
Charles Oliver Nutter added a comment - These obviously need to be fixed, but we have absolutely no reported issues because of them. They'll be non-trivial to fix, so they're going to be post 1.0
Hide
Charles Oliver Nutter added a comment -

We need to fix this for 1.1. I think the best way to resolve it will be to have both jumps and LocalJumpError generate the same exception type, so we can have a single catch everywhere to handle these cases. This should eliminate the need for separate logic and allow Ruby code to appropriately catch LocalJumpError everywhere it should.

Note that this already works in the compiler for a number of constructs.

Show
Charles Oliver Nutter added a comment - We need to fix this for 1.1. I think the best way to resolve it will be to have both jumps and LocalJumpError generate the same exception type, so we can have a single catch everywhere to handle these cases. This should eliminate the need for separate logic and allow Ruby code to appropriately catch LocalJumpError everywhere it should. Note that this already works in the compiler for a number of constructs.
Hide
Charles Oliver Nutter added a comment -

This works now on trunk with various fixes to jump logic. There's more to do, but this case passes. I will add to test run.

Show
Charles Oliver Nutter added a comment - This works now on trunk with various fixes to jump logic. There's more to do, but this case passes. I will add to test run.

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: