ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Ruby ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš 2.7.0

ื ืึธืš ืึท ื™ืึธืจ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืืจื•ื™ืก ืžืขืœื“ื•ื ื’ ืจื•ื‘ื™ืŸ 2.7.0, ืึท ื“ื™ื ืึทืžื™ืฉ ื›ื™ื™ืคืขืฅ-ืึธืจื™ืขื ื˜ื™ื“ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ื•ื•ืึธืก ืื™ื– ื”ืขื›ืกื˜ ืขืคืขืงื˜ื™ื•ื• ืื™ืŸ ืคึผืจืึธื’ืจืึทื ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื™ื ืงืึธืจืคึผืขืจื™ื™ืฅ ื“ื™ ื‘ืขืกื˜ืขืจ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ Perl, Java, Python, Smalltalk, Eiffel, Ada ืื•ืŸ Lisp. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืงืึธื“ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ BSD ("2-ืงืœืึธื– BSDL") ืื•ืŸ "ืจื•ื‘ื™" ืœื™ื™ืกืึทื ืกื™ื–, ื•ื•ืึธืก ืจืขืคืขืจืก ืฆื• ื“ื™ ืœืขืฆื˜ืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ GPL ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืื•ืŸ ืื™ื– ื’ืึธืจ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ GPLv3. Ruby 2.7 ืื™ื– ื“ืขืจ ื–ื™ื‘ืขื˜ืขืจ ื”ื•ื™ืคึผื˜ ืžืขืœื“ื•ื ื’ ืฆื• ื–ื™ื™ืŸ ืคึผืจืึธื“ื•ืกืขื“ ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ืึท ืคึผืœืึทื ื ืขื“ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืจืึธืฆืขืก ื•ื•ืึธืก ื™ื ืงืœื•ื“ื– ืึท ื™ืึธืจ ืคึฟืึทืจ ืฉื˜ืจื™ืš ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืื•ืŸ ืึท 2-3 ื—ื•ื“ืฉ ืœืึทื˜ืข ืžืขืœื“ื•ื ื’.

ื”ื•ื™ืคึผื˜ ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ:

  • ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืžื•ืกื˜ืขืจ ืจื™ื›ื˜ืŸ (ืžื•ืกื˜ืขืจ ืจื™ื›ื˜ืŸ) ืฆื• ื™ื˜ืขืจื™ื™ื˜ ืื™ื‘ืขืจ ื“ื™ ื’ืขื’ืขื‘ืŸ ื›ื™ื™ืคืขืฅ ืื•ืŸ ื‘ืึทืฉื˜ื™ืžืขืŸ ืึท ื•ื•ืขืจื˜ ืื•ื™ื‘ ืขืก ืื™ื– ืึท ืžื•ืกื˜ืขืจ ื’ืœื™ื™ึทื›ืŸ.

    ืคืึทืœ [0, [1, 2, 3]] ืื™ืŸ [ืึท, [ื‘, *c]] ืคึผืึท #=> 0
    pb #=> 1
    ืคึผื™ืกื™ #=> [2, 3] ืกื•ืฃ

    ืคืึทืœ {ืึท: 0, ื‘: 1}
    ืื™ืŸ {ืึท:0,ืงืก:1}
    :ื•ื ืจื™ื˜ืฉืึทื‘ืึทืœ
    ืื™ืŸ {ืึท: 0, ื‘: ื•ื•ืึทืจ}
    p var #=> 1
    ืขืง

  • ื“ื™ ืฉืึธืœ ืคื•ืŸ ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื• ื—ืฉื‘ื•ื ื•ืช ื™ืจื‘ (REPL, Read-Eval-Print-Loop) ืื™ืฆื˜ ื”ืื˜ ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ืžื•ืœื˜ื™-ืฉื•ืจื” ืขื“ื™ื˜ื™ื ื’, ื™ืžืคึผืœืึทืžืขื ืึทื“ ืžื™ื˜ ืึท ืจืขื“ืœื™ื ืข-ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืจืขืœื™ื™ืŸื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ืจื•ื‘ื™. ืกื•ืคึผืคึผืึธืจื˜ ืคึฟืึทืจ rdoc ืื™ื– ื™ื ืึทื’ืจื™ื™ื˜ื™ื“, ื•ื•ืึธืก ืึทืœืึทื•ื– ื•ื•ื™ื•ื™ื ื’ ืจืขืคึฟืขืจืขื ืฅ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ืกืคึผืขืกื™ืคื™ืขื“ ืงืœืืกืŸ, ืžืึทื“ื–ืฉื•ืœื– ืื•ืŸ ืžืขื˜ื”ืึธื“ืก ืื™ืŸ ื™ืจื‘. ื‘ื•ื ื˜ ื›ื™ื™ืœื™ื™ื˜ื™ื ื’ ืคื•ืŸ ืฉื•ืจื•ืช ืžื™ื˜ ืงืึธื“ ื’ืขื•ื•ื™ื–ืŸ ื“ื•ืจืš Binding #irb ืื•ืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ื™ื ืกืคึผืขืงื˜ื™ื ื’ ื‘ืึทื–ืข ืงืœืึทืก ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜.

    ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Ruby ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš 2.7.0

  • ื ืงืึธืžืคึผืึทืงื˜ื™ืึธืŸ ื’ืง ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ื•ื•ืึธืก ืงืขื ืขืŸ ื“ืขืคืจืึทื’ืžืขื ื˜ ืึท ื’ืขื’ื ื˜ ืคื•ืŸ ื–ื›ึผืจื•ืŸ, ืกืึทืœื•ื•ื™ื ื’ ื“ื™ ืคึผืจืึธื‘ืœืขืžืก ืคื•ืŸ ืคึผืึทืžืขืœืขืš ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ืŸ ื’ืขื•ื•ืืงืกืŸ ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ืจืขื›ื˜ ืฆื• ื–ื›ึผืจื•ืŸ ืคืจืึทื’ืžืึทื ื˜ื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืึทืงืขืจื– ื‘ืขืฉืึทืก ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืขื˜ืœืขื›ืข ืžื•ืœื˜ื™ื˜ื”ืจืขืึทื“ ืจื•ื‘ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืฆื• ืคึผืึทืงืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืื•ื™ืฃ ื“ืขืจ ืงื•ืคึผืข ืคืึธืจืฉืœืึธื’ืŸ GC.compact ืื•ืคึฟืŸ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื–ื™ืงืึธืจืŸ ื‘ืœืขื˜ืขืจ ื’ืขื ื™ืฆื˜ ืื•ืŸ ืึทืคึผื˜ืึทืžื™ื™ื– ื“ื™ ืงื•ืคึผืข ืคึฟืึทืจ ืึทืคึผืขืจื™ื™ืฉืึทื ื–
    CoW (ืงืึธืคึผื™-ืื•ื™ืฃ-ืฉืจื™ื™ึทื‘ืŸ).

  • ื“ื•ืจื›ื’ืขืคื™ืจื˜ ืคึผืจื™ืคึผืขืจื™ื ื’ ืฆื• ื‘ืึทื–ื•ื ื“ืขืจ ืึทืจื’ื•ืžืขื ื˜ืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืฉื˜ืขืœืข ืื™ืŸ ื“ืขืจ ืจืฉื™ืžื” ("ื“ืขืฃ ืคืึธืึธ (ืึท, ื‘, C)") ืื•ืŸ ื˜ืขืจืžื™ื ืขืŸ ("ื“ืขืฃ ืคืึธืึธ (ืฉืœื™ืกืœ: ื•ื•ืึทืœ)"). ืึธื˜ืึทืžืึทื˜ื™ืง ืึทืจื’ื•ืžืขื ื˜ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื˜ืขืจืžื™ื ืขืŸ ืื•ืŸ ืฉื˜ืขืœืข ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืื•ืŸ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ ื“ื™ Ruby 3.0 ืฆื•ื•ื™ื™ึทื’. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืฆื• ื ื•ืฆืŸ ื“ื™ ืœืขืฆื˜ืข ืึทืจื’ื•ืžืขื ื˜ ื•ื•ื™ ืงื™ื•ื•ืขืจื“ ืคึผืึทืจืึทืžืขื˜ืขืจืก, ืฆื• ืคืึธืจืŸ ืงื™ื•ื•ืขืจื“-ื‘ืื–ื™ืจื˜ ืึทืจื’ื•ืžืขื ื˜ืŸ ื•ื•ื™ ื“ื™ ืœืขืฆื˜ืข ื”ืึทืฉ ืคึผืึทืจืึทืžืขื˜ืขืจ, ืื•ืŸ ืฆื• ืฉืคึผืึทืœื˜ืŸ ื“ื™ ืœืขืฆื˜ืข ืึทืจื’ื•ืžืขื ื˜ ืื™ืŸ ืคึผืึธืกื™ื˜ื™ืึธื ืึทืœ ืื•ืŸ ืงื™ื•ื•ืขืจื“ ืคึผืึทืจืึทืžืขื˜ืขืจืก.

    def foo (ืฉืœื™ืกืœ: 42); ืกื•ืฃ; foo ({ ืฉืœื™ืกืœ: 42}) # ื’ืขื•ื•ืืจื ื˜
    ื“ืขืฃ ืคืึธืึธ (**ืงื•ื•); ืกื•ืฃ; foo ({ ืฉืœื™ืกืœ: 42}) # ื’ืขื•ื•ืืจื ื˜
    ื“ืขืฃ ืคืึธืึธ (ืฉืœื™ืกืœ: 42); ืกื•ืฃ; foo (**{ ืฉืœื™ืกืœ: 42}) # ื’ื•ื˜
    ื“ืขืฃ ืคืึธืึธ (**ืงื•ื•); ืกื•ืฃ; foo (**{ ืฉืœื™ืกืœ: 42}) # ื’ื•ื˜

    ื“ืขืฃ ืคืึธืึธ (ื”, **ืงื•ื•); ืกื•ืฃ; foo (ืฉืœื™ืกืœ: 42) #ื’ืขื•ื•ืืจื ื˜
    def foo (ื”, ืฉืœื™ืกืœ: 42); ืกื•ืฃ; foo (ืฉืœื™ืกืœ: 42) #ื’ืขื•ื•ืืจื ื˜
    ื“ืขืฃ ืคืึธืึธ (ื”, **ืงื•ื•); ืกื•ืฃ; foo ({ ืฉืœื™ืกืœ: 42}) # ื’ื•ื˜
    ื“ืขืค ืคื• (ื”, ืฉืœื™ืกืœ: 42); ืกื•ืฃ; foo ({ ืฉืœื™ืกืœ: 42}) # ื’ื•ื˜

    ื“ืขืฃ ืคืึธืึธ (ื” = {}, ืฉืœื™ืกืœ: 42); ืกื•ืฃ; foo("key" => 43, ืฉืœื™ืกืœ: 42) #ื•ื•ืึธืจื ื“
    ื“ืขืฃ ืคืึธืึธ (ื” = {}, ืฉืœื™ืกืœ: 42); ืกื•ืฃ; foo({"key" => 43, ืฉืœื™ืกืœ: 42}) # ื’ืขื•ื•ืืจื ื˜
    ื“ืขืฃ ืคืึธืึธ (ื” = {}, ืฉืœื™ืกืœ: 42); ืกื•ืฃ; foo({"key" => 43}, ืฉืœื™ืกืœ: 42) # ื’ื•ื˜

    ื“ืขืฃ ืคืึธืึธ (ืึธืคึผื˜ = {}); ืกื•ืฃ; foo ( ืฉืœื™ืกืœ: 42 ) # ื’ื•ื˜

    ื“ืขืฃ ืคืึธืึธ (ื”, ** ื ื™ื˜); ืกื•ืฃ; foo (ืฉืœื™ืกืœ: 1) # ืึทืจื’ื•ืžืขื ื˜ ื˜ืขื•ืช
    ื“ืขืค ืคืึธืึธ (ื”, ** ื ื™ื˜); ืกื•ืฃ; foo (**{ ืฉืœื™ืกืœ: 1}) # ืึทืจื’ื•ืžืขื ื˜ ื˜ืขื•ืช
    ื“ืขืฃ ืคืึธืึธ (ื”, ** ื ื™ื˜); ืกื•ืฃ; foo ("str" โ€‹โ€‹=> 1) # ืึทืจื’ื•ืžืขื ื˜ ื˜ืขื•ืช
    ื“ืขืฃ ืคืึธืึธ (ื”, ** ื ื™ื˜); ืกื•ืฃ; foo ({ ืฉืœื™ืกืœ: 1}) # ื’ื•ื˜
    ื“ืขืฃ ืคืึธืึธ (ื”, ** ื ื™ื˜); ืกื•ืฃ; foo({"str"=> 1}) # ื’ื•ื˜

    ื” = {}; ื“ืขืฃ ืคืึธืึธ (* ืึท) ืกื•ืฃ; ืคืึธืึธ (** ื”) # [] ื” = {}; ื“ืขืฃ ืคืึธืึธ (ืึท) ืกื•ืฃ; foo(**h) # {} ืื•ืŸ ื•ื•ืืจืขื ื•ื ื’
    ื” = {}; ื“ืขืฃ ืคืึธืึธ (* ืึท) ืกื•ืฃ; ืคืึธืึธ (ื”) # [{}] ื” = {}; ื“ืขืฃ ืคืึธืึธ (ืึท) ืกื•ืฃ; ืคืึธืึธ (ื”) # {}

  • ื’ืขืœืขื’ื ื”ื™ื™ื˜ ื ื™ืฆืŸ ื’ืขืฆื™ื™ืœื˜ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ื ืขืžืขืŸ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืคึฟืึทืจ ื‘ืœืึธืง ืคึผืึทืจืึทืžืขื˜ืขืจืก.

    [1, 2, 3] .ื™ืขื“ืขืจ { ืœื™ื™ื’ื˜ @1 } # ื•ื•ื™ [1, 2, 3].ื™ืขื“ืขืจ { |i| ืœื™ื™ื’ื˜ ืื™ืš}

  • ืขืงืกืคึผืขืจื™ืžืขื ื˜ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืจื™ื™ื ื“ื–ืฉืึทื– ืžื™ื˜ ืงื™ื™ืŸ ืขืจืฉื˜ ื•ื•ืขืจื˜.

    ary[..3] # ื–ืขืœื‘ื™ืงืขืจ ื•ื•ื™ ary[0..3] rel.where(ืคืืจืงื•ื™ืคื•ื ื’: ..100)

  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ Enumerable#tally ืื•ืคึฟืŸ, ื•ื•ืึธืก ืงืึทื•ื ืฅ ื•ื•ื™ ืคื™ืœืข ืžืึธืœ ื™ืขื“ืขืจ ืขืœืขืžืขื ื˜ ืึทืงืขืจื–.

    ["ืึท", "ื‘", "c", "ื‘"]
    #=> {"a"=>1, "ื‘"=>2, "c"=>1}

  • ืคึผืจื™ื•ื•ืึทื˜ ืื•ืคึฟืŸ ืจื•ืคืŸ ืขืจืœื•ื™ื‘ื˜ ืžื™ื˜ "ื–ื™ืš" ืœื™ื˜ืขืจืึทืœ

    deffoo
    ืขืง
    ืคึผืจื™ื•ื•ืึทื˜ :foo
    self.foo

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืขื ื•ืžืขืจืึทื˜ืึธืจ :: ืคื•ื™ืœ# ืœืึธืขื˜ ืื•ืคึฟืŸ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึท ื ืึธืจืžืึทืœ ื ื•ืžืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืึท ืคื•ื™ืœ (ืขื ื•ืžืขืจืึทื˜ืึธืจ:: ืคื•ื™ืœ) ื ื•ืžืขืจ.

    ืึท = %w(ืคืึธืึธ ื‘ืึทืจ ื‘ืึทื–)
    e = a.lazy.map {|x| x.upcase }.map {|x| ืจืขื ื˜ื’ืขื  + "!" }.ืœื•ื™ื‘ื˜
    p e.class #=> ืขื ื•ืžืขืจืึทื˜ืึธืจ
    e.map {|x| ืจืขื ื˜ื’ืขื  + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"]

  • ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ืึทืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœ JIT ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ื– ืคืืจื‘ืœื™ื‘ืŸ, ื•ื•ืึธืก ืงืขื ืขืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ื“ื™ Ruby ืฉืคึผืจืึทืš. ื“ืขืจ JIT ืงืึทืžืคึผื™ื™ืœืขืจ ืคืืจื’ืขืœื™ื™ื’ื˜ ืื™ืŸ Ruby ืขืจืฉื˜ืขืจ ืฉืจื™ื™ื‘ื˜ C ืงืึธื“ ืฆื• ื“ื™ืกืง, ื ืึธืš ื•ื•ืึธืก ืขืก ืจื•ืคื˜ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง C ืงืึทืžืคึผื™ื™ืœืขืจ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืžืึทืฉื™ืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก (GCC, Clang ืื•ืŸ Microsoft VC ++ ื–ืขื ืขืŸ ื’ืขืฉื˜ื™ืฆื˜). ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ื™ืžืคึผืœืึทืžืึทื ืฅ ืึท ืžืขื˜ืึธื“ ืคึฟืึทืจ ื™ื ืœื™ื ืข ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื•ื™ื‘ ื ื™ื™ื˜ื™ืง, ืกืขืœืขืงื˜ื™ื•ื• ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืžืึธื“ืขืก ื‘ืขืฉืึทืก ื–ืึทืžืœื•ื ื’, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืขืจื˜ ืคื•ืŸ "--jit-min-calls" ืื™ื– ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ 5 ืฆื• 10000, ืื•ืŸ "--jit-max-cache" ืคื•ืŸ 1000 ืฆื• 100.
  • ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ CGI.escapeHTML, Monitor ืื•ืŸ MonitorMixin.
  • ืžืึธื“ื•ืœืข # ื ืึธืžืขืŸ, true.to_s, false.to_s, ืื•ืŸ nil.to_s ืขื ืฉื•ืจ ืึทื– ืึท ืฉื˜ืจื™ืงืœ ืื™ื– ืื•ืžื’ืขืงืขืจื˜ ื•ื•ืึธืก ืื™ื– ืึทื ื˜ืฉื™ื™ื ื“ื–ืฉื“ ืคึฟืึทืจ ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ื›ื™ื™ืคืขืฅ.
  • ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื‘ื™ื™ื ืขืจื™ ื˜ืขืงืขืก ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื“ื•ืจืš ื“ื™ RubyVM::InstructionSequence#to_binary ืื•ืคึฟืŸ ืื™ื– ืจื™ื“ื•ืกื˜;
  • ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜
    ื‘ื•ื ื“ืœืขืจ 2.1.2, RubyGems 3.1.2,
    ืจืึทืงืง 1.4.15,
    ืงืกื•ื• 3.1.2, REXML 3.2.3,
    RSS 0.2.8,
    ืฉื˜ืจื™ืงืœ ืกืงืึทื ื ืขืจ 1.0.3;

  • ืœื™ื‘ืจืึทืจื™ืขืก ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืคื•ืŸ ื‘ืึทื–ืข ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืฆื• ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื™ื™ื“ืœืฉื˜ื™ื™ืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื–
    ืงืžืึทื˜ (ืงืžืึทื˜ ื™ื™ื“ืœืฉื˜ื™ื™ืŸ),
    Scanf (Scanf gem),
    ืฉืึธืœ (ืฉืึธืœ ื™ื™ื“ืœืฉื˜ื™ื™ืŸ),
    ืกื™ื ื˜ืฉืจืึธื ื™ื–ืขืจ (ืกื™ื ืง ื™ื™ื“ืœืฉื˜ื™ื™ืŸ),
    ThreadsWait (ื˜ื•ื•ื™ื™ื˜ ื™ื™ื“ืœืฉื˜ื™ื™ืŸ),
    ืข2ืžื (ืข2ืžืžืึทืคึผ ื™ื™ื“ืœืฉื˜ื™ื™ืŸ).

  • ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืกื˜ื“ืœื™ื‘ ืžืึทื“ื–ืฉื•ืœื– ื–ืขื ืขืŸ ืืจื•ื™ืก ืื•ื™ืฃ rubygems.org:
    ื‘ืขื ื˜ืฉืžืึทืจืง,
    ืงื’ื™,
    ื“ืขืœืขื’ืึทื˜,
    ื’ืขื˜ืืค ืœืื ื’,
    ื ืขืฅ ืคึผืึธืคึผ,
    ื ืขืฅ ืกืžื˜ืคึผ,
    ืขืคืขื ืขืŸ 3,
    ืคึผืกื˜ืึธืจืข,
    ืกื™ื ื’ืœืขื˜ืึธืŸ. ืžืึธื ื™ื˜ืึธืจ ืžืึทื“ื–ืฉื•ืœื– ื ื™ื˜ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืฆื• rubygems.org
    ื‘ืื–ืขืขืจ,
    ืฆื™ื™ื˜ ืื•ื™ืก,
    ื˜ืจื™ื™ืกืขืจ,
    ืื•ืจื™,
    ื™ืึทืžืœ, ื•ื•ืึธืก ื–ืขื ืขืŸ ื‘ืœื•ื™ื– ืฉื™ืคึผื˜ ืžื™ื˜ ืจื•ื‘ื™-ื”ืึทืจืฅ.

  • ื‘ื™ืœื“ื™ื ื’ ืจื•ื‘ื™ ืื™ืฆื˜ ืจื™ืงื•ื•ื™ื™ืขืจื– ืึท C ืงืึทืžืคึผื™ื™ืœืขืจ ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ ื“ื™ C99 ื ืึธืจืžืึทืœ.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’