Blog from February, 2008

JRuby 1.1RC2 Released

The JRuby community is pleased to announce the release of JRuby 1.1 RC 2


JRuby 1.1RC2 is the second release candidate of JRuby 1.1.  JRuby 1.1
represents a concerted focus on speed and refinement.  Ruby code can
completely compile in an Ahead Of Time (AOT) or Just In Time (JIT) mode;
yielding a faster Ruby!  It also uses less memory than our previous releases.

We need people to download JRuby 1.1RC2 and give us feedback.  Test your
applications and help us make JRuby 1.1 a great release.

- 260 issues resolved since JRuby 1.1RC1
- Large IO refactoring
- Memory improvements for JIT'd methods:
  - Control total number of methods JIT'd
  - Support a JIT cache between runtimes to return permgen
  - Reduce codesize of generated methods (50-70% reduction)

Vladimir Sizikov has been added as a core committer.  His amazing work
on fixing rubyspec failures has made him a welcome addition to the team.

We want to thank all the people who gave us feedback this last release cycle.
We ended up resolving a tremendous number of issues in a short period of time.

Issues fixed since 1.1RC1:
JRUBY-251       Concurrency Issue with IRuby.evalScript(), require etc.
JRUBY-334     Process module does not implement some methods
JRUBY-781     Can't reference java classes that start with a lower case character
JRUBY-864     ant test does not run successfully with thread pooling enabled
JRUBY-867     Iconv character set option //translit is not supported
JRUBY-919     autoload?, autoload, const_defined? do not work well with Colon2's (e.g. autoload Object::Foo, 'blah.rb')
JRUBY-939     Improve automatic conversion between JRuby BigDecimal and java.math.BigDecimal
JRUBY-1003     Rubinius string_spec failures
JRUBY-1047     IO.for_fd missing
JRUBY-1050     If there is a file named date.rb in the same dir that contains a file that requires 'yaml' an exception is thrown when you run the file requiring 'yaml'
JRUBY-1057     Rubinius core/exception_spec failures
JRUBY-1064     Rubinius core/object_spec failures
JRUBY-1067     Rubinius core/thread_spec failures
JRUBY-1068     Rubinius core/time_spec failures
JRUBY-1103     Settting -Xmx and -Xss through environment variable would be more convient
JRUBY-1106     Process.euid() not implemented, causes MailFactory failure
JRUBY-1114     Exception when running instance_eval on a Java Object
JRUBY-1124     Import broken with Rake
JRUBY-1128     Regular expression bug
JRUBY-1142     #! shebang in cygwin uses cygwin paths
JRUBY-1145     Testcase: testBasicStringScalarLoad(org.jvyamlb.YAMLLoadTest): FAILED
JRUBY-1148     Array#== doesn't use custom to_ary method for RHS arguments
JRUBY-1151     BigDecimal to_s displays incorrect number when number has no whole part
JRUBY-1188     JRuby base64 encoding methods appear as both public and private methods.
JRUBY-1214     The behaviour of File.flock is not same with C Ruby
JRUBY-1222     Net::HTTP response error using SSL connection
JRUBY-1272     UNIXSocket not available on JRuby
JRUBY-1277     Mongrel clashes with JVM for the right to handle SIGUSR1
JRUBY-1279     Serialization/Persistence Fix
JRUBY-1294     crash starting jar-console on trunk, r4214
JRUBY-1304     Problem talking to processes. JRuby's read hangs.
JRUBY-1358     Failure in ruby_test String#aset test
JRUBY-1361     Failure in ruby_test Numeric#to_int test
JRUBY-1362     Failure in ruby_test Numeric#truncate test
JRUBY-1371     testTime.rb doesn't work correctly on some configuration
JRUBY-1373     Cannot run JRuby through 'java' when having space in path in JRuby's home
JRUBY-1397     testUTF8Regex.rb doesn't even run anymore
JRUBY-1399     Reflection-based execution is totally broken
JRUBY-1402     spurious warning messages when yaml is analized with debug option.
JRUBY-1414     ArgumentError using to_time string conversion
JRUBY-1433     File::Stat.uid needed for rubyzip
JRUBY-1455     Cloning ARGF in IRB results in a java.lang.ClassCastException
JRUBY-1471     YAML dumping or loading is mucking up object IDs
JRUBY-1485     Some names not being interned by parser / eval
JRUBY-1493     Methods do not always have the right line number in the AST
JRUBY-1495     When a negative Float is YAML::dump'ed, the negative sign is lost.
JRUBY-1496     Update to 1.8.6 stdlib
JRUBY-1501     Update to current RubyGems, hopefully the long-awaited version currently in beta
JRUBY-1502     Trap not returning a proc as the previous handler
JRUBY-1507     Ruby String aset ([]=) with 3 args does not work is start index is one past string length
JRUBY-1509     0o00 is broken
JRUBY-1511     bad shebang line in gem
JRUBY-1516     FileTest#chardev? is not currently implemented.
JRUBY-1517     Embedded null characters in source cause premature EOF
JRUBY-1524     Dynamic classes/classloaders may not be using the appropriate containing classloader, resulting in permgen leaks
JRUBY-1526     NullPointerException when deriving non-existant (lowercase) java-class
JRUBY-1530     Some conflict when using JSON Pure to create a JSON string from a Hash with non-ASCII character
JRUBY-1532     String#chomp misbehaving in 1.1b1
JRUBY-1534     ThreadLibrary Queue#num_waiting and Zlib to_io method not bound correctly.
JRUBY-1535     <clinit> must be generated with static modifier
JRUBY-1536     Giving YAML.load a non-IO object raises a Java error instead of a Ruby error
JRUBY-1537     Sun JVM-specific signal handler should be used only when available
JRUBY-1540 does not give the correct PID
JRUBY-1545     Trying to extend an interface (e.g. class Foo < Interface) NPEs and gives no clue
JRUBY-1552     /o regexp modifier (Ruby compatibility)
JRUBY-1553     Generator sometimes hangs up
JRUBY-1554 should not allow negative
JRUBY-1558     RubyBigDecimal does not dump/load properly when Marshalling
JRUBY-1560     ArrayIndexOutOfBoundsException -1 in RubyString.split(RubyString)
JRUBY-1563     RubyYaccLexer not returning EOF properly
JRUBY-1564     AbstractVisitor doesn't provide empty implementation for visitPreExeNode
JRUBY-1567     StringScanner missing #get_byte
JRUBY-1568     File.symlink shells out to /bin/ln unnecessarily
JRUBY-1571     Calling map on string causes java.lang.ArrayIndexOutOfBoundsException
JRUBY-1581     Signal#trap doesn't handle failure of trapping gracefully.
JRUBY-1585     Incompatible behavior in Comparable#==
JRUBY-1586     Array#initialize_copy is public, but should not be
JRUBY-1589     Float#coerce fails when invoked with String argument
JRUBY-1590     Completely wrong Float::MAX_10_EXP value (negative)
JRUBY-1593     Range#step produces wrong error message
JRUBY-1594     Range#new breaks when 3rd parameter is not boolean
JRUBY-1596     Range#eql? works incorrectly for char ranges
JRUBY-1597     Struct#new behavior differs from MRI
JRUBY-1598     Struct#select allows for non-block arguments
JRUBY-1599     Symbol#to_int should produce warning in verbose mode
JRUBY-1600     Serious incompatibility in Thread#join(limit)
JRUBY-1601     JRuby incorrectly/incompatibly handles "TZ" environment variable (Time spec failures)
JRUBY-1605     Hash#[]= and Hash#store don't follow dup semantics for keys
JRUBY-1607     File#truncate works incorretly deleting entire file content
JRUBY-1610     DynamicScope could benefit from some custom impls that use Java fields rather than an array
JRUBY-1611     Variable access with depth > 0 should be more static
JRUBY-1612     File#truncate creates a new file if the file doesn't exist
JRUBY-1614 should throw Errno::EACCES when opening non-permitted file
JRUBY-1617     RubyZip Zip::ZipFile#read raises TypeError under JRuby; does not do so under MRI
JRUBY-1618     rescue doesn't work with SystemExit exceptions (Regression)
JRUBY-1619 throws TypeError
JRUBY-1625     File.fnmatch works incorrectly with case sensitivity
JRUBY-1626     IO.popen("ruby") hangs
JRUBY-1635     Bug in generators
JRUBY-1640     Generator created from empty Enumarable, just hangs during construction
JRUBY-1643 can't handle blocks, and its yield method works incorrectly
JRUBY-1645     Process.kill support through JNA
JRUBY-1652     Time#gmt_offset returns incorrect values for DST
JRUBY-1653     JRuby incorrectly calculates / and divmod against Rational number
JRUBY-1655     JRuby fails built-in unit tests from time.rb lib
JRUBY-1658     Float's multiplication is incorrect when used with non-built-in type (like Rational)
JRUBY-1659     YAML.load can't handle some valid input
JRUBY-1661     JRuby 10x slower than Ruby on "Wide Finder" script
JRUBY-1663     IO.each_line incorrectly reads empty lines
JRUBY-1664 after ungetc always returns nil
JRUBY-1665     Unhandled Java exception from jMongrel running Rails
JRUBY-1669     IO.puts doesn't follow the specification
JRUBY-1671     jruby bash script fails with bash 2.03 (Solaris 8)
JRUBY-1675     Rails hangs occasionally with JRuby
JRUBY-1682     JRuby files should work with limited functionality within Jar files
JRUBY-1684     Numerous StringIO spec test failures
JRUBY-1686     OutOfMemoryException while reading from a FIFO
JRUBY-1689     Tempfile class random behavior and "Bad file descriptor (Errno::EBADF)" exception
JRUBY-1696     test_dir fails under Windows
JRUBY-1700     rio gem problems
JRUBY-1702     NegativeArraySizeException starting JIRB (ByteList/RubyString)
JRUBY-1704     Broken stdin ( java.lang.OutOfMemoryError ) in Linux environment
JRUBY-1706     [PATCH] Bad format for "frozen" error messages
JRUBY-1708     Compiler blows up with "NoVarsDynamicScope cannot be grown; use ManyVarsDynamicScope"
JRUBY-1715     Incompatible behavior for ||= in Hashes
JRUBY-1723     String#initialize and String#replace on frozen strings behave incompatibly with MRI
JRUBY-1736     Jruby on rails application crashes when starting mongrel
JRUBY-1769     Constructing a transient singleton class should hold the receiver until complete
JRUBY-1776     Exception when installing mongrel gem
JRUBY-1784     The JNA library bundled with JRuby is built against glibc 2.4+
JRUBY-1798     JRuby JIT should have an upper limit on how many methods can be compiled, to avoid eating too much permgen
JRUBY-1808     uninitialized constant OpenSSL::X509::Store
JRUBY-1810     JIT should attempt to locate a previously-compiled method of the same name and position before creating a new one
JRUBY-1821     jruby-webstart integration: open-uri (actually net/http.rb) causes
JRUBY-1822     jruby-webstart integration: copy and paste via system clipboard in jirb.jnlp does not work
JRUBY-1865     java.lang.LinkageError: attempted duplicate class definition for name: "append_features28277251_29404618Invokerjava_class__8Fixed0"
JRUBY-1874     HttpOutput flush doesn't send headers
JRUBY-1879     Random Empty Response with Rails 2.0
JRUBY-1891     JRUBY-1890 Cloned IO objects can be closed independently
JRUBY-1892     JRUBY-1890 pipes should not flush write to read when not in sync mode
JRUBY-1893     JRUBY-1890 Missing method: File#isatty
JRUBY-1894     JRUBY-1890 Missing flush after with a block?
JRUBY-1896     JRUBY-1890 Missing method: IO#stat
JRUBY-1902     AOT compiler does not produce usable output
JRUBY-1907     Monitor synchronize hangs
JRUBY-1908     IO#reopen with File with File::CREAT mode fails
JRUBY-1909     IO#reopen should be able to handle argument of arbitrary type if it responds to "to_io"
JRUBY-1910     IO#reopen incorrectly handles self as an argument
JRUBY-1911     YAML short-hand hashes cause the parser to crash
JRUBY-1915     Failure to load Yaml
JRUBY-1917     File#link and File#symlink should not accept non-string arguments
JRUBY-1918     File#link and File#symlink never report any errors
JRUBY-1919     File#symlink? returns false on broken symlinks
JRUBY-1921     File#link and File#symlink break hard on Windows
JRUBY-1922     Pathing issues (pathname? realpath?) on Windows with GlassFish gem
JRUBY-1923     STDIN not working under Kernel.system
JRUBY-1925     Incompatibility: JRuby 1.1 can't run Glassfish gem
JRUBY-1926 doesn't accept Pathname as its argument
JRUBY-1927     File.lstat on MS Windows should be the same as File.stat
JRUBY-1928     FileUtils.fu_windows? doesn't return true
JRUBY-1933     NullPointerException in
JRUBY-1934     divmod with 0.0 argument should raise FloatDomainError: NaN
JRUBY-1939     UnsatisfiedLinkError: Native Library libjnidispatch.jnilib already loaded in another classloader
JRUBY-1940     Fixnum#+ and Fixnum#* return Fixnum in cases when Bignum is needed
JRUBY-1941     ThreadLocal caches for regexp in RubyString and joni cause classloader leaks in app servers
JRUBY-1943     FileUtils.cp_r incorrectly produces "same file" error when files to be copied already exist in destination directory
JRUBY-1945     The "y" or "-include-dependencies" is not needed anymore with the most recent rubygems.
JRUBY-1946     -0 flag not supported
JRUBY-1947     -C flag not supported
JRUBY-1948     -c flag not supported
JRUBY-1952     -T flag not supported
JRUBY-1953     -W flag not supported
JRUBY-1955     Lucene index search causes major memory bloat + slowdown in 1.1RC1, but not 1.1b1
JRUBY-1956     Class#inherited gets invoked regardless of visibility
JRUBY-1957     IO#dup behavior shows channels should be loosely held by IO objects
JRUBY-1959     Rubyspecs failures for Array#pack with 'ils' patterns
JRUBY-1963     gem install activerecord-jdbc-adapter hangs while installing ri doc on clean svn co and build of JRuby r5607
JRUBY-1965     Problem with glob test running under bamboo
JRUBY-1966     AR models backed by views fail to work
JRUBY-1970 has low precision
JRUBY-1971     Time#getgm and Time#getlocal work incorrectly when usecs present
JRUBY-1979     NullPointerException when tracing script requiring java module
JRUBY-1980     Marshal#dump incorrerctly serializes objects that respond to _dump.
JRUBY-1983     File.utime and File.mtime
JRUBY-1984 should allow a single port parameter
JRUBY-1985     TCPServer.accept should set thread status to 'sleep' before waiting
JRUBY-1986     String extracted with a regular expression cannot be used as pattern in File.fnmatch
JRUBY-1987     dup'ed stream reopened by stream from file descriptor appears to get lost
JRUBY-1988     Kernel#exec should return subprocess exit value and immediately bubble out of caller
JRUBY-1989     Can't create Zip files using RubyZip
JRUBY-1990     File.dirname, and File.symlink failed rubinius spec test
JRUBY-1992     Date::Infinity handling is incorrect
JRUBY-1993     ObjectSpace#define_finalizer behavior does not match MRI
JRUBY-1994     higher javasupport "threads step on each other" test now failing regularly
JRUBY-1995     Warnings from redefining Java classes is annoying
JRUBY-1998     Regression: JRuby prints Exception in thread "main" when it shouldn't
JRUBY-1999     Time#strftime week of year is broken on some systems
JRUBY-2000     IO#tty? returns false for "/dev/tty"
JRUBY-2001     Kernel#sprintf returns result in incorrect register with 'x' pattern
JRUBY-2002     rexml/document references undefined variable
JRUBY-2004     Const definition on non-class/module breaks JRuby hard
JRUBY-2005     Buffered writes in IOHandlerNio (sockets, stdio, other non-file IO) are corrupt
JRUBY-2009     -S script does not set $0 to script launched
JRUBY-2010     Errno errors should allow no-arg constructor
JRUBY-2013     YAML doesn't like serializing ActiveRecord has many associations
JRUBY-2017     Dir.chdir raises a SystemCallError if the original directory no longer exists
JRUBY-2019     YAML.tagged_classes retuns very few items compared to MRI
JRUBY-2021     Thread Problem: Exception in thread ... attempted duplicate class definition..
JRUBY-2023     Serious NIO-multithreading breakage in print/puts on Windows
JRUBY-2024     IO#open, IO#popen, File#open with block should not raise error when io is closed inside the block
JRUBY-2025     jirb_swing not working (r5707), regression in r5665
JRUBY-2026     Update retroweaver jars to 2.0.3
JRUBY-2030     Attempt to load broken Java class breaks JRuby
JRUBY-2031     SystemCallErorr rubyspec regressions and new specs failures
JRUBY-2033     Attribute assignment is twice as slow as MRI
JRUBY-2034     loading a gem (hpricot) which requires a jar not working in webstart with jrubygems
JRUBY-2036     Spec failure in TCPSocket on Mac
JRUBY-2037     String#unpack with "Q/q" patterns always returns Bignums even for small values
JRUBY-2038     IO#seek/pos=, StringIO#seek with non-Fixnum args break JRuby
JRUBY-2039     Various socket spec failures
JRUBY-2043     Temp local variable indices overwriting normal local variables in stack and boxed variable compilers
JRUBY-2044     IO#write breaks JRuby when writing object with special to_s implementation
JRUBY-2045     IO#write should not really check if IO is writable if nothing to write (e.g. empty string)
JRUBY-2046     Ranges in conditions are broken
JRUBY-2050     List module does not allow [Range] and [Num, Num] getters
JRUBY-2052     FileUtils.mkdir_p is broken on Windows
JRUBY-2054     File#join can't handle recursive arrays
JRUBY-2055     Time - () explodes
JRUBY-2056     Time#<=> behavior is incompatible with MRI
JRUBY-2057     Array#join can't handle nested recursive arrays
JRUBY-2060     Eval positioning information from binding is incorrect again.
JRUBY-2061     JRuby should support Unix Domain Sockets
JRUBY-2062     Add ids and convenient data to SyntaxException and IRubyWarning interface to make their life easier
JRUBY-2064     Array.shift leaks
JRUBY-2066     RubyIO and RubyFile have bad conditional translating /dev/null to Windows NUL: device.
JRUBY-2067     AOT Compiler does not Function
JRUBY-2068     rbconfig missing localstatedir
JRUBY-2069     Instantiating Java subclasses is excrutiatingly slow
JRUBY-2070     IO#syswrite can't write non-string objects
JRUBY-2073     IO#foreach failures and crashes with rubyspecs
JRUBY-2075     IO#gets failures with latest rubyspecs (tainting, lineno, $.)
JRUBY-2076     RubyBigDecimal.getValue() needed
JRUBY-2077     File#lineno= breaks JRuby if non-integer argument supplied
JRUBY-2081     Gem server fails
JRUBY-2083     Yaml parsing error with application in JRuby (war format of application)
JRUBY-2084     RubyUNIXSocket read() cases IllegalArgumentException
JRUBY-2085     visibilty faiure on class method defined with 'class << self'
JRUBY-2088     Using the simple package-class syntax for JI gives unintuitive answers when giving arguments
JRUBY-2090     Passing readonly mode to gets File not found error.
JRUBY-2092     Upgrade to jline-0.9.93 fixes 64-bit Windows jirb.
JRUBY-2095     Test failure in run-junit-precompiled (trunk, WinXp)
JRUBY-2096     File#open should not change permissions of existing file, even when permissions specified in arguments
JRUBY-2097     File#umask blows up on Windows
JRUBY-2101     Fix deprecation warning in build on clean target
JRUBY-2104     7 rubyspecs failures for $~ due to recent changes
JRUBY-2105     Method and UnboundMethod do not strictly behave like in MRI
JRUBY-2106     Regression after recent JI changes: Some unit tests cannot be executed, just exit
JRUBY-2109     JRUBY-1890 Rubicon test_io's test_reopen1 fails after IO reorg
JRUBY-2113     Regexp behavior differs a bit from MRIs
JRUBY-2118     File#truncate crashes JRuby with NPE when invoked on closed file