From: "Haase, Konstantin" Date: 2011-10-07T15:05:04+09:00 Subject: [ruby-core:40019] Re: 2.0 feature questionnaire On Oct 6, 2011, at 23:02 , Urabe Shyouhei wrote: > (10/07/2011 02:19 PM), Evan Phoenix wrote: >>> (10/02/2011 05:34 PM), Jeremy Kemper wrote: >>>>> |3. MVM, with inter-vm message passing. >>>>> >>>>> I have not decided yet, but since MVM requires incompatible changes to >>>>> C API, so we might pend it to Ruby 3.0. >>>> >>>> I understand @shyouhei's branch is backward compatible for extensions >>>> that don't use MVM features. >>> >> >> I did quite of work into getting MVM working on Rubinius and ended up >> stopping development because I can't see how you can rectify it with how >> most C extensions are written. >> >> Specifically, most extensions use static VALUEs and IDs variables. To make >> matters worse, extensions commonly store VALUE's for Modules and Classes in >> static variables without calling rb_global_variable() (This is itself a >> latent bug that almost no one hits because how the MRI GC works). >> >> Any C extension that uses any static VALUE or ID will crash the whole >> process very quickly, meaning that most existing C extensions are not >> compatible with MVM UNLESS they are recoded to remove static VALUEs and IDs. >> >> I haven't seen @shoyuhei's branch in a while, how is this issue dealt >> with? > > No, it isn't. MVM-aware extensions shall obey the MVM-safe APIs. > > But MVM-unaware extensions are OK if and only if the whole ruby > process don't use MVM features at all. And even if you don't > touch MVM things, binary compatibility is broken. Recompilation > is mandatory for everything. > So, MVM will not be part of 2.0? Cause Matz said breaking even binary compatibility would not be an option...