Project

General

Profile

Feature #15743

Updated by Eregon (Benoit Daloze) over 5 years ago

My understanding is that `RubyVM` is supposed to only exist on MRI/CRuby, and not on any other Ruby implementation. 
 In fact, almost all features under `RubyVM` are not realistically implementable on other major Ruby implementations (JRuby, TruffleRuby, Rubinius). 

 Unfortunately, the name doesn't reflect that it is specific to CRuby, e.g., JRuby/TruffleRuby/Rubinius are also "Ruby VMs". 
 And as a result it is not clear for many Ruby users that RubyVM is CRuby-specific. 

 The documentation is also unclear: 
 ``` 
 The RubyVM module provides some access to Ruby internals. This module is 
 for very limited purposes, such as debugging, prototyping, and research. 
  Normal users must not use it. 
 ``` 

 So I propose to rename RubyVM to CRuby. 
 That way, it is clear for everyone that this module is CRuby-specific. 
 It's also consistent with the JRuby module, the TruffleRuby module and the Rubinius module. 

 Proposed migration path: 

 * Introduce CRuby as an alias of RubyVM on `trunk`, and deprecate the RubyVM constant on `trunk` (for 2.7). the MRI 2.7 release). 
 * Remove `RubyVM` in Ruby 3.0. 

 What do you think? 

 cc @ko1 @k0kubun @headius

Back