Ruby Symbol # to_proc pierde referencias en 1.9.2-p180?

Ok, este es mi segundo intento de depurar los problemas de memoria con mi aplicación Sinatra. Creo que esta vez lo tengo clavado en un simple código de muestra.

arece que cuando filtro una matriz a través de.map(&:some_method), hace que los elementos de esa matriz no se recojan basura. Ejecutando el equivalente.map{|x| x.some_method} está totalmente bien.

Demostración: dada una clase de muestra simple:

class C
  def foo
    "foo"
  end
end

Si ejecuto lo siguiente en IRB, se recopila normalmente:

ruby-1.9.2-p180 :001 > a = 10.times.map{C.new}
 => [...]
ruby-1.9.2-p180 :002 > b = a.map{|x| x.foo}
 => ["foo", "foo", "foo", "foo", "foo", "foo", "foo", "foo", "foo", "foo"]
ruby-1.9.2-p180 :003 > ObjectSpace.each_object(C){}
 => 10
ruby-1.9.2-p180 :004 > a = nil
 => nil
ruby-1.9.2-p180 :005 > b = nil
 => nil
ruby-1.9.2-p180 :006 > GC.start
 => nil
ruby-1.9.2-p180 :007 > ObjectSpace.each_object(C){}
 => 0

Así que ya no existen referencias a C Bueno. Pero sustituyendomap{|x| x.foo} with map(&:foo) (que se anuncia como equivalente), no se recopila:

ruby-1.9.2-p180 :001 > a = 10.times.map{C.new}
 => [...]
ruby-1.9.2-p180 :002 > b = a.map(&:foo)
 => ["foo", "foo", "foo", "foo", "foo", "foo", "foo", "foo", "foo", "foo"]
ruby-1.9.2-p180 :003 > ObjectSpace.each_object(C){}
 => 10
ruby-1.9.2-p180 :004 > a = nil
 => nil
ruby-1.9.2-p180 :005 > b = nil
 => nil
ruby-1.9.2-p180 :006 > GC.start
 => nil
ruby-1.9.2-p180 :007 > ObjectSpace.each_object(C){}
 => 10
ruby-1.9.2-p180 :008 >

¿Es esto un error de rubí? Probaré más versiones de ruby para estar seguro, pero esto parece un problema obvio. Alguien sabe lo que estoy haciendo mal?

Editar

He intentado esto en 1.8.7-p352 y no tiene el problema. 1.9.3-preview1hac Sin embargo, todavía tengo el problema. ¿Hay un informe de error en orden o estoy haciendo algo mal?

Edit2: formato (¿por qué poner cuatro espacios antes de cada línea produce resaltado de sintaxis mientras<pre> etiquetas no?)

Respuestas a la pregunta(1)

Su respuesta a la pregunta