[#27003] [Bug #2422] splat operator fails on array of 1 element — Raul Parolari <redmine@...>

Bug #2422: splat operator fails on array of 1 element

12 messages 2009/12/02

[#27025] [Backport #2431] StringIO#{gets,readlines} with "" (paragraph mode) trims last "\n" — Hiroshi NAKAMURA <redmine@...>

Backport #2431: StringIO#{gets,readlines} with "" (paragraph mode) trims last "\n"

8 messages 2009/12/04

[#27086] [Feature #2454] OpenSSL has no maintainer — Yui NARUSE <redmine@...>

Feature #2454: OpenSSL has no maintainer

16 messages 2009/12/07

[#27120] #to_enum ignores block? — Roger Pack <rogerdpack@...>

Is #to_enum ignoring its block expected?

11 messages 2009/12/09

[#27135] better GC? — Roger Pack <rogerdpack@...>

Could I put in a small plea for a better GC?

56 messages 2009/12/10
[#27136] Re: better GC? — Yukihiro Matsumoto <matz@...> 2009/12/11

Hi,

[#27476] Re: better GC? — Paul Brannan <pbrannan@...> 2010/01/07

On Fri, Dec 11, 2009 at 09:07:16AM +0900, Yukihiro Matsumoto wrote:

[#27477] Re: better GC? — Eero Saynatkari <ruby-ml@...> 2010/01/07

Excerpts from Paul Brannan's message of Thu Jan 07 21:53:34 +0200 2010:

[#27563] Re: better GC? — Brent Roman <brent@...> 2010/01/12

[#27199] [Backport #2488] thread usage can result in bad HANDLE — Roger Pack <redmine@...>

Backport #2488: thread usage can result in bad HANDLE

12 messages 2009/12/16

[#27286] [Bug #2515] Array#select! — Roger Pack <redmine@...>

Bug #2515: Array#select!

17 messages 2009/12/22

[#27327] [Bug #2531] Ruby 1.8.7-p248 fails to cross-compile same version — Luis Lavena <redmine@...>

Bug #2531: Ruby 1.8.7-p248 fails to cross-compile same version

9 messages 2009/12/25

[#27360] [Feature #2542] URI lib should be updated to RFC 39886 — Marc-Andre Lafortune <redmine@...>

Feature #2542: URI lib should be updated to RFC 39886

15 messages 2009/12/31

[ruby-core:27230] [Bug #2502] strange behavior of anonymous class inside a proc

From: caleb clausen <redmine@...>
Date: 2009-12-19 05:17:30 UTC
List: ruby-core #27230
Bug #2502: strange behavior of anonymous class inside a proc
http://redmine.ruby-lang.org/issues/show/2502

Author: caleb clausen
Status: Open, Priority: High
ruby -v: ruby 1.9.1p376 (2009-12-07 revision 26040 [x86_64-linux]

I have a problem in 1.9.1 when I run this code, extracted from a larger project:
  $VERBOSE=1

  class SubSeq 
    def initialize
      @first=11
      @first or fail
    end

    def subseq 
      @first or fail
    end    
  end

  class Indexed  
    def subseq 
      SubSeq.new
    end
  end

  Overlaid =proc do
    p self
    class<<self
      def subseq
        super.instance_eval(& Overlaid)
      end
    end
  end

  mid=Indexed.new
  mid.instance_eval(&Overlaid)
  mid.subseq
  p mid
  mid.subseq 

The output I get is like this:
#<Indexed:0x000000007a8930>
#<SubSeq:0x000000007a7e78 @first=11>
#<Indexed:0x000000007a8930>
subseq_first_nil.rb:10: warning: instance variable @first not initialized
subseq_first_nil.rb:10:in `subseq': unhandled exception
	from subseq_first_nil.rb:24:in `subseq'
	from subseq_first_nil.rb:33:in `<main>'

This code should run without raising an exception, and does in ruby 1.8. The exception is raised from within the last line, the second call to mid.subseq. Both mid.subseq calls should behave exactly the same. The first appears to do all the right things. But in the second, it goes all awry. They should both call first the anonymous class's #subseq, then (via the super) Indexed#subseq, which ultimately returns a SubSeq object, also decorated by the anonymous class. SubSeq#subseq itself should never be called, but somehow (given the top line of the exception traceback and the warning) it is. SubSeq's @first should never be nil, since it is initialized in the constructor and never changed, but somehow it is. 

This is the last remaining (serious) problem in porting redparse to 1.9. It causes redparse to incorrectly handle certain here documents which work fine when run in 1.8. I'd appreciate it very much of this problem can be fixed.

I've observed this in 1.9.1, but not 1.9.2.


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next