开源中国的 IT 公司开源软件整理计划介绍
JRuby 社区很高兴的宣布 JRuby 9.0.0.0-pre2 发布了:
首页: http://www.jruby.org/
下载地址: http://www.jruby.org/download
JRuby 9000 是全新的 JRuby 版本,经过多年的开发和大规模重构子系统后推出。
JRuby 9000 的主要新特性:
兼容 Ruby 2.2
基于传统编译器设计的新的优化后的运行时
新的 POSIX 友好的 IO 和进程
来自 MRI 的完全可移植的编码和转码逻辑
Ruby 2.2 的特性中这个版本 JRuby 尚未实现的还有:
Refinements (partially finished) #1062
Kernel#spawn close-on-exec support
ObjectSpace::WeakMap#each and Enumerable inclusion
Thread#handle_interrupt is not yet fully functional
与 Pre1 版本比较,值得关注的变化是:
Startup time has improved but is a tiny bit slower than 1.7.x.
Memory usage has improved but still a ways to go.
Straight-line performance has improved since pre1
Windows support improved, but still needs further work and testing
Many keyword arguments problems fixed
88 issues fixed for 9.0.0.0.pre2
JRuby 9000 包含一个开发中的支持 Truffle 语言实现框架和来自 Oracle 实验室的 Graal VM。详情请看 JRuby Wiki .
#2864 - Prepend breaks module "implementer" search
#2847 - JRuby not using UTF-8 for source files
#2846 - Psych dependency is installing non-JRuby version
#2842 - Hash#each_pair should be a true alias of Hash#each
#2840 - jrubyc blows with NPE
#2833 - Bad nonlocal return with re-wrapped define_method block
#2797 - Support respond_to_missing? in respondsTo() lookups
#2788 - Autoload broken by path canonicalization
#2787 - Returns nil instead of regex match group inside conditional
#2784 - rindex() fails on strings read from binary files
#2777 - Undefined group option during parse of mri/test_regexp.rb
#2776 - IR improperly masks errors in defined-guarded conditional
#2771 - unknown type of %string
#2767 - Open3.popen3 treats string command differently than MRI
#2766 - Open3.capture2e fails with "wrong exec option"
#2764 - Encoding::Converter#primitive_convert has trailing null byte
#2752 - JRuby doesn't define Process::Tms like MRI does
#2751 - Make RUBY_ENGINE_VERSION as companion to RUBY_ENGINE
#2736 - early return in each'd enumerator is jumping out of each and not method
#2726 - how do I install with Jars? Re: "deprecated. use instead jars/installer" message
#2716 - rb_cmpint difference from MRI
#2712 - Micro bench is nearly 2x slower with JIT than interp
#2692 - Fix for issue 2591 on master : double-quoted UTF8 hash key encoding
#2654 - Truffle - Compile Error until when break in case statement
#2652 - Truffle - Regex Parsing Error
#2637 - Produce a warning on private attribute accessors
#2636 - Fix Bignum's bitwise operations
#2635 - Object.const_get behaves differently from other implementations
#2629 - Mixed-mode execution exposes an unusual bug
#2627 - $stdin.tty? reports wrong value on JRuby-9.0.0.0-pre1
#2623 - error with bin/jruby -S gem install asd
#2615 - Open3 fails with ArrayStoreException after ~50 executions
#2598 - Unknown error in child-process gem when trying to open phantomjs browser in webdriver when running on jruby
#2593 - Fix IO#write frozen string issue in textmode
#2591 - double-quoted UTF8 hash key has the wrong encoding
#2589 - Fixed the errors with RubySpec
#2587 - simplecov triggers load error when running coverage on jruby-9.0.0.0.pre1
#2585 - JavaSupport refactoring API (byte-code) incompatibility with extensions
#2584 - Fixed arity issue with RubyMethod
#2583 - Make filepaths with null byte fail
#2581 - Error handling converting UTF-32 to UTF-8 is broken [9k] [lotus]
#2580 - Different Encoding behavior from all other Rubies
#2579 - Fix for issue 2182 on master : Struct#inspect with utf8 encode string member
#2578 - Binding#receiver is not implemented [9k] [lotus]
#2576 - Fix the bug with size with each_slice without block
#2574 - Parallel value assignment broken in IR builder (multi-value literals, calls, attr-assign, etc.)
#2570 - ClassCastException requiring minitest with JRuby 9000
#2569 - Fix required arguments for File.chown
#2568 - Exit iterator when `RubyHash#any?` short-circuits
#2562 - Skip block-to-proc conversion for explicit block syntax when possible
#2560 - Fix uninitialized usage of File::Stat
#2553 - Mismatch on Enumerator#size result between JRuby and MRI
#2547 - Dir.foreach does not allow encoding
#2541 - JRuby+Truffle: Keyword Arguments - "illegal recursive call"
#2540 - Fixed arity require in case of required keyword arguments
#2537 - Fix for issue 2524 on master: [BigDecimal] Loss of precision with different execution order
#2525 - undefined method `invoke_with_build_args' for nil:NilClass on Windows 7
#2524 - [bigdecimal] Loss of precision with different execution order
#2523 - Modified the make_wstr method so that it appends a null character.
#2522 - Implement pack & unpacking ipv6 address in sockaddr
#2521 - Require order appears to impact JRuby extensions [9k]
#2518 - Keyword arguments incompatibility
#2514 - Getting "BUG: $! and exception are not matching up" in RSpec in 9K
#2512 - keyword arguments incompatibilities
#2511 - Keyword method parameters cannot take a frozen hash
#2505 - IO.popen cannot run 'date' on Windows 7
#2500 - gem install failure on Windows
#2494 - Open3 fails with varying signals on 9.0.0.0.pre1
#2493 - Performance issue with invokedynamic + Rack + URI
#2492 - Implemented support for keyword and keywordrest proc /lambda parameters
#2491 - Minitest rails not working on 9000
#2489 - Proc.parameters return an empty array
#2486 - Implemented Enumerator#feed method
#2474 - truffle artifacts are not on maven central and we have a release repo in jruby-parent.pom
#2466 - Package Truffle stdlib files into tarball
#2388 - IO#ready? returns incorrect results
#2357 - NULL handling inconsistent with Ruby
#2312 - Encoding.compatible? affected by call order
#2210 - Fix for issue 1069 and 1390 on master: improve handling of non ascii character after backslash
#2185 - Bundle fails with Java::JavaLang::StackOverflowError with git-hosted gems
#2165 - Truffle: Kill all other threads when the main thread exits
#2163 - StringLiteral consumers may not be CR-aware
#2137 - Socket.getifaddrs returns incorrect interface list
#2033 - Problem with super not passing params with IR
#2015 - Method keyword arguments are destructive
#1982 - AIOOBE in ThreadContext#postYield
#1395 - Pre-compiled methods do not have AST available for re-compilation
#779 - Output unreliable from spawned processes