[ANN] JRuby 0.8.2 released

JRuby is a project to provide a Java implementation of the Ruby language and
interpreter.

JRuby 0.8.2 has been released. This version is a large collection of
fixes and some refactoring.

Thanks to all people on the project and mailing lists for making jruby a much
better piece of software.

···

========================================================================
All Tests Test Results V0.3.5

                 Name OK? Tests Asserts Failures Errors
            ------------------------------------------------------------
    Rubicon::TestCase 1 0
        AccessControl 4 18
                Array 69 587
               Arrays 1 0
           Assignment 5 75
     BasicExpressions 4 15
               Bignum 30 1598
              Binding 1 0
          BlocksProcs 4 61
   BooleanExpressions 2 2
           CatchThrow 2 1
                Class 6 16
              Classes 1 0
           Comparable 8 26
            Constants 3 15
         Continuation FAIL 6 0 5
                  Dir 25 163
           Enumerable FAIL 24 192 2
                 Eval FAIL 9 20 1 4
            Exception 7 16
           Exceptions 7 6
           FalseClass 7 17
                 File FAIL 37 275 2 23
             FileTest FAIL 5 20 5
           File__Stat FAIL 33 132 33
               Fixnum 36 414
                 Flip FAIL 7 21 1
                Float 29 178
               Floats 4 34
                   GC 5 1
                 Hash 44 296
               Hashes 1 0
                   IO FAIL 54 1189 1 14
             IfUnless 2 2
              Integer 10 347
             Integers 1 0
           Invocation FAIL 6 5 4
           KanjiIndex FAIL 21 63 14
               Kernel FAIL 110 1117 9 16
            LoopStuff 16 66
              Marshal 7 31
            MatchData 12 18
                 Math 3 62
               Method 5 11
              Methods 3 6
               Module FAIL 27 118 5
        ModulePrivate 16 41
              Modules 1 0
                Names 1 0
             NilClass 9 21
              Numeric 11 21
               Object 3 11
          ObjectSpace FAIL 5 3 2
                 Pack 14 34
  PredefinedVariables 2 3
                 Proc 5 5
                Range FAIL 16 158 3 1
               Ranges 1 0
               Regexp 15 38
   RegularExpressions FAIL 4 26 1
                Scope FAIL 13 19 2
         SourceLayout 8 23
               String FAIL 86 1189 7 5
              Strings 6 27
               Struct 12 47
          Struct__Tms FAIL 2 0 2
               Symbol FAIL 13 28 1 2
              Symbols 1 0
               Thread FAIL 33 74 5 6
          ThreadGroup 5 7
                 Time FAIL 55 1531 6 9
            TrueClass 7 17

         All 72 files FAIL 1048 10557 63 128

User-visible Changes:
- Math only defined its functions only as singleton methods
- Fixed most numerical conversion protocols (e.g. callCoerced and to_int)
- Fixes some concurrency issues in method cache and object space collection
- StringIO now passes all of C-Ruby sources unit tests
- Allow Class.new to recieve a block
- Add IO.binmode
- file.read() on empty file returns ""
- File test functions do not work properly if cwd changes
- Add missing function File#read
- Allow expandPath to get a named users home directory if possible
- Do not let ReturnJump bubble out to caller (and actually return in eval())
- Add digest support (for md5, sha1, and sha2)
- If file is read-only, Java does not like opening a random-access file "rw"
- Allow split to work with zero-width positive lookahead regexps
- Make Dir#glob work with paths embedded in {}'s
- Dir#rmdir now throws ENOENT
- Dir#mkdir now throws EEXIST
- ENV['HOME'] added
- ENV global moved to better location
- Dir#chdir can have no arg version now
- Dir#chdir now chdirs in the correct location
- File#expand_path now understands '~'
- Object#methods now returns proper public methods
- Fix classMaps of methods being modified during yield (which is bad when that method is called by more than one thread at a time)
- RubyArray now implements java.util.List
- RubyHash now implements java.util.Map
- Fcntl expected as a namespace even if a particular fcntl call does not exist.
- Inner classes or modules defined outside inner class/module were getting defined in wrong place (class F::G; end)
- Fix concurrency issue by synchronizing some Stacks
- Fix dead-lock where dying thread appears to be alive and a second thread waits for the dying thread to yield (at which time it is already dead)
- Move abstract stack users a few steps closer java.util.Stack contract
- new method cache implementation
- Object.public_methods should be alias to Object.methods
- to_proc.call not returning an array when an array result
- break from blocks can sometimes not throw LocalJumpError
- some miscellaneous refactoring
- Creating extra block when we shouldn't
- Java List objects can now use collect without throwing exception
- Remove 'construct' from Enumerable
- Smaller block/proc fixes
- Calling super from a module method causes a NullPointerException (should call Object method)
- method_missing should sometimes throw NameError
- Our special cases for nil,true,and false in method_missing is outdated
- Remove secondary data store for core classes. Also removed optional ways of getting a reference to said classes.
- Range#new did not exist
- Ruby modules embedded in jar files were not loading right on windows
- Remove finalize() from RubyIO since it should be unneeded and sometimes could close embedders System.out, System.err, and System.in
- Invalid glob expressions caused crash (e.g. Dir.glob("{"))
- Change Dir.pos= to return Fixnum instead of self
- Implement Dir.path
- Enumerable#detect and find should return value of failure proc instead of nil
- A File mode with File::CREAT is a writeable mode
- clone of a singleton instance was failing because we had a check failing to account for differing metaclass in new clone
- Add Class.allocate
- $! was only getting set in rescue versus when raised
- Add Module#included (1.8 method)

--
+ http://www.tc.umn.edu/~enebo +---- mailto:enebo@acm.org ----+

Thomas E Enebo, Protagonist | "Luck favors the prepared |
                             > mind." -Louis Pasteur |

Excellent news and excellent work!

Its jython and jruby against the Cyclons, er Staticons... :slight_smile:

Cool, I will give it a try.

You know what would be interesting ? A benchmark against Ruby 1.8.2.