Skip to content
looselytyped edited this page Jan 6, 2011 · 8 revisions

JRuby 1.2 will be the first release of JRuby to officially include large portions of Ruby 1.9's feature set. There's a lot of work to do, however, and we probably won't get it all done in time for the final 1.2 release. There are two areas people really could pitch in: writing specs and helping with implementation.

Table of Contents

Writing Specs

The new features in Ruby 1.9 are very lightly specified. The RubySpec project has some specs, but there's a lot missing, especially in API areas like String M17N support.

If you're interested in contributing RubySpecs, check out http://www.rubyspec.org for information on how to help out.

Implementation

Here's the status of Ruby 1.9 feature support and work remaining:

Done

These are done but need more testing. Where noted, pieces are missing.

  • Array
    • missing encoding aware pack (JRUBY-3426)
    • sort should obey modified Fixnum and String class (but 1.9 still optimizes these case) (JRUBY-3427)
  • Hash
  • String
    • missing encoding aware % (JRUBY-3428), unpack (JRUBY-3429), crypt (JRUBY-3430)
    • missing encode/decode (via Encoding::Converter) (JRUBY-3431)
    • possible gotchas with to_sym
    • String#hash is not encoding aware yet (JRUBY-3432)
    • string constructions in multiple places in core should taint/set coderanges and encoding
  • Symbol
    • intern gotchas due to encoding information in symbols (needs to be done)
    • might loose encodings in some cases
  • Regexp
  • Encoding
  • Enumerable
  • Enumerator
    • missing next/rewind/with_index (fibers) (JRUBY-3435)
  • Complex
  • Rational
  • Numeric
  • Integer
  • Fixnum
  • Float
  • Range
  • Struct
  • Kernel (mostly)
  • some (most?) of Object, Method, Module, Class
  • Thread?
  • Fiber?

Missing

These are entire areas that need to be worked on.

  • Encoding::Converter
  • Yielder/Generator
  • key Marshal changes
  • cli options
  • some RubyBignum changes
  • possible other changes in Numerics
  • changes in Dir/IO/File (some obvious things are done, like enumeratorize)
  • some changes in Math
  • encoding information in exception messages (now passed via java String)
  • BigDecimal changes ?

Clone this wiki locally