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 ααΎαααααααααα ααΉαααΆαααααΎααααΆααααΆαααααααΆαα
- ααΆαααααααααΆαααΆαααΆααααααααααααΆααααΉαααΆαααα·αααααααΆαααΆααααα αΆαααααΆαααααα αααααααΎαααΆααα·ααααααααΆααααα αα αααα»αααααααααααααΆααααα·αααΆαααααα·αααααΆα αα·αα αααΆααααα αααΎα (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