Ruby言語処理系の堅牢化
The Ruby implementation, which is also known as CRuby, is widely used for many including large scale industrial systems. As an open source project, many people maintain the implementation in order to make the language more expressive, faster, and more robust. This project pursuits tooling and implementation techniques that make VM-based language implementations, in particular CRuby, more robust.
Our current target is the coordination with the memory management system in CRuby. In CRuby, the VM core (i.e., the mutator) needs to annotate its C code to expose live references to the garbage collector. Those annotations are however easy to be missed by the language developers, which has been causing memory bugs that are not easy to discover and to be fixed. We are developing a static analyzer that investigates into CRuby’s C code and checks if the reference manipulations are correctly annotated.