Ruby 3.1.0 ืืฆื ืืืืจ, ืฉืคืช ืชืื ืืช ืืื ืืืช ืืื ืื ืขืฆืืื, ืืขืืื ืืืื ืืคืืชืื ืชืืื ืืืช ืืืฉืืืช ืืช ืืืื ืืชืืื ืืช ืฉื Perl, Java, Python, Smalltalk, Eiffel, Ada ื-Lisp. ืงืื ืืคืจืืืงื ืืืคืฅ ืชืืช ืจืืฉืืื ืืช BSD ("2-ืกืขืืฃ BSDL") ื-"Ruby", ืืืชืืืืก ืืืจืกื ืืขืืื ืืช ืืืืชืจ ืฉื ืจืืฉืืื GPL ืืชืืื ืืืืคื ืืื ื-GPLv3.
ืฉืืคืืจืื ืขืืงืจืืื:
- ื ืืกืฃ ืืืืจ ืืืฉ ืฉื JIT ืืชืืืื, YJIT, ืฉื ืืฆืจ ืขื ืืื ืืคืชืื ืคืืืคืืจืืช ืืืกืืจ ืืืืงืืจืื ื Shopify ืืืืง ืืืืืื ืืฉืืคืืจ ืืืืฆืืขืื ืฉื ืชืืื ืืืช Ruby ืืืฉืชืืฉืืช ืืืกืืจืช Rails ืืงืืจืืืช ืืืจืื ืฉืืืืช. ืืืืื ืืขืืงืจื ืืืืืืจ MJIT JIT ืฉืืื ืืฉืืืืฉ ืืขืืจ, ืืืืืกืก ืขื ืขืืืื ืฉืืืืช ืฉืืืืช ืืืฉืชืืฉ ืืืืืจ ืืืฆืื ื ืืฉืคืช C, ืืื ืฉ-YJIT ืืฉืชืืฉ ื-Lazy Basic Block Versioning (LBBV) ืืืืื ืืืืจ JIT ืืฉืืื. ืขื LBBV, JIT ืงืืื ืื ืงืืืคืืืฆืื ืจืง โโืืช ืชืืืืช ืืฉืืื, ืืงืืืคืืืฆืื ืืช ืืฉืืจ ืืื ืื ืืืืจ ืืื, ืืืืจ ืฉืกืืื ืืืฉืชื ืื ืืืืจืืืื ืืื ืืืฉืืฉืื ื ืงืืขืื ืืืืื ืืืืฆืืข. ืืฉืืืืฉ ื-YJIT, ื ืจืฉืื ืขืืืื ืฉื 22% ืืืืฆืืขืื ืืขืช ืืคืขืืช ืืืื railsbench, ืืขืืืื ืฉื 39% ืืืืื ืจืื ืืืจ ืื ืืื. YJIT ืืืืื ืืจืืข ืืชืืืื ืืืขืจืืช ืืคืขืื ืืืืืืช ืืื ืืงืก ืืืขืจืืืช ืขื ืืจืืืืงืืืจืช x86-64 ืืืืฉืืช ืืืจืืจืช ืืืื (ืืื ืืืคืขืื, ืฆืืื ืืช ืืืื "--yjit" ืืฉืืจืช ืืคืงืืื).
- ืืืฆืืขืื ืืฉืืคืจืื ืฉื ืืืืจ MJIT JIT ืืืฉื. ืขืืืจ ืคืจืืืงืืื ืืืฉืชืืฉืื ื-Rails, ืืืื ืืืืืื ืืืงืกืืืื ืืืืืืจ ืืืจืืจืช ืืืื (--jit-max-cache) ืืืืื ื-100 ื-10000 ืืืจืืืช. ืืคืกืืง ืืืฉืชืืฉ ื-JIT ืขืืืจ ืฉืืืืช ืขื ืืืชืจ ื-1000 ืืืจืืืช. ืืื ืืชืืื ื-Zeitwerk of Rails, ืงืื JIT ืืื ื ืืืฉืื ืขืื ืืืฉืจ TracePoint ืืืคืขืืช ืขืืืจ ืืืจืืขืื ืืืืชื.
- ืืื ืืืื ืืืคืจ debug.gem ืืฉืืืชื ืืืืืืื, ืืชืืื ืืืืื ืืจืืืง, ืืื ื ืืื ืืช ืืืคืืืงืฆืื ืฉื ืืืื, ืชืืื ืืืื ืืืจืฆืื ืขื ืืืฉืงื ืืืชืืจ ืืืืื ืืชืงืืืื (VSCode ื-Chrome), ืืืื ืืฉืืฉ ืืืืชืืจ ืืืืื ืืจืืื ืืืืื ืืืคืืืงืฆืืืช ืืจืืื ืชืืืืืื, ืืกืคืง ืืืฉืง ืืืฆืืข ืงืื REPL, ืืฆืืข ืืืืืืช ืืขืงื ืืชืงืืืืช, ืืืื ืืืงืืื ืืืืคืขืื ืืืืฉ ืงืืขื ืงืื. ืืืชืจ ืืืืืื ืฉืืืฆืข ืืขืืจ lib/debug.rb ืืืกืจ ืืืืคืฆื ืืืกืืกืืช.
- ืืืืขื ืืืืฉื ืืืืืืืืช ืฉื ืฉืืืืืช ืืืืืืช ืืขืงื ืืชืงืฉืจืืช ืืืืจืช. ืกืืืื ืฉืืืืืช ืืกืืคืง ืืืืฆืขืืช ืืืืืช gem ืืืืื ืืช ืืชืืืืช ืืจืืจืช ืืืืื error_highlight. ืืื ืืืื ืกืืืื ืฉืืืืืช, ืืชื ืืืื ืืืฉืชืืฉ ืืืืืจื "--disable-error_highlight". $ ruby โโtest.rb test.rb:1:in " ": ืฉืืื ืื ืืืืืจืช "ืืื" ืขืืืจ 1:Integer (NoMethodError) 1.time {} ^^^^^ ืืื ืืชืืืื ืช? ืคึผึดื
- ืืขืืคืช ืืืืฉืืืื ืืืื ืืจืืงืืืืืื IRB (REPL, Read-Eval-Print-Loop) ืืืืฉืืช ืืฉืืื ืืืืืืืืช ืฉื ืืงืื ืฉืืืื (ืืขืช ืืืงืืื, ืืืฆื ืจืื ืขื ืืคืฉืจืืืืช ืืืืฉื ืงืื, ืฉืืื ืืื ื ืืชื ืื ืืข ืืืืฆืขืืช Tab ืื Shift+ ืืงืฉ Tab). ืืืืจ ืืืืจืช ืืคืฉืจืืช ืืืืฉื, ืืืฆืืช ืืงืจืืช ืืงืื ืชืืืช ืื-ืฉืื ืืืฆืืื ืืช ืืชืืขืื ืืืฉืืื ืืคืจืื ืื ืืืจ. ื ืืชื ืืืฉืชืืฉ ืืงืืฆืืจ ืืืงืืืช Alt+d ืืื ืืืฉืช ืืชืืขืื ืืืื.
- ืชืืืืจ ืืฉืคื ืืืคืฉืจ ืืขืช ืืืื ืขื ืขืจืืื ื-hash ืืืืืื ืืืจืืืื ืืื ืฉื ืืืืืช ืืคืชื ืืขืช ืงืจืืื ืืคืื ืงืฆืืืช. ืืืืืื, ืืืงืื ืืืืืื "{x: x, y: y}" ืืชื ืืืื ืืขืช ืืฆืืื "{x:, y:}", ืืืืงืื "foo(x: x, y: y)" - foo( x:, y: )".
- ืชืืืื ืืฆืืื ืืืชืืืืช ืฉื ืืคืืก ืงื ืืืื (ary => [x, y, z]), ืฉืืื ื ืืกืืื ืืช ืขืื ืื ืืกืืื ืืืช.
- ืืืืคืจืืืจ "^" ืืืชืืืืช ืืคืืกืื ืืืื ืืขืช ืืืืื ืืืืืืื ืฉืจืืจืืชืืื, ืืืืืื: Prime.each_cons(2).lazy.find_all{_1 ื-[n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
- ืืืชืืืืช ืืคืืกืื ืฉื ืฉืืจื ืืืช, ืืชื ืืืื ืืืฉืืื ืกืืืจืืื: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
- ืฉืคืช ืืืขืจืืช ืืกืื RBS, ืืืืคืฉืจืช ืืงืืืข ืืช ืืื ื ืืชืืื ืืช ืืืกืืืื ืฉืืื ื ืขืฉื ืฉืืืืฉ, ืืืกืืคื ืชืืืื ืืฆืืื ืืืืื ืืขืืืื ืฉื ืคืจืืืจื ืกืื ืืืืฆืขืืช ืืกืื "<", ืืืกืคื ืชืืืื ืืืื ืืืื ืฉื ืกืืืื ืื ืจืืื, ืืืืขื ืชืืืื ืขืืืจ ืืืกืคืื ืื ืืืื ืืื ื ืื, ืฉืืคืืจ ืืืืฆืืขืื ืืืืืขืช ืืชืืืืช ืืืฉืืช ืจืืืช ืืกืคืจืืืช ืืืื ืืช ืืกืื ืืจืืืืช.
- ืชืืืื ื ืืกืืื ืืช ืืกืืืืืช ืคืืชืื ืืฉืืืืืช ื ืืกืคื ืื ืชื ืืกืื ืืกืืื TypePro, ืืฉืจ ืืืฆืจ ืืขืจืืช RBS ืืืืืกืกืืช ืขื ื ืืชืื ืงืื ืืื ืืืืข ืกืื ืืคืืจืฉ (ืืืืืื, ืืืื ื ืชืืกืฃ ืืฉืืืื TypePro ืขื ืขืืจื VSCode).
- ืกืืจ ืืขืืืื ืฉื ืืฉืืืืช ืืจืืืืช ืืฉืชื ื. ืืืืืื, ืืขืืจ ืจืืืื ืืืืืื "foo[0], bar[0] = baz, qux" ืขืืืื ืืกืืจ baz, qux, foo, bar, ืื ืืขืช foo, bar, baz, qux.
- ื ืืกืคื ืชืืืื ื ืืกืืื ืืช ืืืงืฆืืช ืืืืจืื ืืืืจืืืืช ืืืืฆืขืืช ืื ืื ืื VWA (Variable Width Allocation).
- ืืจืกืืืช ืืขืืืื ืืช ืฉื ืืืืืื ืืื ื ืื ืืืื ืื ืืฉื ืืื ืืืืืืื ืืกืคืจืืื ืืกืื ืืจืืืช. ืืืืืืช net-ftp, net-imap, net-pop, net-smtp, matrix, prime ื-debug ืืืื ืืช.
ืืงืืจ: OpenNet.ru