rb_define_class_variable() という、名前の通りクラス変数を定義する
函数があります (variable.c)。
ところが、実装コードを見ると、定義しようとする変数が定義済みでなければ
NameErrorが発生するという、函数名に反した処理になっています。
さらによく見ると、rb_cv_set() (クラス変数の値設定) と実装コードが
まったく同じです。

ruby本体の範囲内ではこの函数が使われていないので問題が顕在化
しなかったのかな、と思ったのですが、調べてみると、ruby-1.6.1以降ずっと、
NameErrorが発生するようになっていることが分かりました。
ここまで昔にさかのぼるとなると、逆に自分が何か勘違いをしているのでは
ないかと心配になってきたのですが、いかがなものでしょうか。

--
tac / amris.co.jp
横山岳浩