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 ααααΌαααΆααααααα ααααααΆαααΆαααααααααΆαα OSes ααααααααΉα unix αα ααΎαααααααααααααΆαααααΆαααααααα 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 ααααΌαααΆαααα
ααααΈααΆαα
ααα
αΆαααΌαααααΆαα
- ααΆαα’αα»ααααααΆαααααα·α αααααΎαααΎαααααα α»ααα αααα»ααααΆαααΆαααααΆαααΆαααΆαα α αααα‘αααααα·αα ααΆααααααΆααααα α»αααααΌαααΆααααααααΌααααααααΎαααα ααααααΌααααααααΆααααααΆαα½α αα·αααΎαααααΎαααΆαααααΆαααΎα error_highlight α ααΎααααΈαα·αααΆααααααΆααααα α»α α’αααα’αΆα ααααΎααΆαααααα "--disable-error_highlight" α $ ruby ββtest.rb test.rb:1:in "": undefined method "time" for 1:Integer (NoMethodError) 1.time {} ^^^^^ ααΎα’αααα ααααΆαααααα? αα
- αααααααΆαααααΆα’αααααααα IRB (REPL, Read-Eval-Print-Loop) α’αα»ααααααΆαααααααααααααααααααααα·ααααΌααααααΆααααα
αΌα (αα
αααα’αααααΆα ααααα»αααααΌαααΆααααα αΆαααΆαα½ααααααΎααααααΆααααΆααααα
αΌααααα αααΆααααα’αααα’αΆα
ααααΆααααΈααΆαα½αααααΆαα α¬ Shift+ ααααΆααα
α»α
ααα) α αααααΆααααΈααααΎαααΎααααααΎααααα αααα’αααα½αααααΌαααΆααααα αΆααα
αααααααααααα αΆαα―αααΆααααααααΆααααΆαα½αααΆαα»αααααΆαααααΎαααΎαα ααααΌαααΆααααααΆαα
α»α
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 #= > ? [[α£, α₯], [α₯, α§], [α‘α‘, α‘α£]]
- αααα»αβααΆαβααααΌααααβααααΆαβαααααΆααβαααα½α α’αααβα’αΆα βαα»αβααααααα αα [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 α
- ααΆαααααααααΆαααΆαααααα·ααααααααααΆααααΆααααα ααα’αααα αα αΆααααααΆααααααα’αααααααααααΎααααααΆα VVA (ααΆααααα αααααΉαα’ααα) α
- αααααααααΆαααααΎαα αα α»ααααααααΆααααααΌαα»αααααΌααααααααΆααααααΆαα½α αα·αα’αααΈααααα½ααααα αΌααα αααα»ααααααΆααααααααααΆαα αααα αα net-ftp, net-imap, net-pop, net-smtp, matrix, prime αα·α debug packages ααααΌαααΆαααααΆααααααΆαα½αα
ααααα: opennet.ru