芊雅企服
软件更新资讯

JRuby 9.0.0.0-pre2 发布 Ruby 的 Java 解释器

芊雅企服技术团队407 次浏览约 12 分钟读完

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

相关文章

软件更新资讯Firefox 135.0 发布

Firefox 135.0 现已发布,具体更新内容如下: New Firefox 翻译现在支持比以往更多的语言…

1db25d63924c2fff4d7feb76cf041519软件更新资讯2025年无人自助棋牌室还能不能做?2025年还能不能做共享茶室

2025年还能不能做共享茶室,其实很尴尬,毕竟经济很差。但是我们给的建议是,如果手上有闲钱,有合适的场地,这种…

22软件更新资讯共享茶室加盟好还是自营好?

共享茶室是一种新兴的商业模式,包括加盟和自营两种经营方式。那么,到底是选择共享茶室加盟还是自营更好呢?这个问题…

cd9e2de08dacbe576c20a768773a8972软件更新资讯成都共享棋牌室系统多少钱?成都开共享棋牌室为什么选择芊雅共享棋牌室系统

成都共享棋牌室系统的价格取决于您选择的具体系统和规模。不同的系统功能和设备不同,其价格也会有所不同。在成都,共…

1软件更新资讯厦门宝丹鹭共享空间平台上线,厦门共享茶室系统哪家好?

厦门宝丹鹭共享空间平台上线,主打商务接待场景,由芊雅共享茶室系统强力驱动。近期我们将实地参观本福建的共享空间,…

Gym man and woman push-up strength pushup with dumbbell in a crossfit workout软件更新资讯健身APP开发帮助用户解决各种健身问题

我们都知道每一个胖子都是资深的潜力股,可以看出身形的塑造改变的不单单是外边,更多的是气质,如今越来越多人都加入…

免费获取你的专属方案。

资深技术顾问一对一诊断需求,为你量身定制方案与报价。

  • 免费需求诊断与方案建议
  • 透明报价,工期明确
  • 现成方案与定制开发灵活组合
电话咨询135 0699 3986

信息仅用于顾问联系你,绝不外泄。

电话咨询免费获取方案

和技术顾问聊聊,免费拿方案。

说说你的行业和想法,顾问免费评估方案与报价。

电话咨询135 0699 3986一键拨打
微信号fzqianya
技术顾问微信二维码
微信扫一扫添加技术顾问,直接沟通需求截图保存后,在微信“扫一扫”中选择图片识别

不方便沟通?留下电话,顾问回电