読者です 読者をやめる 読者になる 読者になる

Rubyのtrunkをx64のGNU/Linuxでコンパイルし、test-allしてみる

Ruby

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45345
でyuguiさんが

この7つのプラットフォームは"perhaps"です。
誰かがメンテナになれば"best effort"になり得ます。
* cygwin
* Interix
* Itanium platforms (Windows, GNU/Linux, ...)
* PPC platforms
* x64 GNU/Linux
* *BSD
* BeOS (Haiku)

と言っています。x64 GNU/Linuxがperhapsなのは
ちょっとやだなぁなんて思って、とりあえずコンパイルしてみました。
環境はx64debian etchです。

・・・・・略・・・・・
make[1]: Entering directory `/home/fujioka/ruby-trunk/ext/zlib'
gcc -I. -I../../.ext/include/x86_64-linux -I../.././include -I../.././ext/zlib -DRUBY_EXTCONF_H=\"extconf.h\"    -fPIC  -O2 -g -Wall -Wno-parentheses  -o zlib.o -c zlib.c
gcc -shared -o ../../.ext/x86_64-linux/zlib.so zlib.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lz  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/fujioka/ruby-trunk/ext/zlib'
making ruby
make[1]: Entering directory `/home/fujioka/ruby-trunk'
gcc -O2 -g -Wall -Wno-parentheses  -L.  -rdynamic -Wl,-export-dynamic   main.o  -lruby-static -lpthread -lrt -ldl -lcrypt -lm   -o ruby
make[1]: Leaving directory `/home/fujioka/ruby-trunk'

特に問題なし。
次にmake installしてからmake test-allしてみます。

...........................................................
Finished in 406.135386 seconds.
 
  1) Failure:
test_has_expires_eh(TestTupleBag) [/home/fujioka/ruby-trunk/test/rinda/test_tuplebag.rb:137]:
 expected but was
.
 
  2) Error:
test_call(TestSetTraceFunc):
NameError: uninitialized constant RubyVM::FrozenCore
    /home/fujioka/ruby-trunk/test/ruby/test_settracefunc.rb:57:in `test_call'
 
  3) Error:
test_class(TestSetTraceFunc):
NameError: uninitialized constant RubyVM::FrozenCore
    /home/fujioka/ruby-trunk/test/ruby/test_settracefunc.rb:109:in `test_class'
 
4939 tests, 1988100 assertions, 1 failures, 2 errors
make: *** [test-all] Error 1

普通にほとんど通るじゃないの。
メッセージを見る限り、

  • tupleのfailはみんな遭遇するんじゃないのかな?
  • RubyVM::FrozenCoreは定義がないだけ?

たいしたエラーじゃなさそうだ。
なんで誰もメンテナーとして手を挙げないんだろう。
(いや、私はちょっとスキルに自信なし&ruby-coreを漏らさず読む自信なし)
まあ、みんな誰かがやるだろうと思っているんだろうなぁ。
私も含めて。(自戒)