From: SASADA Koichi Date: 2013-05-06T15:33:21+09:00 Subject: [ruby-core:54816] Re: [ruby-trunk - Feature #8339] Introducing Geneartional Garbage Collection for CRuby/MRI (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