From: "藤本尚邦 / Hisakuni FUJIMOTO" Date: 1998-07-29T19:03:11+09:00 Subject: [ruby-dev:3430] Re: grand renaming 藤本です、こんにちは。 From: matz@netlab.co.jp (Yukihiro Matsumoto) Subject: [ruby-dev:3429] Re: grand renaming Date: Wed, 29 Jul 1998 18:09:12 +0900 > まつもと ゆきひろです > > In message "[ruby-dev:3428] Re: grand renaming" > on 98/07/29, WATANABE Hirofumi writes: > > |わたなべです. > > |わたしも macro や enum はこのままでいいと思います. > > あ,良かった.賛同者がいて. ものすごくマイナーなマック版の立場から.. #マック版はぜんぜんついていけてないのであまり大きな声では言えないんで #すが (^^; 出来れば、ruby.hでマクロを定義しているTRUE, FALSE, NILの3つだけは、 マック関連でぶつかることが多いので、何か適当な名前に変えてもらえるとあ りがたいです。 背景を説明します。むかーしMacOSのAPIはPascalで定義されてました。 Pascalでは、Boolean型(だったかな?)にtrue,falseという値があり、ポイン タにはnilという値があります。その関係で、CでMacOS APIを呼ぶプログラム を書く場合には、APIのヘッダファイル内でTRUE,FALSE,NILなどがマクロで定 義されてます。MacOSのAPIを呼ぶモジュールを作ろうと思うと、ruby.hと MacOS API用のヘッダをインクルードしますからぶつかります。 とくにNILは値が違うので危険です。TRUEも値が違うんですが、Cの真偽値の しくみから考えて実際には問題なさそうです。 ところでrubyのディレクトリで $ fgrep -w NIL *.[hc] object.c: rb_define_global_const("NIL", Qnil); ruby.h:# define NIL 4 だったのですが、ruby.hで定義されているNILは実は必要ないなんてことはな いでしょうか。 ============================================================= 藤本尚邦 FUJIMOTO Hisakuni hisa@imasy.or.jp =============================================================