[ANN] JRuby 0.8.1 Released

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

Jruby 0.8.1 has been released. This version is a smattering of smaller
fixes. Some more visible changes include:

- Some java interfaces are being adorned to quack like some ruby counterparts
  (for example, java.util.List includes Enumerable and '<<' method)
- Java bean properties can be referred to by name (a.getPhone can be a.phone)
- Several constant scoping issues have been resolved

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

Here are the results against rubicon:

···

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

                 Name OK? Tests Asserts Failures Errors
            ------------------------------------------------------------
    Rubicon::TestCase 1 5
        AccessControl 3 18
                Array 69 614
               Arrays 1 0
           Assignment 4 75
     BasicExpressions 3 15
               Bignum 29 1598
              Binding 1 0
          BlocksProcs 3 61
   BooleanExpressions 1 2
           CatchThrow 1 1
                Class 5 16
              Classes 1 5
           Comparable 7 26
            Constants 3 20
         Continuation FAIL 5 0 5
                  Dir FAIL 21 98 1
           Enumerable FAIL 23 156 2
                 Eval FAIL 9 25 2 4
            Exception 6 16
           Exceptions 6 6
           FalseClass 6 17
                 File FAIL 33 252 2 22
             FileTest FAIL 4 16 4
           File__Stat FAIL 32 128 32
               Fixnum 35 414
                 Flip FAIL 7 26 1
                Float 28 178
               Floats 4 39
                   GC 4 1
                 Hash 44 296
               Hashes 1 5
                   IO FAIL 53 1189 1 14
             IfUnless 1 2
              Integer 9 347
             Integers 1 5
           Invocation FAIL 6 10 4
           KanjiIndex FAIL 20 63 14
               Kernel FAIL 109 8822 10 16
            LoopStuff 16 71
              Marshal 6 31
            MatchData 11 18
                 Math 2 62
               Method 4 11
              Methods 3 11
               Module 25 101
        ModulePrivate 15 41
              Modules 1 5
                Names 1 5
             NilClass 8 21
              Numeric 10 21
               Object 2 11
          ObjectSpace FAIL 4 3 2
  PredefinedVariables 2 8
                 Proc 4 5
                Range FAIL 14 128 2 1
               Ranges 1 5
               Regexp 14 38
   RegularExpressions FAIL 4 31 1
                Scope FAIL 13 24 2
         SourceLayout 8 28
               String FAIL 87 1191 5 2
              Strings 6 32
               Struct 11 47
          Struct__Tms FAIL 1 0 1
               Symbol 8 20
              Symbols 1 5
               Thread FAIL 32 74 5 6
          ThreadGroup 4 7
                 Time FAIL 41 1796 2
            TrueClass 6 17

         All 71 files FAIL 964 18435 50 113

Changes since 0.8.0:

- Constants assigned nil will not throw an error
- Regexp embedded comments work now
- Wrong arity was not always throwing an error for methods, procs
- Method and UnboundMethod were mistakenly named RubyMethod and RubyUnboundMethod
- Fix 'def f; yield; end; f {|*a| p a == }'
- Fixes 'x, (y, z) = 1, 2, 3; test_ok([1,2,nil] == [x,y,z])' and variants
- Kernel#exit does not print stack trace on exit
- Kernel#exit now returns 1 by default and it properly handles a boolean arg
- Change Array.[m..n] where m > n now returns
- Hash#default= should override constructor provided block
- Procs sometimes had returned to wrong location
- Java integration features (<=> for Comparable, etc...)
- Support def foo(*); end
- Missing version spec for java 1.4 in ant java docs task (thanks to Kazuhiro Oinuma for noticing this)
- /x\d\d? in regexps not supported
- Support $: in jar files
- Make 'require' not include a directory as if it were a file
- Add file? to File, FileTest, File::Stat
- File#basename converts arguments via to_str
- Fix File#basename to allow suffix '.*' and to remove trailing slashes
- File#truncate and File.truncate should convert numeric argument via to_int
- File#dirname should convert string via to_str
- Fix ::CONSTANT lookup (colon3)
- Fix Duplicate named constants in different namespaces from c- Constants included in Modules should be found by includer
- Enumerable#each_with_index should return self
- File::Stat was not defined under File and was not called Stat
- $SAFE=3; $SAFE=2 yield java exception and not ruby one
- Add Proc#to_proc and make dup work for blocks
- Support java bean properties better in Java support (uses Introspector)
- Change LoadService to allow jars to find subdirs within classpath
- File::Stat not under 'File' and is not called 'Stat'
- Add missing Fixnum.div
- Add support for $~
- java exceptions can be rescued

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

Thomas E Enebo, Protagonist | "A word is worth a thousand |
                             > pictures" -Bruce Tognazzini |