きりかノート 3冊め

おあそびプログラミング

port:ruby20を追加した!

selectの準備がととのったので、port:ruby20を作成して登録した。rubyやruby19と同様にコマンドはruby2.0, gem2.0などのファイル名になっていて、port select rubyが効くようになってる。

調べたこととか

どうも2.0.0でconfigureに--with-librubyprefixを指定すると、verconf.h でコンパイルエラーになるみたい。trunkでは直ってたので、それっぽいところをtrunkのconfigure.inから取ってきてパッチをつくった。パッチはautoconfかけなおすのめんどうなので、configureに直接パッチする形にした。

(2013/3/11追記: チケットあがってた。[#8033]

   % ./configure --with-rubylibprefix=/usr/local/lib/ruby2.0
      :
   % make version.o
   compiling version.c
   In file included from version.c:12:
   ./verconf.h:4:67: warning: missing terminating '"' character [-Winvalid-pp-token]
   #define RUBY_LIB_PREFIX RUBY_EXEC_PREFIX"/lib/"RUBY_BASE_NAME""2.0"
                                                                     ^
   version.c:75:5: error: expected ';' after top level declarator
       RUBY_SITE_LIB2 "\0"
       ^
   version.c:43:37: note: expanded from macro 'RUBY_SITE_LIB2'
   #define RUBY_SITE_LIB2              RUBY_SITE_LIB    "/"RUBY_LIB_VERSION
                                       ^
   ./verconf.h:8:23: note: expanded from macro 'RUBY_SITE_LIB'
   #define RUBY_SITE_LIB RUBY_LIB_PREFIX"/site_ruby"
                         ^
   ./verconf.h:4:64: note: expanded from macro 'RUBY_LIB_PREFIX'
   #define RUBY_LIB_PREFIX RUBY_EXEC_PREFIX"/lib/"RUBY_BASE_NAME""2.0"
                                                                  ^
   1 warning and 1 error generated.
   make: *** [version.o] Error 1

make test-allでなぜか1.9を参照してsegvするっぽいときがあった。原因不明。PATHに"ruby"があると、そっちみちゃうときがあるのかなあ。