[#38919] Ruby 1.8.1 preview4 — matz@... (Yukihiro Matsumoto)

Hi,

44 messages 2003/12/22
[#38921] Re: Ruby 1.8.1 preview4 — "NAKAMURA, Hiroshi" <nakahiro@...> 2003/12/22

Hi, all,

[ruby-list:38972] Re: Ruby 1.8.1 preview4 (i386-os2-emx)

From: siena@... (Siena. / SHINAGAWA, Norihide)
Date: 2003-12-24 10:37:34 UTC
List: ruby-list #38972
Siena. です。

OS/2 V4.51 (aka MCP1) 日本語版 with EMX 09d FIX04 で試しています。
これは、単純にビルドとテストをしただけの場合についての報告です。
幾つかのパッチを当てた物を使用していますが、以下の報告は共通します。


preview4 そのままでは拡張ライブラリのビルドが通らないため、
[ruby-dev:21765] を当てた上で、次のようにビルドしています。

$ tar -xzf ruby-1.8.1-preview4.tar.gz ; cd ruby-1.8.1
$ ( cd ext ; mv Setup.emx Setup.emx.org
    egrep -vi 'win|\<dl\>' Setup.emx.org | sed 's/# *//' > Setup.emx
    wget http://www.yoshidam.net/uconv-0.4.11.tar.gz
    tar -xzf uconv-0.4.11.tar.gz
    echo uconv >> Setup.emx )
$ autoconf
$ ./configure --prefix=$RUBYDIR --with-static-linked-ext=yes  \
  --disable-shared --enable-compat-win32api 
$ make ; make
$ make test && make install && cd test ; ruby runner.rb

途中、make を 2 回動かしているのは、初回の ext/openssl の
ビルド中に、エラー報告やコアダンプもなく突然終了してしまうためです。
2 回目以降は、make clean しても正常にビルドが進みます。
ext/openssl/Makefile などを見てみましたが原因は良く分かりません。


ユニットテストでは、二つ失敗します。
これらは、とりあえず、そのままで進めていただいて結構です。
もし何かお気付きの点がありましたらご指摘いただきたいと
思いますので、以下に症状を挙げておきます。

まず、ext/openssl がうまくビルドできていないためか、
次の例外が発生します。ビルドの失敗と合わせて調査中です。
ext/openssl 単体のテストコードはどこかにあるでしょうか?

$ ruby runner.rb drb/test_drbssl.rb
T:/lib/ruby/1.8/drb/ssl.rb:83:in `setup_certificate': 
undefined method `create_extension' for 
#<OpenSSL::X509::ExtensionFactory:0x44d0dc> (NoMethodError)
	from T:/lib/ruby/1.8/drb/ssl.rb:148:in `open_server'
	from T:/lib/ruby/1.8/drb/drb.rb:728:in `open_server'
	from T:/lib/ruby/1.8/drb/drb.rb:726:in `each'
	from T:/lib/ruby/1.8/drb/drb.rb:726:in `open_server'
	from T:/lib/ruby/1.8/drb/drb.rb:1228:in `initialize'
	from ./drb/test_drbssl.rb:27:in `new'
	from ./drb/test_drbssl.rb:27
	from T:/lib/ruby/1.8/test/unit/collector/dir.rb:75:in `require'
	from T:/lib/ruby/1.8/test/unit/collector/dir.rb:75:in `collect_file'
	from T:/lib/ruby/1.8/test/unit/collector/dir.rb:62:in `recursive_collect'
	from T:/lib/ruby/1.8/test/unit/collector/dir.rb:25:in `collect'
	from T:/lib/ruby/1.8/test/unit/autorunner.rb:59
	from T:/lib/ruby/1.8/test/unit/autorunner.rb:54:in `[]'
	from T:/lib/ruby/1.8/test/unit/autorunner.rb:181:in `run'
	from T:/lib/ruby/1.8/test/unit/autorunner.rb:13:in `run'
	from runner.rb:7

もう一つは、EMX での UNIXServer 使用上の制限のように思えます。
辿っていくと、ext/socket/socket.c:init_unixsock() 辺りで失敗して
いそうなので、改善できないかいずれ見てみたいと思っています。

$ ruby runner.rb drb/test_drbunix.rb
T:/lib/ruby/1.8/drb/unix.rb:82:in `initialize': 
Invalid argument - F:/tmp/druby7089.0 (Errno::EINVAL)
	from T:/lib/ruby/1.8/drb/unix.rb:82:in `new'
	from T:/lib/ruby/1.8/drb/unix.rb:82:in `temp_server'
	from T:/lib/ruby/1.8/drb/unix.rb:31:in `open_server'
	from T:/lib/ruby/1.8/drb/drb.rb:728:in `open_server'
	from T:/lib/ruby/1.8/drb/drb.rb:726:in `each'
	from T:/lib/ruby/1.8/drb/drb.rb:726:in `open_server'
	from T:/lib/ruby/1.8/drb/drb.rb:1228:in `initialize'
	from ./drb/test_drbunix.rb:11:in `new'
	 ... 6 levels...
	from T:/lib/ruby/1.8/test/unit/autorunner.rb:54:in `[]'
	from T:/lib/ruby/1.8/test/unit/autorunner.rb:181:in `run'
	from T:/lib/ruby/1.8/test/unit/autorunner.rb:13:in `run'
	from runner.rb:7

---
Siena. <mailto:siena@faculty.chiba-u.jp>

In This Thread