山本です。 [ruby-dev:23380] で報告した、test/drb/test_drb.rb が SEGV する問題ですが、 テストコードを削って、再現する最小のコードを得ました。 (このメールの最後に添付します) test_drb.rb の中の、@@ruby は、私の環境では "E:/ruby-cvs/ruby/miniruby" と なっているのですが、下の test_drb.rb のコメントを外して "E:/ruby-cvs/ruby/ruby.exe" とすると、正常に動くようになります。 原因まではわかってないのですが、 2004/05/19 17:05 714,752 miniruby.exe 2004/05/19 17:05 48,128 ruby.exe というサイズの大きさから見て、static リンクだと SEGV するということは ないでしょうか?(当て推量です) 私の環境は、Win2000SP4, bcc5.5.1 E:\ruby-cvs\ruby>ruby -v ruby 1.9.0 (2004-05-19) [i386-bccwin32] です。 /////////////////////////////////////////////////////// // test_drb.rb require 'test/unit' require 'drb/drb' require 'drb/extservm' begin loadpath = $:.dup $:.replace($: | [File.expand_path("../ruby", File.dirname(__FILE__))]) require 'envutil' ensure $:.replace(loadpath) end class DRbService @@manager = DRb::ExtServManager.new @@ruby = EnvUtil.rubybin @@ruby += " -d" if $DEBUG # @@ruby = "e:/ruby-cvs/ruby/ruby.exe" @@dir = File.dirname(File.expand_path(__FILE__)) def self.add_service_command(nm) DRb::ExtServManager.command[nm] = "#{@@ruby} #{@@dir}/#{nm}" end add_service_command("ut_array.rb") DRb::DRbServer.new(nil, @@manager, {}) def self.manager @@manager end end class TestDRbAry < Test::Unit::TestCase def setup @ext = DRbService.manager.service('ut_array.rb') end def teardown @ext.stop_service end def test_none # dummy end end /////////////////////////////////////////////////////// // ut_array.rb require 'drb/drb' require 'drb/extserv' if __FILE__ == $0 def ARGV.shift it = super() raise "usage: #{$0} <uri> <name>" unless it it end DRb.start_service(nil, [1, 2, 'III', 4, "five", 6]) es = DRb::ExtServ.new(ARGV.shift, ARGV.shift) DRb.thread.join end