Ruby 3.2.0 เปเบเปเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒ, เปเบเบฑเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบตเปเปเบเบฑเปเบเบงเบฑเบเบเบธเปเบเบเปเบเบทเปเบญเบเปเบซเบงเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเบนเบเปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบผเปเบเบผเบกเปเบฅเบฐเบฅเบงเบกเปเบญเบปเบฒเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเบเบญเบ Perl, Java, Python, Smalltalk, Eiffel, Ada เปเบฅเบฐ Lisp. เบฅเบฐเบซเบฑเบเปเบเบเบเบฒเบเปเบกเปเบเปเบเบเบขเบฒเบเบเบฒเบเปเบเปเปเบเบญเบฐเบเบธเบเบฒเบ BSD ("2-clause BSDL") เปเบฅเบฐ "Ruby", เปเบเบดเปเบเบซเบกเบฒเบเปเบเบดเบเบชเบฐเบเบฑเบเบซเบฅเปเบฒเบชเบธเบเบเบญเบเปเบเบญเบฐเบเบธเบเบฒเบ GPL เปเบฅเบฐเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบ GPLv3.
เบเบฒเบเบเบฑเบเบเบธเบเบเบปเปเบเบเป:
- เปเบเบตเปเบกเบเบญเบเปเบเบทเปเบญเบเบเบปเปเบเบเบญเบเบเบปเบงเปเบ Cruby, เปเบเบดเปเบเบฅเบงเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบเบฅเบฐเบซเบฑเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบญเบ WebAssembly เบชเปเบฒเบฅเบฑเบเปเบฅเปเบเบขเบนเปเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบซเบผเบทเบเบฒเบเปเบเปเบเบฒเบเปเบฅเปเบเปเบเบ standalone เปเบเบฑเปเบ wasmtime. เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเปเบเบญเบเปเบเบเบเบปเบเบเบฑเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบฅเปเบเปเบเบเบเปเบฒเบเบซเบฒเบ, WASI (WebAssembly System Interface) API เบเบทเบเบเปเบฒเปเบเป. เปเบเบเบฑเบเบเบฒเบชเบดเปเบเบญเบทเปเบเป, เปเบเบทเปเบญเบเบซเปเป VFS เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเบขเบนเปเปเบเบดเบเบชเบธเบเบเบญเบ WASI, เปเบเบดเปเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบธเปเบกเบซเปเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Ruby เบเบฑเบเบซเบกเบปเบเปเบเบปเปเบฒเปเบเบเบฒเบเบเปเบฒเบชเบฐเปเบซเบเบตเปเบเบฎเบนเบเปเบเบเบเบญเบเปเบเบฅเป wasm เบเบฝเบง. เปเบฅเปเบเบขเบนเปเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบฒเบเบเบถเบเบญเบปเบเบฎเบปเบกเปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบงเบฑเบเบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ TryRuby. เปเบเบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบเบฐเบเบธเบเบฑเบ, เบเบญเบเปเบเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบเปเบฒเบเบเบธเบเบเบปเบเบชเบญเบเบเบทเปเบเบเบฒเบเปเบฅเบฐ bootstrap, เปเบเบดเปเบเบเปเปเปเบเปเปเบเป Thread API. เบเบญเบเบเบฑเปเบเบเปเบฒเบงเบเบฑเบเบเปเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบชเบฑเปเบเปเบ, เบเปเปเบเบปเบเปเบงเบฑเปเบ, เบซเบผเบทเบเบฒเบเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญ.
- เบเบฒเบเบฅเบงเบเบฅเบงเบก JIT เปเบเบเบฐเบเบงเบเบเบฒเบ YJIT, เบชเปเบฒเบเปเบเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเบฅเบฐเบเบฐเบเบญเบกเบเบฒเบเบเปเบฒ e-commerce 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 เปเบฅเบฐเบเปเบญเบเบเบฒเบ compiler 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 เบเปเปเบชเบฒเบกเบฒเบเบเบทเบเบเบตเบเบเบฑเบเบเบฑเบเปเบเบฑเบ Integer (TypeError) sum = ary. [0] + ary [1] ^^^^^^
- เปเบเบตเปเบก syntax เปเปเป เบชเบณเบฅเบฑเบเบเบฒเบเบเปเบฝเบเปเบชเบฑเปเบเบเบฒเบเบเบธเบเบญเบฒเบเบดเบงเปเบกเบฑเบเปเบเบซเบฒเบงเบดเบเบตเบญเบทเปเบ: def foo(*) bar(*) end def baz(**) quux(**) end
- Ruby_vm/mjit/compiler เบเบทเบเบชเบฐเปเปเบต - เปเบเบฑเบเบเบปเบงเปเบเบเบญเบ MJIT JIT compiler เปเบเบปเปเบฒ, เบเบฝเบเปเบซเบกเปเปเบเบเบฒเบชเบฒ Ruby. เบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒ MJIT เปเบฅเปเบเปเบเบเบฐเบเบงเบเบเบฒเบเปเบเบเบเปเบฒเบเบซเบฒเบเปเบเบเบเบตเปเบเบฐเปเบฅเปเบเบขเบนเปเปเบเบเบฐเบเบนเปเบเบฐเบเบฑเบเบเบฒเบ MJIT.
- เปเบ Bundler 2.4, เบเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเปเปเบเบทเปเบญเบเบเบงเบเบเบฑเบเปเบงเบตเบเบฑเบ PubGrub, เบเบฑเบเปเบเปเปเบเบเบปเบงเบเบฑเบเบเบฒเบเบเบธเบ pub เบชเปเบฒเบฅเบฑเบเบเบฒเบชเบฒ Dart. Molinillo algorithm เบเบตเปเปเบเปเปเบเปเบกเบทเปเบญเบเปเบญเบเบเบฑเบเบชเบทเบเบเปเปเบเบทเบเบเปเบฒเปเบเปเปเบ RubyGems, เปเบเปเบเบฑเบเบเบฐเบเบทเบเปเบเบเบเบตเปเบเปเบงเบ PubGrub เปเบเบญเบฐเบเบฒเบเบปเบ.
- เบชเบฐเบเบฑเบเบเบฑเบเบเบธเบเบเบญเบเปเบกเบเบนเบเปเบเปเบงเบเบฐเปเบชเบตเบเบเบตเปเบกเบตเปเบเบเบปเบงเปเบฅเบฐเบเบตเปเบฅเบงเบกเบขเบนเปเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru