新井です。

class Foo
  FOO = 1
end

Foo.module_eval { p FOO }

なんてのがエラーになるようになってたのですが、これはなぜでしたっけ?

    => -:5: uninitialized constant FOO (NameError)
	    from -:5:in `module_eval'
	    from -:5:in `module_eval'
	    from -:5
       ruby 1.7.2 (2002-08-01) [i586-linux]

1.6.7 までは、

    => ruby 1.6.7 (2002-03-01) [i586-linux]
       1

でした。探してみるとどうやら

cvs diff -p -D 2002-03-22 -D 2002-03-23 ChangeLog eval.c 

+Fri Mar 22 15:04:03 2002  Yukihiro Matsumoto  <matz / ruby-lang.org>
+
+       * eval.c (exec_under): changing ruby_class is OK, but should not
+         alter cbase.
+
+       * eval.c (yield_under_i): ditto.
+

あたりの変更が原因なのではないかと思うのですが。仕様変更なら
マニュアルに反映させます。ML で関連の話題は見つけられません
でした。

--
新井康司 (Koji Arai)