I realized today I never described how JRuby has been maintaining its copy of the Ruby stdlib. This email will do that.
JRuby uses MRI's stdlib almost completely intact, but there are some differences. For example: * timeout.rb is replaced with a native version that uses timed executor pools from the JDK * weakref.rb is replaced with a native version that uses JVM weak references * rdoc/ri has modifications to support printing info on Java classes/methods * IRB has modifications to allow running from within an archive * 1.9 mode uses a copy of RubyGems shared with 1.8 (and will be at RubyGems 1.4.1 for JRuby 1.6) ...and so on. In order to maintain these differences but still stay in sync with upstream changes, we opted to maintain a "fork" of the 1.8.7 and 1.9.2 stdlib directly in-place in a "fork" of MRI's github repo: https://github.com/jruby/ruby This is forked from ruby/ruby, and has the following two branches of interest: https://github.com/jruby/ruby/tree/jruby-ruby_1_8_7 https://github.com/jruby/ruby/tree/jruby-ruby_1_9_2 Rather than maintaining our own copy of stdlib within the JRuby repository, we instead overlay our changes directly atop MRI's layout in an easily-mergeable repository. Then we use a script to aggregate the modified stdlib files into JRuby's stdlib location. If at any time ruby-core (or other curious) folks would like to see what changes we have made to our copy of stdlib, these branches should be directly comparable to those in github.com/ruby/ruby for the same version numbers. Please feel free to ask us about any changes we have made. Note: Not all files have been simply modified or removed; some, like generator.rb, have been completely rewritten with JRuby's VM requirements in mind. If you see something missing and want to know why, just ask. - Charlie --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email