Ruby 3.2.0 ืืื ืืืคืจืืื, ืึท ืืื ืึทืืืฉ ืืืืคืขืฅ-ืึธืจืืขื ืืื ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื ืืืึธืก ืืื ืืขืืกื ืขืคืขืงืืืื ืืื ืคึผืจืึธืืจืึทื ืึทื ืืืืืงืืื ื ืืื ืื ืงืึธืจืคึผืขืจืืืฅ ืื ืืขืกืืขืจ ืคึฟืขืึดืงืืืื ืคืื Perl, Java, Python, Smalltalk, Eiffel, Ada ืืื Lisp. ืื ืคึผืจืืืขืงื ืงืึธื ืืื ืคืื ืื ืืขืจืืขืืืืื ืืื ืืขืจ ืื BSD ("2-ืงืืึธื BSDL") ืืื "Ruby" ืืืืกืึทื ืกืื, ืืืึธืก ืจืขืคืขืจืก ืฆื ืื ืืขืฆืืข ืืืขืจืกืืข ืคืื โโโโืื GPL ืืขืจืืืืืขื ืืฉ ืืื ืืื ืืึธืจ ืงืึทืืคึผืึทืืึทืืึทื ืืื GPLv3.
ืืืืคึผื ืืืคึผืจืืืืืึทื ืฅ:
- ืฆืืืขืืขืื ืึทื ืขืจืฉื ืคึผืึธืจื ืคืื ืื Cruby ืืืขืจืืขืฆืขืจ, ืืืึธืก ืงืึทืืคึผืืืื ืืื ืืืขืืึทืกืกืขืืืื ืื ืืขืจืืืืืื ืงืึธื ืคึฟืึทืจ ืคืืืกื ืืืง ืืื ืึท ืืืขื ืืืขืืขืจืขืจ ืึธืืขืจ ืืื ืืขืจ ืกืืึทื ืืึทืืึธื ืข ืจืื ืืืืข ืึทืืึท ืืื wasmtime. ืคึฟืึทืจ ืืืจืขืงื ืื ืืขืจืึทืงืฉืึทื ืืื ืื ืึธืคึผืขืจืืืืื ื ืกืืกืืขื ืืืขื ืคืืืกื ืืืง ืกืขืคึผืขืจืึทืืื, ืื WASI (WebAssembly System Interface) API ืืื ืืขื ืืฆื. ืฆืืืืฉื ืื ืืขืจืข ืืืื, ืึท VFS ืจืึทืคึผืขืจ ืืื ืฆืืืขืฉืืขืื ืืืืฃ ืฉืคึผืืฅ ืคืื WASI, ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืคึผืขืงื ืื ืืื ืฆืข Ruby ืึทืคึผืืึทืงืืืฉืึทื ืืื ืึท ืคึผืจืขืืขื ืืืจืื ื ืืื ืื ืคืึธืจืขื ืคืื ืึท ืืืื ืืืึทืกื ืืขืงืข. ืคืืืกื ืืืง ืืื ืึท ืืืขืืขืจืขืจ ืงืขื ืขื ืืืื ืืขืืืืื ื ืฆื ืฉืึทืคึฟื ืืจืืื ืื ื ืืื ืืขืืึธ ืืืขื ืืึทืืื ืื ืืก ืึทืืึท ืืื TryRuby. ืืื ืืขื ืงืจืึทื ื ืืื ืข ืคืื โโืึทื ืืืืืงืืื ื, ืื ืคึผืึธืจื ืืฆืืื ืืืจืืืขืืื ืืขื ืื ืืงืขืจืืืง ืืื ืืึธืึธืฆืืจืึทืคึผ ืคึผืจืืืืจื ืกืืืืฅ, ืืืึธืก ืืึธื ื ืื ื ืืฆื ืื ืคืึธืืขื ืึทืคึผื. ืืขืจ ืคึผืึธืจื ืืืื ืฉืืืฆื ื ืืฉื ืคืืืืขืจื, ืืืืกื ืขืืขื ืึธืืขืจ ืืืกื ืืึทืืืื ื.
- ืืขืจ YJIT ืืื-ืคืจืืฆืขืก JIT ืงืืืคืืืืขืจ, ืืืฉืืคื ืืืจื ืื ืืขืืืขืืืคืขืจืก ืคืื ืืขืจ Shopify ืื-ืงืืืขืจืฅ ืคืืืืคืืจืืข ืืืก ืืืื ืคืื ืื ืืื ืืฆืืืืืื ืฆื ืคืืจืืขืกืขืจื ืื ืคืขืจืคืืจืืื ืก ืคืื ืจืืื ืคืจืืืจืืืขื ื ืืฆื ืืื ืืขื Rails ืคืจืืืืืืขืจืง ืืื ืจืืคื ืืกืื ืืขืืืื, ืืื ืืขืืืืจื ืืขืืืืื ืืืก ืกืืืืื ืืื ืืจืืื ืคืืจ ืคืจืืืืงืฆืืข ืืื ืืฅ. ืืขืจ ืืืืคื ืืื ืืขืจืฉืืื ืคืื ืืขื ืคืจืืขืจ ืืขื ืืฆืื MJIT JIT ืงืืืคืืืืขืจ, ืืืืก ืืื ืืืืืจื ืืืืฃ ืืืืจืืขืื ืืื ืฆืข ืืขืืืื ืืื ื ืืฆื ืื ืขืงืกืืขืจื ืขื C ืงืืืคืืืืขืจ, ืืื ืื YJIT ื ืืฆื Lazy Basic Block Versioning (LBBV) ืืื ืื ืืืืื ืื ืืื ืืขืืจืืจืื JIT ืงืืืคืืืืขืจ. ืืื ืง LBBV, ืงืืืคืืืื ืืขืจ JIT ืื ืคืื ืืก ื ืืจ ืืขื ืื ืคืื ื ืคืื ื ืืขืืื, ืืื ืงืืืคืืืื ืื ืจืขืฉื ืฉืคืขืืขืจ, ื ืืืืขื ืืืืก ืื ืืืคื ืคืื ืื ืืขื ืืฆืืข ืืืขืจืืึทืืืขื ืืื ืืจืืืืขื ืื ืืืขืจื ืืืฉืืืื ืืขืชื ืืืืกืคืืจื. YJIT ืืื ืคืืจืื ืคืืจ ืื x86-64 ืืื arm64/aarch64 ืืจืืืืขืงืืืจื. Linux, MacOS, BSD ืืื ืื ืืขืจืข UNIX ืคึผืืึทืืคืึธืจืืขืก.
ื ืื ืขื ืืขื Ruby, ืื YJIT ืงืึธื ืืื ืืขืฉืจืืื ืืื ืื ืจืืกื ืฉืคึผืจืึทื ืืื ืจืืงืืืืืขืจื ืื Rustc 1.58.0+ ืงืึทืืคึผืืืืขืจ ืคึฟืึทืจ ืืึทืืืื ื, ืึทืืื ืื YJIT ืืืืขื ืืื ืคืึทืจืงืจืืคึผืื ืืืจื ืคืขืืืงืืึทื ืืื ืืื ืึทืคึผืฉืึทื ืึทื. ืืืขื ื ืืฆื YJIT, ืึท 41% ืคืึทืจืืจืขืกืขืจื ืืื ืคืึธืจืฉืืขืืื ื ืืื ืจืขืงืึธืจืืขื ืืืขื ืืืจ ืืืืคื ืื yjit-ืืขื ืง ืืขืกื ืงืึทืืคึผืขืจื ืืื ืื ืืขืจืคึผืจืืืืืฉืึทื.

- ืฆืืืขืืืืื ื ืึธื ืฉืืฅ ืงืขืื ืึธืคึผืืืืงืขื ืื ื ืคืื ืืื ืกื ืื ืคืืื ืืืขื ืคึผืจืึทืกืขืกืื ื ืคืื ืืจืืืกื ืืืง ืืึทืื ืืื ืืึทืืืึธื ืืฉ ืืื ืฆืืื-ืงืึทื ืกืืืื ื ืจืขืืืืขืจ ืืืืกืืจืืงื (ReDoS). ืื ืืืึธืก ืจืืืื ืึทืืืขืจืืืึทื, ืืืึธืก ื ืืฆื ืืขืืึธืจืืืึทืืืึธื ืืขืื ืืง, ืืื ืืืืืืืืง ืืืคึผืจืืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืื ืืืจืืคืืจืื ื ืฆืืื ืคืื ืื ืืืืกืืจืืง '/^ืึท*ื?ืึท*$/ =~ "ืึท" * 50000 + "ืจืขื ืืืขื "' ืืื ืจืืืืกื ืคืื 10 ืฆื 0.003 ืกืขืงืื ืืขืก. ืืขืจ ืคึผืจืืึทื ืคืื ืึทืคึผืืึทืืึทืืืืฉืึทื ืืื ืึท ืคืึทืจืืจืขืกืขืจื ืืื ืืึผืจืื ืงืึทื ืกืึทืืฉืึทื, ืื ืงืึทื ืกืึทืืฉืึทื ืคืื ืืืึธืก ืืื ืืขืขืจืขื 10 ืืื ืืขืืขืจ ืืื ืื ืืจืืืก ืคืื ืื ืึทืจืืึทื ืฉืจืืึทื ืืึทืื. ืื ืจืืข ืืืืขืจืืืื ืืึธืก ืืื ืื ืคืืืืงืืื ืฆื ืืขืคืื ืืจื ืึท ืืืืืึทืื (ืืืฉื, "Regexp.timeout = 1.0") ืืขืฉืึทืก ืืืึธืก ืื ืจืขืืืืขืจ ืืืืกืืจืืง ืืืื ืืืื ืคึผืจืึทืกืขืกื.
- ืื ืกืื ืืึทืงืก_ืกืึทืืืืฉืขืกื ืืึธืืข ืืื ืึทืจืืึทื ืืขืจืขืื ื, ืืืึธืก ืืขืืคึผืก ืืืึทืื ืึธืืืจื ืื ืกืืืืช ืคืื ืขืจืจืึธืจืก ืคึฟืึทืจืืื ืื ืืื ืึท ืคืขืื ืืืง ืึธืืขืจ ืขืงืกืืจืข ืงืืึธืืืื ื "ืกืืฃ" ืืืืกืืจืืง. ื ืื ืขื ืืขื 'ืกืืฃ', ืคืขืื ืืืง ืงืืืืขืจื ('ืืึธื', 'ืืขืฃ', 'ืืืื', ืืื"ื ื) ? 1 ืงืืึทืก ืืึธื> 2 ืืขืคืืึทืจืง> 3 ืกืืฃ 4 ืกืืฃ
- ืื ืคืืืืงืืื ืฆื ืฆืืืื ืึทืจืืืืขื ืื ืคึฟืึทืจ ืขืจืจืึธืจืก ืฉืืึทืืืช ืฆื ืืืืคึผืก ืืื ืึทืจืืืืขื ืื ืืื ืฆืืืขืืืืื ืฆื ืื ืืืืึทื ืืึธืืข ืคืื โโืืขืืช ืึธืจื, ืืืฉื: test.rb:2:in `+': nil ืงืขื ืขื ื ืื ืืืื ืืขืฆืืืื ืืขื ืืื ืื ืืขืืขืจ (ืืืคึผืขืขืจืจืึธืจ) sum = ary [0] + ืึทืจื [1] ^^^^^^
- ืฆืืืขืืืืื ื ืืึท ืกืื ืืึทืงืก ืคึฟืึทืจ ืจืืืขืจืขืงืืื ื ืกืขืฅ ืคืื ืึทืจืืืืขื ืื ืฆื ืื ืืขืจืข ืืขืืืึธืืก: def foo(*) bar(*) end def baz(**) quux(**) end
- Ruby_vm/mjit/compiler ืืื ืคืืจืืขืืืืื - ืึท ืืืึทืจืืึทื ื ืคืื ืื ืึทืื MJIT JIT ืงืึทืืคึผืืืืขืจ, ืจืืจืืืึทื ืืื ืื Ruby ืฉืคึผืจืึทื. ืื ืฉืืจื ืึทื MJIT ืืืืคื ืืื ืึท ืืึทืืื ืืขืจ ืคึผืจืึธืฆืขืก ืึทื ืฉืืึธื ืคืื ืคืืืกื ืืืง ืืื ืึท MJIT ืึทืจืืขืืขืจ ืคืึธืืขื.
- ืืื ืืื ืืืขืจ 2.4, ืืขืคึผืขื ืืขื ืกื ืคึผืจืึทืกืขืกืื ื ื ืืฆื ืื PubGrub ืืืขืจืกืืข ืืขืืขืงืืึธืจ, ืืืื ืืขื ืืฆื ืืื ืื ืฉืขื ืง ืคึผืขืงื ืคืึทืจืืืึทืืืขืจ ืคึฟืึทืจ ืื ืืึทืจื ืฉืคึผืจืึทื. ืื ืคืจืืขืจ ืืขืืืืื ื Molinillo ืึทืืืขืจืืืึทื ืืืื ืฆื ืืืื ืืขืืืืื ื ืืื RubyGems, ืึธืืขืจ ืืืขื ืืืื ืืืื ืจืืคึผืืืืกื ืืืจื PubGrub ืืื ืืขืจ ืฆืืงืื ืคึฟื.
- ืืขืจืืืึทื ืืืงื ืืืขืจืกืืขืก ืคืื ืืขืืืื-ืืื ืืืืืฉืืืื ืืึทืืืฉืืื ืืื ืื ืึทืจืืึทื ืืขืจืขืื ื ืืื ืื ื ืึธืจืืึทื ืืืืืืึธืืขืง.
ืืงืืจ: opennet.ru

