From: Hiroshi Nakamura Date: 2011-04-14T13:51:38+09:00 Subject: [ruby-core:35749] Re: mvm branch status? Hi, On Wed, Apr 13, 2011 at 06:56, Charles Oliver Nutter wrote: > On Sun, Apr 10, 2011 at 11:28 PM, Urabe Shyouhei wrote: >> What C APIs are safe to use with MVM is not fully certain yet. �For instance >> there are process-global states other than C global variables like current >> directory, signal masks, ... We are still exploring. > > For current directory, JRuby maintains that separately and any calls > that are sensitive to cwd are modified to use this per-runtime value. > Because we share the JVM, we can't safely chdir the entire process, so > this was really the only way. Shyouhei's branch works as the same. % ./ruby-mvm -e 'p Dir.pwd; 2.times { RubyVM.new("ruby", "-e", "Dir.chdir %q(.ext); p Dir.pwd").start }; sleep 1' "/home/nahi/git/shyouhei-ruby/build" "/home/nahi/git/shyouhei-ruby/build/.ext" "/home/nahi/git/shyouhei-ruby/build/.ext" https://github.com/shyouhei/ruby/tree/shyouhei%2Fmvm-topicalization Shyouhei's branch introduced per VM initialization (InitVM_*) and some ext/* extensions changed to use it. The remaining issue is that there should be more exts which depends on C's static thing. libssl has global error stack so ext/openssl must handle this... Is it worth trying? Regards, // NaHi