рд░реБрдмреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ 2.7.0 рд╕реЛрдбрдгреЗ

рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдПрдХрд╛ рд╡рд░реНрд╖рд╛рдирдВрддрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд░реАрд▓рд┐рдЭ рд░реБрдмреА 2.7.0, рдбрд╛рдпрдиреЕрдорд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЬреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрдордзреНрдпреЗ рдЕрддреНрдпрдВрдд рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗ рдЖрдгрд┐ Perl, Java, Python, Smalltalk, Eiffel, Ada рдЖрдгрд┐ Lisp рдЪреА рдЙрддреНрдХреГрд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ. рдкреНрд░рдХрд▓реНрдк рдХреЛрдб BSD ("2-рдХреНрд▓реЙрдЬ BSDL") рдЖрдгрд┐ "рд░реБрдмреА" рдкрд░рд╡рд╛рдиреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ GPL рдкрд░рд╡рд╛рдиреНрдпрд╛рдЪреНрдпрд╛ рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреАрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЛ рдЖрдгрд┐ GPLv3 рд╢реА рдкреВрд░реНрдгрдкрдгреЗ рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ. рд░реБрдмреА 2.7 рд╣реЗ рдирд┐рдпреЛрдЬрд┐рдд рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдПрдХ рднрд╛рдЧ рдореНрд╣рдгреВрди рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рд╕рд╛рддрд╡реЗ рдореЛрдареЗ рдкреНрд░рдХрд╛рд╢рди рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд╡рд╛рдвреАрд╕рд╛рдареА рдПрдХ рд╡рд░реНрд╖ рдмрд╛рдЬреВрд▓рд╛ рдареЗрд╡рдгреЗ рдЖрдгрд┐ 2-3 рдорд╣рд┐рдиреНрдпрд╛рдВрдЪреЗ рдкреЕрдЪ рд░рд┐рд▓реАрдЬ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.

рдореБрдЦреНрдп рд╕реБрдзрд╛рд░рдгрд╛:

  • рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд░реНрдерди рдирдореБрдирд╛ рдЬреБрд│рдгрд╛рд░реЗ (рдирдореБрдирд╛ рдЬреБрд│рдд рдЖрд╣реЗ) рджрд┐рд▓реЗрд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рдгреЗ рдЖрдгрд┐ рдкреЕрдЯрд░реНрди рдЬреБрд│рдд рдЕрд╕рд▓реНрдпрд╛рд╕ рдореВрд▓реНрдп рдирд┐рдпреБрдХреНрдд рдХрд░рдгреЗ.

    рдХреЗрд╕ [0, [1, 2, 3]] [a, [b, *c]] pa #=> 0 рдордзреНрдпреЗ
    pb #=> рез
    pc #=> [реи, рей] рд╢реЗрд╡рдЯ

    рдХреЗрд╕ {a: 0, b: 1}
    in{a:0,x:1}
    : рдЕрдиреБрдкрд▓рдмреНрдз
    {a: 0, b: var} рдордзреНрдпреЗ
    p var #=> 1
    рд╢реЗрд╡рдЯ

  • рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡реНрд╣ рдХреЕрд▓реНрдХреНрдпреБрд▓реЗрд╢рди irb (REPL, Read-Eval-Print-Loop) рдЪреНрдпрд╛ рд╢реЗрд▓рдордзреНрдпреЗ рдЖрддрд╛ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрдирд╛рдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрд╣реЗрдд, рдЬреА рд░реАрдбрд▓рд╛рдЗрди-рд╕реБрд╕рдВрдЧрдд рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВрди рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЖрд╣реЗ. рд░реЗрд╖рд╛рд░реБрдмреА рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ. rdoc рд╕рд╛рдареА рд╕рдорд░реНрдерди рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ irb рдордзреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдЧ, рдореЙрдбреНрдпреВрд▓ рдЖрдгрд┐ рдкрджреНрдзрддреАрдВрд╡рд░реАрд▓ рд╕рдВрджрд░реНрдн рдорд╛рд╣рд┐рддреА рдкрд╛рд╣рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. Binding#irb рджреНрд╡рд╛рд░реЗ рджрд░реНрд╢рд╡рд┐рд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрд╕рд╣ рд░реЗрд╖рд╛рдВрдЪреЗ рд░рдВрдЧреАрдд рд╣рд╛рдпрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдЖрдгрд┐ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рддрдкрд╛рд╕рдгреА рдХрд░рдгреНрдпрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗрдд.

    рд░реБрдмреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ 2.7.0 рд╕реЛрдбрдгреЗ

  • рдПрдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рдЧрд╛рд░реНрдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ (рдХреЙрдореНрдкреЕрдХреНрд╢рди GC) рдЬреЛрдбрд▓рд╛ рдЬреЛ рдореЗрдорд░реАрдЪреНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рд▓рд╛ рдбреАрдлреНрд░реЕрдЧрдореЗрдВрдЯ рдХрд░реВ рд╢рдХрддреЛ, рдХрд╛рд╣реА рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рд░реБрдмреА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рди рджрд░рдореНрдпрд╛рди рдореЗрдорд░реА рдлреНрд░реЕрдЧрдореЗрдВрдЯреЗрд╢рдирдореБрд│реЗ рдзреАрдореЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрд┐ рд╡рд╛рдвреАрд╡ рдореЗрдорд░реА рд╡рд╛рдкрд░рд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡реВ рд╢рдХрддреЛ. рдврд┐рдЧрд╛рд▒реНрдпрд╛рд╡рд░ рд╡рд╕реНрддреВ рдкреЕрдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реБрдЪрд╡рд▓реЗ GC.compact рдкрджреНрдзрдд, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдореЗрдорд░реА рдкреГрд╖реНрдард╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА рдвреАрдЧ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
    CoW (рдХреЙрдкреА-рдСрди-рд░рд╛рдИрдЯ).

  • рдкрд╛рд░ рдкрд╛рдбрд▓реЗ рд╕реВрдЪреА рд╕реНрдерд┐рддреА (тАЬdef foo(a,b,c)тАЭ) рдЖрдгрд┐ рдХреАрд╡рд░реНрдб (тАЬdef foo(key: val)тАЭ) рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░реНрдХ рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рдЪреА рддрдпрд╛рд░реА рдХрд░рдд рдЖрд╣реЗ. рдХреАрд╡рд░реНрдб рдЖрдгрд┐ рд╕реНрдерд╛рдирд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдпреБрдХреНрддрд┐рд╡рд╛рдж рд░реВрдкрд╛рдВрддрд░рдг рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рд░реБрдмреА 3.0 рд╢рд╛рдЦреЗрдд рд╕рдорд░реНрдерд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА. рд╡рд┐рд╢реЗрд╖рдд:, рд╢реЗрд╡рдЯрдЪрд╛ рдпреБрдХреНрддрд┐рд╡рд╛рдж рдХреАрд╡рд░реНрдб рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рдгреЗ, рдХреАрд╡рд░реНрдб-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░реНрдХрд╛рдВрдирд╛ рд╢реЗрд╡рдЯрдЪреЗ рд╣реЕрд╢ рдкреЕрд░рд╛рдореАрдЯрд░ рдореНрд╣рдгреВрди рдкрд╛рд╕ рдХрд░рдгреЗ, рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪрд╛ рдпреБрдХреНрддрд┐рд╡рд╛рдж рдкреЛрдЭрд┐рд╢рдирд▓ рдЖрдгрд┐ рдХреАрд╡рд░реНрдб рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдордзреНрдпреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдгреЗ рд╣реЗ рд╡рдЧрд│рд▓реЗ рдЖрд╣реЗ.

    def foo (рдХреА: 42); рд╢реЗрд╡рдЯ foo({key: 42}) # рдЪреЗрддрд╛рд╡рдгреА рджрд┐рд▓реА
    def foo(**kw); рд╢реЗрд╡рдЯ foo({key: 42}) # рдЪреЗрддрд╛рд╡рдгреА рджрд┐рд▓реА
    def foo (рдХреА: 42); рд╢реЗрд╡рдЯ foo(**{рдХреА: рекреи}) # рдареАрдХ рдЖрд╣реЗ
    def foo(**kw); рд╢реЗрд╡рдЯ foo(**{рдХреА: рекреи}) # рдареАрдХ рдЖрд╣реЗ

    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={}, рдХреА: 42); рд╢реЗрд╡рдЯ foo("key" => 43, рдХреА: 42) # рдЪреЗрддрд╛рд╡рдгреА рджрд┐рд▓реА
    def foo(h={}, рдХреА: 42); рд╢реЗрд╡рдЯ foo({"key" => 43, key: 42}) # рдЪреЗрддрд╛рд╡рдгреА рджрд┐рд▓реА
    def foo(h={}, рдХреА: 42); рд╢реЗрд╡рдЯ foo({"key" => 43}, рдХреА: 42) # рдареАрдХ рдЖрд╣реЗ

    def foo(opt={}); рд╢реЗрд╡рдЯ foo (рдХреА: 42) # рдареАрдХ рдЖрд╣реЗ

    def foo(h, **nil); рд╢реЗрд╡рдЯ foo(key: 1) # ArgumentError
    def foo(h, **nil); рд╢реЗрд╡рдЯ foo(**{рдХреА: 1}) # рд╡рд┐рддрд░реНрдХ рддреНрд░реБрдЯреА
    def foo(h, **nil); рд╢реЗрд╡рдЯ foo("str" тАЛтАЛ=> 1) # рд╡рд┐рддрд░реНрдХ рддреНрд░реБрдЯреА
    def foo(h, **nil); рд╢реЗрд╡рдЯ foo({рдХреА: 1}) # рдареАрдХ рдЖрд╣реЗ
    def foo(h, **nil); рд╢реЗрд╡рдЯ foo({"str" тАЛтАЛ=> 1}) # рдареАрдХ рдЖрд╣реЗ

    h = {}; def foo(*a) a end; foo(**h) # [] h = {}; def foo(a) a end; foo(**h) # {} рдЖрдгрд┐ рдЪреЗрддрд╛рд╡рдгреА
    h = {}; def foo(*a) end; foo(h) # [{}] h = {}; def foo(a) end; foo(h) # {}

  • рд╕рдВрдзреА рдмреНрд▓реЙрдХ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдХреНрд░рдорд╛рдВрдХрд┐рдд рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдирд╛рд╡реЗ рд╡рд╛рдкрд░рдгреЗ.

    [1, 2, 3].рдкреНрд░рддреНрдпреЗрдХ { @1 рдареЗрд╡рддреЗ } # [рез, реи, рей].рдкреНрд░рддреНрдпреЗрдХ { |i| рдореА рдареЗрд╡рддреЛ }

  • рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╢реНрд░реЗрдгреАрдВрд╕рд╛рдареА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд░реНрдерди.

    ary[..3] # ary[0..3] rel.where(рд╡рд┐рдХреНрд░реА: ..100) рд╕рд╛рд░рдЦреЗ

  • рдЧрдгрдгреНрдпрд╛рдпреЛрдЧреНрдп#рдЯреЕрд▓реА рдкрджреНрдзрдд рдЬреЛрдбрд▓реА, рдЬреА рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХрд┐рддреА рд╡реЗрд│рд╛ рджрд┐рд╕рд▓реА рдпрд╛рдЪреА рдЧрдгрдирд╛ рдХрд░рддреЗ.

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

  • рд╢рд╛рдмреНрджрд┐рдХ "рд╕реНрд╡" рд╕рд╣ рдЦрд╛рдЬрдЧреА рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рдЖрд╣реЗ

    def foo
    рд╢реЗрд╡рдЯ
    рдЦрд╛рдЬрдЧреА :foo
    self.foo

  • рдЖрд│рд╢реА рдкреНрд░рдЧрдгрдХ (рдЧрдгрдХ::рдЖрд│рд╢реА) рдХрдбреВрди рдирд┐рдпрдорд┐рдд рдЧрдгрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЧрдгрдХ::рдЖрд│рд╢реА#рдЗрдЧреЗрд░ рдкрджреНрдзрдд рдЬреЛрдбрд▓реА.

    a = %w(foo bar baz)
    e = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.рдЖрддреБрд░
    p e.class #=> рдкреНрд░рдЧрдгрдХ
    p e.map {|x| x + "?" } #=> [тАЬрдлреВ!?тАЭ, тАЬрдмрд╛рд░!?тАЭ, тАЬрдмрд╛рдЭ!?тАЭ]

  • рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ JIT рдХрдВрдкрд╛рдЗрд▓рд░рдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдЪрд╛рд▓реВрдЪ рдЖрд╣реЗ, рдЬреЛ рд░реБрдмреА рднрд╛рд╖реЗрддреАрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд рд▓рдХреНрд╖рдгреАрдп рд╕реБрдзрд╛рд░рдгрд╛ рдХрд░реВ рд╢рдХрддреЛ. рд░реБрдмреАрдЪрд╛ JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд░рдердо рдбрд┐рд╕реНрдХрд╡рд░ C рдХреЛрдб рд▓рд┐рд╣рд┐рддреЛ, рдЖрдгрд┐ рдирдВрддрд░ рдорд╢реАрди рд╕реВрдЪрдирд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд╛рд╣реНрдп C рдХрдВрдкрд╛рдЗрд▓рд░рд▓рд╛ рдХреЙрд▓ рдХрд░рддреЛ (GCC, Clang, рдЖрдгрд┐ Microsoft VC++ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддреЛ). рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЗрдирд▓рд╛рдЗрди рдЙрдкрдпреЛрдЬрдирд╛рд╕рд╛рдареА рдкрджреНрдзрдд рд▓рд╛рдЧреВ рдХрд░рддреЗ, рд╕рдВрдХрд▓рдирд╛рджрд░рдореНрдпрд╛рди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдореЛрдбреНрд╕рдЪрд╛ рдирд┐рд╡рдбрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, тАЬ--рдЬрд┐рдд-рдорд┐рди-рдХреЙрд▓тАЭ рдЪреЗ рдбреАрдлреЙрд▓реНрдЯ рдореВрд▓реНрдп 5 рд╡рд░реВрди 10000 рдкрд░реНрдпрдВрдд рд╡рд╛рдврд╡рд▓реЗ тАЛтАЛрдЬрд╛рддреЗ рдЖрдгрд┐ тАЬ--jit-max- рдХреЕрд╢реЗ" 1000 рддреЗ 100 рдкрд░реНрдпрдВрдд.
  • CGI.escapeHTML, Monitor рдЖрдгрд┐ MonitorMixin рдЪреЗ рд╕реБрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди.
  • Module#name, true.to_s, false.to_s рдЖрдгрд┐ nil.to_s рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛рдд рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯрд╕рд╛рдареА рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЕрд╕рд▓реЗрд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░рдд рдЖрд▓реА рдЖрд╣реЗ.
  • RubyVM::InstructionSequence#to_binary; рдкрджреНрдзрддреАрджреНрд╡рд╛рд░реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдпрдирд░реА рдлрд╛рдЗрд▓реНрд╕рдЪрд╛ рдЖрдХрд╛рд░ рдХрдореА рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.
  • рдпрд╛рд╕рд╣ рдЕрдВрдЧрднреВрдд рдШрдЯрдХрд╛рдВрдЪреНрдпрд╛ рдЕрджреНрдпрддрдирд┐рдд рдЖрд╡реГрддреНрддреНрдпрд╛
    рдмрдВрдбрд▓рд░ 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 (cmath рд░рддреНрди),
    рд╕реНрдХреЕрдирдл (рд╕реНрдХреЕрдирдл рд░рддреНрди),
    рд╢реЗрд▓ (рд╢реЗрд▓ рд░рддреНрди)
    рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдпрдЭрд░ (рд╕рд┐рдВрдХ рд░рддреНрди),
    рдереНрд░реЗрдбреНрд╕ рд╡реЗрдЯ (рдерд╡реЗрдЯ рд░рддреНрди),
    E2MM (e2mmap рд░рддреНрди).

  • рдбреАрдлреЙрд▓реНрдЯ stdlib рдореЙрдбреНрдпреВрд▓ rubygems.org рд╡рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд:
    рдмреЗрдВрдЪрдорд╛рд░реНрдХ
    cgi
    рдкреНрд░рддрд┐рдирд┐рдзреА
    рд▓рд╛рдВрдмрд▓рдЪрдХ,
    рдиреЗрдЯ-рдкреЙрдк,
    net-smtp
    рдЙрдШрдбрд╛рей,
    pstore,
    рд╕рд┐рдВрдЧрд▓рдЯрди рдореЙрдирд┐рдЯрд░ рдореЙрдбреНрдпреВрд▓реНрд╕ rubygems.org рд╡рд░ рд╣рд▓рд╡рд▓реЗ рдирд╛рд╣реАрдд
    рдирд┐рд░реАрдХреНрд╖рдХ,
    рд╡реЗрд│ рд╕рдВрдкрд▓рд╛,
    рдЯреНрд░реЗрд╕рд░
    рдЙрд░реА,
    yaml, рдЬреЗ рдлрдХреНрдд рд░реБрдмреА-рдХреЛрд░рдордзреНрдпреЗ рдкреБрд░рд╡рд▓реЗ рдЬрд╛рддреЗ.

  • рд░реБрдмреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрддрд╛ C99 рдорд╛рдирдХрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░рд╛ C рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛