智能化下的产物,无人棋牌室
JRuby 社区很高兴的宣布 JRuby 9.0.0.0-pre2 发布了:
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
Truffle
JRuby 9000 包含一个开发中的支持 Truffle 语言实现框架和来自 Oracle 实验室的 Graal VM。详情请看JRuby Wiki.
Github Issues resolved for 9.0.0.0.pre2
- #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