(2013/05/06 11:50), Tanaka Akira wrote:
> Is it ABI compatible?

(1) ABI compatbible for most of part.

You don't need to consider if you don't

(2) ABI incompatibility fo exceptional C-exts

If C api manages RBASIC(obj)->klass directly, it is incompatibile (WB is
needed, if assigned value is new and obj is old). However, I don't think
no such C-exts.

Only one example "C-exts manipulate RBASIC(obj)->klass directly" is, to
hide klass to make it internal object and restore it (restore to normal
object). We will provide new C api to do it.

Also, C-exts manipulate RArray's ptr directly without RARRAY_PTR(), it
should be brokne. However, I believe no such exts (because of embeded
array feature introducing from 1.9) and everyone use RARRAY_PTR().

Another issue is flags. RGenGC patch uses two reserved flag (KEEP_WB and
OLDGEN). However, I believe no one use them (and C-exts which use these
flags should be re-considered).

So, answer is:
 (a) ABI compatibility will be braek
 (b) But normal C-exts can work without any modification
     (and most of case, without any re-build)
 (c) If modification needed, then (C level) compile erros will occure

-- 
// SASADA Koichi at atdot dot net