αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Ruby 3.2

Ruby 3.2.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŠαŸ‚αž›αž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαžœαžαŸ’αžαž»αžαžΆαž˜αžœαž“αŸ’αž αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαžšαž”αžŸαŸ‹ Perl, Java, Python, Smalltalk, Eiffel, Ada αž“αž·αž„ Lisp αŸ” αž›αŸαžαž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αžŽαŸ’αžŽ BSD ("2-αžƒαŸ’αž›αžΆ BSDL") αž“αž·αž„ "Ruby" αžŠαŸ‚αž›αžŸαŸ†αžŠαŸ…αž‘αŸ…αž›αžΎαž€αŸ†αžŽαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαž“αŸƒαž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ GPL αž αžΎαž™αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž‡αžΆαž˜αž½αž™ GPLv3 αŸ”

αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ’αžšαž€αžŠαŸ†αž”αžΌαž„αž“αŸƒαž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚ Cruby αžŠαŸ‚αž›αž…αž„αž€αŸ’αžšαž„αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αžšαž”αžŸαŸ‹ WebAssembly αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž¬αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαžšαžαŸ‹αžαŸ‚αž˜αŸ’αž“αžΆαž€αŸ‹αž―αž„αžŠαžΌαž…αž‡αžΆ wasmtime αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ WASI (WebAssembly System Interface) API αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαŸ” αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžšαž”αžŸαŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžšαž»αŸ† VFS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž› WASI αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžœαŸαž…αžαŸ’αž…αž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Ruby αž‘αžΆαŸ†αž„αž˜αžΌαž›αž‘αŸ…αž‡αžΆαž”αž‘αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž‡αžΆαž―αž€αžŸαžΆαžš wasm αžαŸ‚αž˜αž½αž™αŸ” αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž› αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαžΌαž…αž‡αžΆ TryRuby αŸ” αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αž…αŸ’αžšαž€αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αž“αžΌαžœαžˆαž»αžαžŸαžΆαž€αž›αŸ’αž”αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž“αž·αž„ bootstrap αžŠαŸ‚αž›αž˜αž·αž“αž”αŸ’αžšαžΎ Thread API αŸ” αž…αŸ’αžšαž€αž“αŸαŸ‡αž€αŸαž˜αž·αž“αž‚αžΆαŸ†αž‘αŸ’αžš Fibers αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„ αž¬αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αžŸαŸ†αžšαžΆαž˜αžŠαŸ‚αžšαŸ”
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ JIT αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš YJIT αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αŸƒαžœαŸαž‘αž·αž€αžΆαž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž€ Shopify αžŠαŸ‚αž›αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž‚αŸ†αž“αž·αžαž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Ruby αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ Rails αž“αž·αž„αž αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž€αžΆαžŸαžαžΆαž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž– αž“αž·αž„αžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αž‡αžΆαžŸαŸ’αžšαŸαž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž•αž›αž·αžαž€αž˜αŸ’αž˜αŸ” αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžŸαŸ†αžαžΆαž“αŸ‹αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ MJIT JIT αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž–αžΈαž˜αž»αž“ αžŠαŸ‚αž›αž•αŸ’αž’αŸ‚αž€αž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΆαŸ†αž„αž˜αžΌαž› αž“αž·αž„αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αžαžΆαž„αž€αŸ’αžšαŸ…αž‡αžΆαž—αžΆαžŸαžΆ C αž‚αžΊαžαžΆ YJIT αž”αŸ’αžšαžΎ Lazy Basic Block Versioning (LBBV) αž“αž·αž„αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž…αž„αž€αŸ’αžšαž„ JIT αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„ LBBV JIT αžŠαŸ†αž”αžΌαž„αž…αž„αž€αŸ’αžšαž„αžαŸ‚αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš αž αžΎαž™αž…αž„αž€αŸ’αžšαž„αž“αŸ…αžŸαž›αŸ‹αž–αŸαž›αž€αŸ’αžšαŸ„αž™ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž’αžαŸαžš αž“αž·αž„αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž€αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αŸ” YJIT αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ x86-64 αž“αž·αž„ arm64/aarch64 αž“αŸ…αž›αžΎ Linux, MacOS, BSD αž“αž·αž„αžœαŸαž‘αž·αž€αžΆ UNIX αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

    αž˜αž·αž“αžŠαžΌαž… Ruby αž‘αŸ αž€αžΌαžŠ YJIT αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž—αžΆαžŸαžΆ Rust αž αžΎαž™αž‘αžΆαž˜αž‘αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ rustc 1.58.0+ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž„αž€αŸ’αžšαž„ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž YJIT αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž“αž·αž„αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαŸ” αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ YJIT αž€αžΆαžšαž€αžΎαž“αž‘αžΎαž„ 41% αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžαŸ’αžšαžΆαž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž yjit-bench αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαž”αž€αžŸαŸ’αžšαžΆαž™αŸ”

    αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Ruby 3.2

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αž“αŸƒαž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆαž„αž€αŸ’αžšαŸ…αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αŸ’αžšαžΎαž“ (ReDoS)αŸ” αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‘αž“αŸ’αž‘αŸαž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž›αž˜αŸ’αž’αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž€αž“αŸ’αžŸαŸ„αž˜ '/^a*b?a*$/ =~ "a" * 50000 + "x"' αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž–αžΈ 10 αž‘αŸ… 0.003 αžœαž·αž“αžΆαž‘αžΈαŸ” αžαž˜αŸ’αž›αŸƒαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αžΎαž“αž‘αžΎαž„αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžŠαŸ‚αž›αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‚αžΊαž”αŸ’αžšαž αŸ‚αž› 10 αžŠαž„αžαŸ’αž–αžŸαŸ‹αž‡αžΆαž„αž‘αŸ†αž αŸ†αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž‰αŸ’αž…αžΌαž›αŸ” αžœαž·αž’αžΆαž“αž€αžΆαžšαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‘αžΈαž–αžΈαžšαž‚αžΊαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž’αžŸαŸ‹αž–αŸαž› (αž§αž‘αžΆαž αžšαžŽαŸ β€œRegexp.timeout = 1.0”) αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ‚αž›αž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαžαŸ’αžšαžΌαžœαžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”
  • αžšαž”αŸ€αž” syntax_suggest αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžšαž½αž˜β€‹αž”αž‰αŸ’αž…αžΌαž›β€‹αžŠαŸ‚αž›β€‹αž‡αž½αž™β€‹αžœαž·αž—αžΆαž‚β€‹αžšαž€β€‹αž˜αžΌαž›αž αŸαžαž»β€‹αž“αŸƒβ€‹αž€αŸ†αž αž»αžŸβ€‹αžŠαŸ‚αž›β€‹αž‘αžΆαž€αŸ‹β€‹αž‘αž„β€‹αž“αžΉαž„β€‹αž€αž“αŸ’αžŸαŸ„αž˜ "αž”αž‰αŸ’αž…αž”αŸ‹" αžŠαŸ‚αž›β€‹αž”αžΆαžαŸ‹ αž¬β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž€αžΆαžšβ€‹αž”αž·αž‘αŸ” 'αž”αž‰αŸ’αž…αž”αŸ‹' αžŠαŸ‚αž›αž˜αž·αž“αž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„ αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡αžŠαŸ‚αž›αž”αžΆαžαŸ‹ (`do', `def`, `if` αŸ”αž›αŸ”)? 1 class Dog > 2 defbark > 3 end 4 end
  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž”αŸ’αžšαž—αŸαž‘ αž“αž·αž„αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αžšαž”αŸ€αž”αž”αž„αŸ’αž αžΆαž‰αž‘αžΈαžαžΆαŸ†αž„αž€αŸ†αž αž»αžŸ αž§αž‘αžΆαž αžšαžŽαŸαŸ– test.rb:2:in `+': nil αž˜αž·αž“αž’αžΆαž…αž”αž„αŸ’αžαŸ†αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž…αŸ†αž“αž½αž“αž‚αžαŸ‹ (TypeError) sum = ary [0] + ary [1] ^^^^^^
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž‘αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ– def foo(*) bar(*) end def baz(**) quux(**) end
  • Ruby_vm/mjit/compiler αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„ - αžœαŸ‰αžΆαžšαŸ’αž™αŸ‰αž„αŸ‹αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ MJIT JIT αž…αžΆαžŸαŸ‹αžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αž‡αžΆαž—αžΆαžŸαžΆ Ruby αŸ” αž’αžΆαž“αžΆαžαžΆ MJIT αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™ αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž€αž˜αŸ’αž˜αž€αžš MJIT αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„ Bundler 2.4 αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αž€αŸ†αžŽαŸ‚ PubGrub αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž•αž„αžŠαŸ‚αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž‰αŸ’αž…αž”αŸ‹αž•αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ Dart αŸ” αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ Molinillo αžŠαŸ‚αž›αž’αŸ’αž›αžΆαž”αŸ‹αž”αŸ’αžšαžΎαž–αžΈαž˜αž»αž“αž“αŸ…αžαŸ‚αž”αž“αŸ’αžαž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ RubyGems αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™ PubGrub αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαž•αž„αžŠαŸ‚αžšαŸ”
  • αž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž›αžαŸ’αž”αžΌαž„αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹