Forum: Ruby-core [Bug #1707] Proc#call Raises ThreadError on 1.8 HEAD; LocalJumpError on Other Versions

Posted by Run Paint Run Run (Guest)
on 2009-06-30 18:52
(Received via mailing list)
Bug #1707: Proc#call Raises ThreadError on 1.8 HEAD; LocalJumpError on 
Other Versions
http://redmine.ruby-lang.org/issues/show/1707

Author: Run Paint Run Run
Status: Open, Priority: Normal
Category: core, Target version: Ruby 1.8.8
ruby -v: ruby 1.8.8dev (2009-06-28) [i686-linux]

The code below raises a LocalJumpError on 1.8.6, 1.8.7, and 1.9 HEAD. It 
raises a ThreadError ("return can't jump across threads") on 1.8 HEAD.

    def some_method(&b) b end
    a_proc = Proc.new { return }
    res = some_method(&a_proc)
    res.call

Is this difference intentional? If so, why?

Versions
========

* ruby 1.8.6 (2009-06-08 patchlevel 369) [i686-linux]
* ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
* ruby 1.8.8dev (2009-06-28) [i686-linux]
* ruby 1.9.2dev (2009-06-27 trunk 23871) [i686-linux]
Posted by Yukihiro Matsumoto (Guest)
on 2009-07-01 03:10
(Received via mailing list)
Hi,

In message "Re: [ruby-core:24097] [Bug #1707] Proc#call Raises 
ThreadError on 1.8 HEAD; LocalJumpError on Other Versions"
    on Wed, 1 Jul 2009 01:07:46 +0900, Run Paint Run Run 
<redmine@ruby-lang.org> writes:

|The code below raises a LocalJumpError on 1.8.6, 1.8.7, and 1.9 HEAD. It raises a ThreadError ("return can't jump across threads") on 1.8 HEAD.
|
|    def some_method(&b) b end
|    a_proc = Proc.new { return }
|    res = some_method(&a_proc)
|    res.call
|
|Is this difference intentional? If so, why?

It's not intentional.

              matz.
Posted by Nobuyoshi Nakada (Guest)
on 2009-07-01 08:57
(Received via mailing list)
Issue #1707 has been updated by Nobuyoshi Nakada.

Status changed from Open to Closed
% Done changed from 0 to 100

Applied in changeset r23922.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/1707
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.