αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Ruby 2.7.0

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αŸ” αž€αžΆαžšαžŠαŸ„αŸ‡αž›αŸ‚αž„ Ruby ្.αŸ¦αžŠαŸ‚αž›αž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαžœαžαŸ’αžαž»αžαžΆαž˜αžœαž“αŸ’αž αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαžšαž”αžŸαŸ‹ Perl, Java, Python, Smalltalk, Eiffel, Ada αž“αž·αž„ LispαŸ” αž›αŸαžαž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αžŽαŸ’αžŽ BSD ("2-αžƒαŸ’αž›αžΆ BSDL") αž“αž·αž„ "Ruby" αžŠαŸ‚αž›αžŸαŸ†αžŠαŸ…αž‘αŸ…αž›αžΎαž€αŸ†αžŽαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαž“αŸƒαž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ GPL αž αžΎαž™αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž‡αžΆαž˜αž½αž™ GPLv3 αŸ” Ruby 2.7 αž‚αžΊαž‡αžΆαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž‘αžΈ 2 αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαŸ„αž„αž‘αž»αž€αžŠαŸ‚αž›αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž˜αž»αžαž„αžΆαžš αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αžΆαžšαžαŸ‚αž‘αžΆαŸ†αžšαŸ€αž„αžšαžΆαž›αŸ‹ 3-XNUMX αžαŸ‚αŸ”

αžŸαŸ†αžαžΆαž“αŸ‹ αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’:

  • αž–αž·αžŸαŸ„αž’αž“αŸ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž›αŸ†αž“αžΆαŸ† (αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž›αŸ†αž“αžΆαŸ†) αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž˜αŸ’αžαž„αž‘αŸ€αžαž›αžΎαžœαžαŸ’αžαž»αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž αžΎαž™αž•αŸ’αžαž›αŸ‹αžαž˜αŸ’αž›αŸƒαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž“αžΉαž„αž›αŸ†αž“αžΆαŸ†αŸ”

    αž€αžšαžŽαžΈ [0, [1, 2, 3]] αž€αŸ’αž“αž»αž„ [a, [b, *c]] αž”αŸ‰αžΆ #=> 0
    pb #=> ៑
    pc #=> [2, 3] αž…αž”αŸ‹

    αž€αžšαžŽαžΈ {a: 0, b: 1}
    αž€αŸ’αž“αž»αž„ {a: 0, x: 1}
    αŸ– αž˜αž·αž“αž’αžΆαž…αž…αžΌαž›αž”αžΆαž“αŸ”
    αž€αŸ’αž“αž»αž„ {a: 0, b: var}
    p var #=> ៑
    αž”αž‰αŸ’αž…αž”αŸ‹

  • αžŸαŸ‚αž›αž“αŸƒαž€αžΆαžšαž‚αžŽαž“αžΆαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜ irb (REPL, Read-Eval-Print-Loop) αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž…αŸ’αžšαžΎαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž€αžΆαžšαž’αžΆαž“ αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Ruby αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš rdoc αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž˜αžΎαž›αž–αŸαžαŸŒαž˜αžΆαž“αž™αŸ„αž„αž›αžΎαžαŸ’αž“αžΆαž€αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž˜αŸ‰αžΌαžŒαž»αž› αž“αž·αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž€αŸ’αž“αž»αž„ irb αŸ” αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž”αž“αŸ’αž›αž·αž…αž–αžŽαŸŒαž“αŸƒαž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠαžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αžαžΆαž˜αžšαž™αŸˆ Binding #irb αž“αž·αž„αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžœαžαŸ’αžαž»αžαŸ’αž“αžΆαž€αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ”

    αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Ruby 2.7.0

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαž˜αžΌαž›αžŸαŸ†αžšαžΆαž˜αžαžΌαž… (Compaction GC) αžŠαŸ‚αž›αž’αžΆαž… defragment αžαŸ†αž”αž“αŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž˜αž€αž–αžΈαž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Ruby αž–αž αž»αžαŸ’αžŸαŸ‚αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžαŸ’αž…αž”αŸ‹αžœαžαŸ’αžαž»αž“αŸ…αž›αžΎαž‚αŸ†αž“αžš αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš GC.compact αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž‘αŸ†αž–αŸαžšαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎ αž“αž·αž„αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– heap αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ”
    CoW (αž…αž˜αŸ’αž›αž„αž›αžΎαž€αžΆαžšαžŸαžšαžŸαŸαžš) αŸ”

  • αž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„ αžšαŸ€αž”αž…αŸ†αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αŸ‚αž€αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈ ("def foo(a,b,c)") αž“αž·αž„αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡ ("def foo(key: val)") αŸ” αž€αžΆαžšαž”αž˜αŸ’αž›αŸ‚αž„αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡ αž“αž·αž„αž‘αžΈαžαžΆαŸ†αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’ αž αžΎαž™αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžΆαžαžΆ Ruby 3.0 αž‘αŸαŸ” αž‡αžΆαž–αž·αžŸαŸαžŸ αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž‡αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡αž‡αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŸαž‰αŸ’αž‰αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž“αž·αž„αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αŸ‚αž€αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž‘αŸ…αž‡αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αžΈαžαžΆαŸ†αž„ αž“αž·αž„αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡αŸ”

    def foo (αž‚αž“αŸ’αž›αžΉαŸ‡αŸ– ៀ្); αž”αž‰αŸ’αž…αž”αŸ‹; foo({key: 42}) # αž”αžΆαž“αž–αŸ’αžšαž˜αžΆαž“
    def foo(**kw); αž”αž‰αŸ’αž…αž”αŸ‹; foo({key: 42}) # αž”αžΆαž“αž–αŸ’αžšαž˜αžΆαž“
    def foo (αž‚αž“αŸ’αž›αžΉαŸ‡αŸ– ៀ្); αž”αž‰αŸ’αž…αž”αŸ‹; foo(**{key: 42}) # αž™αž›αŸ‹αž–αŸ’αžšαž˜
    def foo(**kw); αž”αž‰αŸ’αž…αž”αŸ‹; foo(**{key: 42}) # αž™αž›αŸ‹αž–αŸ’αžšαž˜

    def foo(h, **kw); αž”αž‰αŸ’αž…αž”αŸ‹; foo (αž‚αž“αŸ’αž›αžΉαŸ‡αŸ– 42) # αž”αžΆαž“αž–αŸ’αžšαž˜αžΆαž“
    def foo(h, key: 42); αž”αž‰αŸ’αž…αž”αŸ‹; foo (αž‚αž“αŸ’αž›αžΉαŸ‡αŸ– 42) # αž”αžΆαž“αž–αŸ’αžšαž˜αžΆαž“
    def foo(h, **kw); αž”αž‰αŸ’αž…αž”αŸ‹; foo({key: 42}) # αž™αž›αŸ‹αž–αŸ’αžšαž˜
    def foo(h, key: 42); αž”αž‰αŸ’αž…αž”αŸ‹; foo({key: 42}) # αž™αž›αŸ‹αž–αŸ’αžšαž˜

    def foo(h={}, key: 42); αž”αž‰αŸ’αž…αž”αŸ‹; foo("αž€αžΌαž“αžŸαŸ„" => 43, αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…: 42) # αž”αžΆαž“αž–αŸ’αžšαž˜αžΆαž“
    def foo(h={}, key: 42); αž”αž‰αŸ’αž…αž”αŸ‹; foo({"key" => 43, key: 42}) # αž–αŸ’αžšαž˜αžΆαž“
    def foo(h={}, key: 42); αž”αž‰αŸ’αž…αž”αŸ‹; foo({"key" => 43}, key: 42) # αž™αž›αŸ‹αž–αŸ’αžšαž˜

    def foo(opt={}); αž”αž‰αŸ’αž…αž”αŸ‹; foo(αž‚αž“αŸ’αž›αžΉαŸ‡αŸ– 42) # αž™αž›αŸ‹αž–αŸ’αžšαž˜

    def foo(h, **nil); αž”αž‰αŸ’αž…αž”αŸ‹; foo(key: 1) # ArgumentError
    def foo(h, **nil); αž”αž‰αŸ’αž…αž”αŸ‹; foo(**{key: 1}) # ArgumentError
    def foo(h, **nil); αž”αž‰αŸ’αž…αž”αŸ‹; foo("str" ​​​​ => 1) # αž€αŸ†αž αž»αžŸαž†αŸ’αž‚αž„
    def foo(h, **nil); αž”αž‰αŸ’αž…αž”αŸ‹; foo({key: 1}) # αž™αž›αŸ‹αž–αŸ’αžšαž˜
    def foo(h, **nil); αž”αž‰αŸ’αž…αž”αŸ‹; foo({"str" ​​​​ => 1}) # αž™αž›αŸ‹αž–αŸ’αžšαž˜

    h = {}; def foo(*a) αž”αž‰αŸ’αž…αž”αŸ‹; foo(**h) # [] h = {}; def foo(a) αž”αž‰αŸ’αž…αž”αŸ‹; foo(**h) # {} αž“αž·αž„αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“
    h = {}; def foo(*a) αž”αž‰αŸ’αž…αž”αŸ‹; foo(h) # [{}] h = {}; def foo(a) αž”αž‰αŸ’αž…αž”αŸ‹; foo(h) # {}

  • αž±αž€αžΆαžŸαŸ” αžŠαŸ„αž™αž”αŸ’αžšαžΎαžˆαŸ’αž˜αŸ„αŸ‡αž’αžαŸαžšαž›αŸαžαžšαŸ€αž„αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž”αŸ’αž›αž»αž€αŸ”

    [1, 2, 3].αž“αžΈαž˜αž½αž™αŸ— { αžŠαžΆαž€αŸ‹ @1 } # αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„ [1, 2, 3].each { |i| αžŠαžΆαž€αŸ‹αžαŸ’αž‰αž»αŸ† }

  • αž‡αŸ†αž“αž½αž™αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αž½αžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžŠαŸ†αž”αžΌαž„αŸ”

    ary[..3] #αžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„ ary[0..3] rel.where(αž›αž€αŸ‹αŸ– ..100)

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžšαžΆαž”αŸ‹αž›αŸαž#αžŸαžšαž»αž” αžŠαŸ‚αž›αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αžŠαž„αžŠαŸ‚αž›αž’αžΆαžαž»αž“αžΈαž˜αž½αž™αŸ—αž›αŸαž…αž‘αžΎαž„αŸ”

    ["a", "b", "c", "b"].tally
    #=> {β€œa”=>1, β€œb”=>2, β€œc”=>1}

  • αž€αžΆαžšαž αŸ…αžαžΆαž˜αžœαž·αž’αžΈαž―αž€αž‡αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαžŠαŸ„αž™αž–αŸ’αž™αž‰αŸ’αž‡αž“αŸˆ "αžαŸ’αž›αž½αž“αž―αž„"

    def αž αŸ’αžœαžΌ
    αž”αž‰αŸ’αž…αž”αŸ‹
    αž―αž€αž‡αž“αŸ– αž αŸ’αžœαžΌ
    self.foo

  • Added Enumerator::Lazy#eager method αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžšαžΆαž”αŸ‹αž‘αŸ€αž„αž‘αžΆαžαŸ‹αž–αžΈαž’αŸ’αž“αž€αžšαžΆαž”αŸ‹αž›αŸαžαžαŸ’αž‡αž·αž› (Enumerator::Lazy)αŸ”

    a = %w(foo bar baz)
    e=a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.αž’αž“αŸ’αž‘αŸ‡αžŸαžΆαžš
    p e.class #=> Enumerator
    p e.map {|x| x + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"]

  • αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ JIT αž–αž·αžŸαŸ„αž’αž“αŸαž”αžΆαž“αž”αž“αŸ’αž αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž’αŸ„αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž—αžΆαžŸαžΆ Ruby αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ JIT αžšαž”αžŸαŸ‹ Ruby αžŠαŸ†αž”αžΌαž„αžŸαžšαžŸαŸαžšαž€αžΌαžŠ C αž‘αŸ…αžαžΆαžŸ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ C αžαžΆαž„αž€αŸ’αžšαŸ…αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ (αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž αŸ… GCC, Clang, αž“αž·αž„ Microsoft VC++) αŸ” αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž’αž“αž»αžœαžαŸ’αžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αŸ’αž“αž»αž„αž‡αž½αžšαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž“αŸƒαžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αŸ†αž‘αž»αž„αž–αŸαž›αž…αž„αž€αŸ’αžšαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžΆ αžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸƒ "--jit-min-calls" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΎαž“αž‘αžΎαž„αž–αžΈ 5 αž‘αŸ… 10000 αž“αž·αž„ "--jit-max- αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹" αž–αžΈ 1000 αž‘αŸ… 100 αŸ”
  • αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹ CGI.escapeHTML, Monitor αž“αž·αž„ MonitorMixin αŸ”
  • αž˜αŸ‰αžΌαžŒαž»αž›#name, true.to_s, false.to_s, αž“αž·αž„ nil.to_s αž’αžΆαž“αžΆαžαžΆαžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž˜αž€αžœαž·αž‰αžŠαŸ‚αž›αž˜αž·αž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ”
  • αž‘αŸ†αž αŸ†αž“αŸƒαž―αž€αžŸαžΆαžšαž‚αŸ„αž›αž–αžΈαžšαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™ RubyVM::InstructionSequence#to_binary; method αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αŸ”
  • αž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž“αŸƒαžŸαž˜αžΆαžŸαž—αžΆαž‚αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ αžšαž½αž˜αž‘αžΆαŸ†αž„
    Bundler 2.1.2, RubyGems 3.1.2,
    Racc 1.4.15,
    CSV 3.1.2, REXML 3.2.3,
    RSS 0.2.8,
    αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŸαŸ’αž€αŸαž“αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžš 1.0.3;

  • αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžΈαž€αž‰αŸ’αž…αž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αŸ…αž€αž‰αŸ’αž…αž”αŸ‹αžαŸ’αž”αžΌαž„αžαžΆαž„αž€αŸ’αžšαŸ…
    CMath (αžαŸ’αž”αžΌαž„αž–αŸαž‡αŸ’αžš)
    αžŸαŸ’αž€αŸ‚αž“ (αžŸαŸ’αž€αŸ‚αž“αžαŸ’αž”αžΌαž„),
    αžŸαŸ‚αž› (αžŸαŸ‚αž› αžαŸ’αž”αžΌαž„)
    αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜ (αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžαŸ’αž”αžΌαž„),
    αžαŸ’αž”αžΌαž„αž‘αž‘αžΉαž˜ (Thwait Gem),
    E2MM (αžαŸ’αž”αžΌαž„ e2mmap) αŸ”

  • αž˜αŸ‰αžΌαžŒαž»αž› stdlib αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž“αŸ…αž›αžΎαž‚αŸαž αž‘αŸ†αž–αŸαžš rubygems.orgαŸ–
    αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš,
    cgi,
    αž”αŸ’αžšαžαž·αž—αžΌ
    getoptlong,
    αž”αŸ‰αž»αž”αžŸαž»αž‘αŸ’αž’,
    αžŸαž»αž‘αŸ’αž’-smtp
    αž”αžΎαž€ 3,
    αž αžΆαž„β€‹αž›αž€αŸ‹β€‹αž‘αŸ†αž“αž·αž‰
    αž›αžΈαžœαžαž»αž“αŸ” αž˜αŸ‰αžΌαžŒαž»αž›αž˜αŸ‰αžΌαž“αžΈαž‘αŸαžšαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ… rubygems.org αž‘αŸαŸ”
    αž’αŸ’αž“αž€αžŸαž„αŸ’αž€αŸαžαž€αžΆαžšαžŽαŸ
    αžŠαž›αŸ‹β€‹αž˜αŸ‰αŸ„αž„,
    αžŠαžΆαž“,
    αž™αžΌαžšαžΈ
    yaml αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‚αžαŸ‹αž•αŸ’αž‚αž„αŸ‹αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ ruby-core αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

  • αž€αžΆαžšαž€αžŸαžΆαž„ Ruby αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ C αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C99 αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹