แแแแแแแแ 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 แแแแแแแ แจแแแฆแฃแแฃแแแ unix-แแก แแกแแแแกแ OS-แแแแก แแฎแแ แแแญแแ แแ x86-64 แแ แฅแแขแแฅแขแฃแ แแก แกแแกแขแแแแแแ แแ แแแแฃแแแกแฎแแแแแ แแแแแ แแฃแแแ (แแแกแแแฅแขแแฃแ แแแแแ แแแฃแแแแแ โ--yjitโ แแ แแจแ แแ แซแแแแแแก แกแขแ แแฅแแแจแ).
- แซแแแแ MJIT JIT แจแแแแแแแแแแก แแแฃแแฏแแแแกแแแฃแแ แจแแกแ แฃแแแแ. Rails-แแก แแแแแงแแแแแแ แแ แแแฅแขแแแแกแแแแก, แแแแฃแแแกแฎแแแแ แแแฅแกแแแแแฃแ แ แฅแแจแ แแแแ (--jit-max-cache) แแแแแแ แแ 100-แแแ 10000 แแแกแขแ แฃแฅแชแแแแแ. แจแแฌแงแแแขแ JIT-แแก แแแแแงแแแแแ 1000-แแ แแแขแ แแแกแขแ แฃแฅแชแแแก แแฅแแแ แแแแแแแแแกแแแแก. Zeitwerk of Rails-แแก แแฎแแ แแแกแแญแแ แแ JIT แแแแ แแฆแแ แแแแ แแแแ, แ แแแแกแแช TracePoint แฉแแ แแฃแแแ แแแแกแแก แฆแแแแกแซแแแแแแแกแแแแก.
- แแแกแจแ แจแแแแก แแแแแแแแ แแแแแฌแแ แแแ debug.gem debugger, แ แแแแแแช แแฎแแ แก แฃแญแแ แก แแแกแขแแแชแแฃแ แแแแแ แแแแก, แแ แแแแแแแก แแแแแ แแฃแ แแแแแแแชแแแก, แแฎแแ แก แฃแญแแ แก แแแขแแแ แแชแแแก แแแแแ แแแแก แแแคแแ แแแแแฃแ แแแขแแ แคแแแกแแแแแ (VSCode แแ Chrome), แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แแแแ แฎแ แแฎแแแแแ แแ แแ แแแแแแ แแชแแกแแแแ แแแแแแแชแแแแแก แแแแแ แแแแกแแแแก, แฃแแ แฃแแแแแงแแคแก REPL แแแแแก แจแแกแ แฃแแแแแก แแแขแแ แคแแแกแ, แแแแแแแแแ แแแฌแแแแแ แขแ แแกแแ แแแแก แจแแกแแซแแแแแแแแแก, แจแแฃแซแแแ แแแแแก แคแ แแแแแแขแแแแก แฉแแฌแแ แ แแ แแแแแแ แแแ. แแแ แ แจแแแแแแแแแแแฃแแ แแแแแ แแแแก lib/debug.rb แแแแฆแแแฃแแแ แแแแแก แแแแแฌแแแแแแแแ.
- แแแแฎแแ แชแแแแแ แจแแชแแแแแแแก แแแแฃแแแฃแ แ แฎแแแแแกแแ แฃแแแ แแแแ แฃแแแแแก แแแแแแก แแแแแ แแจแแแจแ. แจแแชแแแแแก แแแแแจแแแ แแแฌแแแแแฃแแแ แฉแแจแแแแแฃแแ แแ แแแแฃแแแกแฎแแแแแ แฉแแ แแฃแแ Gem แแแแแขแแก error_highlight-แแก แแแแแงแแแแแแ. แจแแชแแแแแก แแแแแจแแแแก แแแแแ แแแแกแแแแก แจแแแแซแแแแ แแแแแแงแแแแ แแแ แแแแขแ แ โ--disable-error_highlightโ. $ ruby โโtest.rb test.rb:1:in "": แแแแฃแกแแแฆแแ แแแ แแแแแแ "time" for 1:Integer (NoMethodError) 1.time {} ^^^^^ แฎแแ แแ แแแฃแแแกแฎแแแ? แฏแแ
- IRB แแแขแแ แแฅแขแแฃแแ แแแแแแแแแแแก แแแ แกแ (REPL, Read-Eval-Print-Loop) แแฎแแ แชแแแแแแก แจแแงแแแแแแ แแแแแก แแแขแแแแขแฃแ แแแกแ แฃแแแแแก (แ แแแแกแแช แแแ แแคแ, แแแแแฉแแแแแ แแแแแจแแแแ แแแแ แซแแแแแแก แจแแงแแแแแก แแแ แแแแขแแแแ, แ แแแแแแ แจแแ แแก แจแแแแซแแแแ แแแแแแแแแแแแ Tab แแ Shift+-แแ. Tab แแแกแแฆแแแ). แแแแ แซแแแแแแก แแแ แแแแขแแก แแ แฉแแแแก แจแแแแแ, แแฅแแ แแแแแฉแแแแแ แแแแแแแฃแ แ แคแแแฏแแ แ, แ แแแแแแช แแฉแแแแแแก แแ แฉแแฃแ แแแแแแแขแแแ แแแแแแจแแ แแแฃแ แแแแฃแแแแขแแชแแแก. แแแแแแแขแฃแ แแก แแแแกแแฎแแแแ Alt+d แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แกแ แฃแ แแแแฃแแแแขแแชแแแแ แฌแแแแแแกแแแแก.
- แแแแก แกแแแขแแฅแกแ แแฎแแ แแซแแแแ แคแฃแแฅแชแแแแแก แแแแแซแแฎแแแแกแแก แแแแจแแแแแแแแแแก แฐแแจ แแแขแแ แแแแแจแ แแ แกแแแแแแซแ แกแแขแงแแแแแก แแ แแฃแแแแขแแแแก แแแแแขแแแแแแก. แแแแแแแแแ, แแแแแแฅแแแก แแแชแแแแ โ{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 in [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 Alocation) แแแฅแแแแแแแก แแแแแงแแแแแแ.
- แฉแแจแแแแแฃแแ แซแแแ แคแแกแ แฅแแแแแก แแแแฃแแแแแก แแแแแฎแแแแฃแแ แแแ แกแแแแ แแ แกแขแแแแแ แขแฃแ แแแแแแแแแแแจแ แจแแขแแแแแ. แฉแแจแแแแแฃแแแ net-ftp, net-imap, net-pop, net-smtp, matrix, prime แแ debug แแแแแขแแแ.
แฌแงแแ แ: opennet.ru