新井です。 >>> From: Minero Aoki <aamine / dp.u-netsurf.ne.jp> >>> Date: 03 Jan 2000 11:34:50 +0900 >>> Subject: [ruby-list:20019] Re: RD with method index (again) > あおきです。 > > 定数はクラスやモジュールで定義されるモノだからmainってことは > > ないと思います。 > > ::Const でしょう。 ruby ではそれもありですね。RDでそれを許してもまぁ判定に困る ことはないかな。そういえば、クラスメソッドで"::"を許してもい いですね。(でも個人的な趣味で、"."で提案してる) ところで、raccなんですがインストール時にエラーになります。 raccのバージョンは0.10.7です。 ・$objsを初期化しておかないと、setup.rb setupのとき、 $ ruby -v -I . setup.rb setup ruby 1.4.4 (1999-12-14) [i586-linux] ... setup failed undefined method `join' for "cparse.o":String と言われます。(mkmf.rbの問題とも言える) ・rubyに--program-suffixを付けてるとraccのインストール先が /usr/local/lib/ruby-1.4.4/1.4/... とかになります。 ・ruby-1.4では Installer::RUBY_PATH をアクセスできません。 module RubyParams RUBY_PATH="/usr/local/bin/ruby" end class Installer include RubyParams end p Installer::RUBY_PATH -> ruby 1.4.4 (1999-12-14) [i586-linux] -:7: uninitialized constant Installer::RUBY_PATH (NameError) 1.5 ではOKなんですが共有変数になってからの仕様変更でしょうね。 -> ruby 1.5.0 (1999-12-14) [i586-linux] "/usr/local/bin/ruby" 一応場当たり的な修正は以下です。
diff -ru racc-0.10.7/amstd/inst.rb racc-0.10.7.fix/amstd/inst.rb --- racc-0.10.7/amstd/inst.rb Wed Dec 29 19:43:21 1999 +++ racc-0.10.7.fix/amstd/inst.rb Sat Jan 1 13:11:47 2000 @@ -93,6 +93,8 @@ def extconf + p $objs + $objs = nil load './extconf.rb' unless is_newer? 'Makefile', 'extconf.rb' end diff -ru racc-0.10.7/amstd/rbparams.rb racc-0.10.7.fix/amstd/rbparams.rb --- racc-0.10.7/amstd/rbparams.rb Wed Dec 29 19:43:21 1999 +++ racc-0.10.7.fix/amstd/rbparams.rb Sat Jan 1 13:15:18 2000 @@ -20,7 +20,7 @@ BINDIR = sepjoin( CONFIG['bindir'] ) LIBDIR = sepjoin( CONFIG['libdir'], - RUBY, + "ruby", CONFIG['MAJOR'] + '.' + CONFIG['MINOR'] ) SITELIBDIR = sepjoin( LIBDIR, 'site_ruby' ) diff -ru racc-0.10.7/compile.rb racc-0.10.7.fix/compile.rb --- racc-0.10.7/compile.rb Wed Dec 29 19:43:21 1999 +++ racc-0.10.7.fix/compile.rb Sat Jan 1 13:11:47 2000 @@ -2,9 +2,9 @@ require 'amstd/inst' -rubypath = Installer::RUBY_PATH +rubypath = RubyParams::RUBY_PATH #raccpath = './bin/racc' -raccpath = './racc' +raccpath = '/usr/local/bin/racc' $cmd = "ruby #{raccpath} -ocalc.rb -e#{rubypath} %s" -- 新井康司 (Koji Arai)