-
Notifications
You must be signed in to change notification settings - Fork 0
Ruby1_9Support
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.
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.
Here's the status of Ruby 1.9 feature support and work remaining:
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
- missing default_internal/default_external (JRUBY-3433)
- missing system encoding guess (JRUBY-3434)
- 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?
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 ?