JRuby 9.0.0.0.rc1 发布,此版本是 JRuby 团队经过多年的努力和大规模重新启动一些 JRuby 子系统的结果。此版本兼容 Ruby 2.2.x,并且同步 C Ruby。
JRuby 9000 主要特性:
Ruby 2.2 兼容
基于一个传统编译器设计的优化运行时
新 POSIX 友好 IO 和 Process
可以完全从 MRI 移植编码/转码逻辑
Updated to Rubygems 2.4.8 addressing CVE-2015-1855
Several parser issues (also fixed in ripper)
Optimized multiple assignment
Several added smaller missing methods for better 2.2 compatibility
A couple of bugs involving nested exceptions/ensures and $!
46 issues fixed for 9.0.0.0.rc1
JRuby 9000 初步支持 Truffle 语言实现框架和 Oracle 实验室的 Graal VM。详情请看 JRuby Wiki 。
#3022 - Don't call modify() on RubyStrings so eagerly when freezing them
#3019 - Small string values backed by HUGE non-shared ByteList leading to large memory usage under 9k
#3016 - OutOfMemoryError in 9k on code with very large methods
#3010 - 9k has different scoping behavior than MRI
#3009 - LocalJumpError: yield called out of block in JRuby 9.0.0.0.pre2
#3008 - Module#included is private when called with super
#3007 - splats with non-array like values
#3006 - add recursion guard in Comparable.
#3002 - Don't warn on private attribute accessors to match CRuby
#2993 - Many failures in Sequel tests on [RuntimeError] exception expected, not Class: <NoMethodError> Message: <"undefined method `[]' for nil:NilClass">
#2986 - certain require do not load extension Service class
#2984 - Socket.pair is not implemented
#2983 - Net::HTTP can't ignore http.proxyHost of JVM System Property
#2976 - Regression: Sequel's literals contain additional quotation marks under JRuby 9k head but not under pre2
#2975 - Requiring Sequel triggers false warnings `already initialized constant`
#2974 - NotImplementedError: waitpid unsupported or native support failed to load on OS X 10.9.5 / OpenJDK 8 / rbenv
#2959 - JRuby 9k-pre2 throws IOError when reading from $stdin
#2957 - JRuby 9.0.0.0.pre2 starts hanging while reading from a socket
#2939 - Issue #2924
#2924 - Issue in org.jruby.util.TypeConverter CheckType
#2920 - Proc from Method breaks encoded parameter list
#2919 - Add another layer of try/finally around rescue/ensure to reset $!.
#2918 - Method#parameters doesn't annotate required parameters correctly
#2916 - Multiple assignment has too much overhead
#2910 - $! does not get cleared under certain circumstances
#2905 - Different Regexp behavior from MRI
#2904 - require 'ripper' yields const already init warnings
#2899 - Fix for issue 2896 on master : Symbol#inspect with utf8 encode string
#2887 - jrubyc failing - TypeError: failed to coerce org.objectweb.asm.ClassWriter to org.jruby.org.objectweb.asm.ClassVisitor
#2877 - Implementation of initialize_copy for BigDecimal (fix #2868)
#2871 - Enabling tty for powerpc64
#2869 - NameError different behavior
#2868 - BigDecimal can not be copied
#2850 - Fannkuch-redux is less than half as fast in 9k as in 1.7
#2772 - Make Dir raise Errno::EACCES
#2756 - Allow File.open and File.new with 4 arguments
#2744 - Syntax error with file that has OK syntax with MRI 2.2
#2724 - Socket.getaddrinfo reverse_lookup
#2616 - Fix power of 0 and 1 issues in Rational
#2605 - Fix File.read with UTF-16LE
#2603 - Add support for named captures in StringScanner (fixes #1067)
#2563 - RubyArray#flatten! uses `respond_to?` unlike the original [lotus]
#2475 - Truffle: Understand and reduce impact of Truffle on the distribution size
#2036 - Demonstrate pedantic option
#1955 - -X... and -X? options to search for properties.
#1629 - Another unexpected kDO_BLOCK error in parser
同时还发布了 JRuby 1.7.20.1 版本,是 JRuby 1.7.0 以来的第 24 个更新版本,主要是兼容 Ruby 1.9.3。此版本安全更新只是升级 Rubygems 到版本 2.4.8,解决 CVE-2015-1855 漏洞。强烈建议升级!
Homepage: http://www.jruby.org/
Download: http://www.jruby.org/download
JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端企业级功能方面。另一方面,Java平台及其虚拟机、库和 应用服务器的速度、稳定性和功能方面却一直在提升,现在已被公认为是开发高端服务器应用的领先平台。不过如果Java平台不与Ruby等新兴语言联系在一 起,就有可能落后于流行趋势。
文章转载自: 开源中国社区 [ http://www.oschina.net ] 本文标题:JRuby 9.0.0.0.rc1/1.7.20.1 发布 本文地址: