[#28015] RCR: RUBY_VERSION_INT — Roger Pack <rogerdpack2@...>

Situation:

14 messages 2010/02/02

[#28113] [Bug #2723] $: length affects re-require time of already loaded files — Greg Hazel <redmine@...>

Bug #2723: $: length affects re-require time of already loaded files

16 messages 2010/02/08

[#28151] [Bug #2739] ruby 1.8.7 built with pthreads hangs under some circumstances — Joel Ebel <redmine@...>

Bug #2739: ruby 1.8.7 built with pthreads hangs under some circumstances

31 messages 2010/02/11

[#28188] [Bug #2750] build fails on win32/MinGW: "executable host ruby is required." even when --with-baseruby is used — Christian Bodt <redmine@...>

Bug #2750: build fails on win32/MinGW: "executable host ruby is required." even when --with-baseruby is used

9 messages 2010/02/16

[#28206] Is Math module a wrapper of libm? — Yusuke ENDOH <mame@...>

Hi matz --

23 messages 2010/02/18
[#28212] Re: Is Math module a wrapper of libm? — Yukihiro Matsumoto <matz@...> 2010/02/18

Hi,

[#28219] Re: Is Math module a wrapper of libm? — Yusuke ENDOH <mame@...> 2010/02/18

Hi,

[#28225] Re: Is Math module a wrapper of libm? — Marc-Andre Lafortune <ruby-core-mailing-list@...> 2010/02/18

Hi,

[#28233] Re: Is Math module a wrapper of libm? — Kenta Murata <muraken@...> 2010/02/18

Hi,

[#28265] Re: Is Math module a wrapper of libm? — Marc-Andre Lafortune <ruby-core-mailing-list@...> 2010/02/20

Hi,

[#28286] Re: Is Math module a wrapper of libm? — Kenta Murata <muraken@...> 2010/02/21

Hi

[#28291] Re: Is Math module a wrapper of libm? — Marc-Andre Lafortune <ruby-core-mailing-list@...> 2010/02/22

Hi!

[#28235] [Feature #2759] Regexp /g and /G options — Michael Fellinger <redmine@...>

Feature #2759: Regexp /g and /G options

35 messages 2010/02/18

[#28329] [ANN] Ruby 1.9.2dev has passed RubySpec! — Yusuke ENDOH <mame@...>

Hi,

12 messages 2010/02/24

[#28355] [ANN] Toward rich diversity of Ruby development. — Urabe Shyouhei <shyouhei@...>

A short announcement: thanks to some helps of GitHub people, I now have

12 messages 2010/02/27

[#28365] Indentifying key MRI-on-Windows issues — Jon <jon.forums@...>

In an effort to begin summarizing key MRI-on-Windows open issues I'm starting this thread in hopes that those interested will respond with details on the key MRI issues they feel need resolution for Windows users.

11 messages 2010/02/27
[#28690] Re: Indentifying key MRI-on-Windows issues — Roger Pack <rogerdpack2@...> 2010/03/16

> My key concern is http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-=

[ruby-core:28364] Small 1.8.7 bug involving proc_alloc

From: Yehuda Katz <wycats@...>
Date: 2010-02-27 19:38:30 UTC
List: ruby-core #28364
I have found a small 1.8.7 bug that prevents proc_alloc from retrieving the
old Proc object if the Proc has a metaclass. Here's an example:

def foo
  yield
end

def bar(&block)
  puts Proc.new.object_id
  def block.foo() "FOO" end
  puts Proc.new.object_id
  baz(&block)
end

def baz(&block)
  puts Proc.new.object_id
  yield
end

foo { puts "HELLO" }
bar { puts "HELLO" }

Ruby 1.9, Rubinius and JRuby all return the same Proc object in all three
cases. Ruby 1.8.7 returns a different Proc object in each case, because of
the use of CLASS_OF in proc_alloc:

    if (!proc && ruby_block->block_obj && CLASS_OF(ruby_block->block_obj) ==
klass) {
return ruby_block->block_obj;
    }

It seems this code is trying to make sure that MyProc.new doesn't return a
Proc object. The solution is a tiny patch to use rb_class_real:

index 8847ee5..54a0f46 100644
--- a/eval.c
+++ b/eval.c
@@ -8725,7 +8725,7 @@ proc_alloc(klass, proc)
        rb_warn("tried to create Proc object without a block");
     }

-    if (!proc && ruby_block->block_obj && CLASS_OF(ruby_block->block_obj)
== klass) {
+    if (!proc && ruby_block->block_obj &&
rb_class_real(CLASS_OF(ruby_block->block_obj)) == klass) {
        return ruby_block->block_obj;
     }
     block = Data_Make_Struct(klass, struct BLOCK, blk_mark, blk_free,
data);


Yehuda Katz
Developer | Engine Yard
(ph) 718.877.1325

In This Thread

Prev Next