เชฐเซ‚เชฌเซ€ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ 2.7.0

เชตเชฟเช•เชพเชธเชจเชพ เชเช• เชตเชฐเซเชท เชชเช›เซ€ เชชเซเชฐเช•เชพเชถเชฟเชค เชชเซเชฐเช•เชพเชถเชจ เชฐเซ‚เชฌเซ€ 2.7.0, เชเช• เช—เชคเชฟเชถเซ€เชฒ, เช‘เชฌเซเชœเซ‡เช•เซเชŸ-เช“เชฐเชฟเชเชจเซเชŸเซ‡เชก เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เช•เซ‡ เชœเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸเชฎเชพเช‚ เช…เชคเซเชฏเช‚เชค เช•เชพเชฐเซเชฏเช•เซเชทเชฎ เช›เซ‡ เช…เชจเซ‡ เชชเชฐเซเชฒ, เชœเชพเชตเชพ, เชชเชพเชฏเชฅเซ‹เชจ, เชธเซเชฎเซ‹เชฒเชŸเซ‰เช•, เชเชซเชฟเชฒ, เชเชกเชพ เช…เชจเซ‡ เชฒเชฟเชธเซเชชเชจเซ€ เชถเซเชฐเซ‡เชทเซเช  เชธเซเชตเชฟเชงเชพเช“เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เซ‹เชก BSD (โ€œ2-เช•เซเชฒเซ‹เช BSDLโ€) เช…เชจเซ‡ โ€œเชฐเซเชฌเซ€โ€ เชฒเชพเช‡เชธเชจเซเชธ เชนเซ‡เช เชณ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ GPL เชฒเชพเชฏเชธเชจเซเชธเชจเชพเช‚ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ‡ เช›เซ‡ เช…เชจเซ‡ GPLv3 เชธเชพเชฅเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชธเซเชธเช‚เช—เชค เช›เซ‡. เชฐเซ‚เชฌเซ€ 2.7 เช เช†เชฏเซ‹เชœเชฟเชค เชตเชฟเช•เชพเชธ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เชชเซ‚เชฐเซเชฃ เชฅเชจเชพเชฐเซ€ เชธเชพเชคเชฎเซ€ เชฎเซเช–เซเชฏ เชฐเชœเซ‚เช†เชค เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เช•เชพเชฐเซเชฏเชพเชคเซเชฎเช• เชธเซเชงเชพเชฐเชพเช“ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพ เช…เชจเซ‡ เชฆเชฐ 2-3 เชฎเชนเชฟเชจเซ‡ เชœเชพเชณเชตเชฃเซ€ เชชเซเชฐเช•เชพเชถเชจเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชตเชฐเซเชทเชจเซ‹ เชธเชฎเชฏ เชฒเชพเช—เซ‡ เช›เซ‡.

เชฎเซเช–เซเชฏ เชธเซเชงเชพเชฐเชพเช“:

  • เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เช†เชงเชพเชฐ เชชเซ‡เชŸเชฐเซเชจ เชฎเซ‡เชšเชฟเช‚เช— (เชชเซ‡เชŸเชฐเซเชจ เชฎเซ‡เชšเชฟเช‚เช—) เช†เชชเซ‡เชฒ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชชเชฐ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชœเซ‹ เชชเซ‡เชŸเชฐเซเชจ เชฎเซ‡เชš เชนเซ‹เชฏ เชคเซ‹ เชฎเซ‚เชฒเซเชฏ เช…เชธเชพเช‡เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡.

    เช•เซ‡เชธ [0, [1, 2, 3]] [a, [b, *c]] pa #=> 0 เชฎเชพเช‚
    pb #=> 1
    pc #=> [2, 3] เช…เช‚เชค

    เช•เซ‡เชธ {a: 0, b: 1}
    {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(**{key: 42}) # เชฌเชฐเชพเชฌเชฐ
    def foo(**kw); เช…เช‚เชค foo(**{key: 42}) # เชฌเชฐเชพเชฌเชฐ

    def foo(h, **kw); เช…เช‚เชค foo(key: 42) # เชšเซ‡เชคเชตเชฃเซ€ เช†เชชเซ€
    def foo(h, เช•เซ€: 42); เช…เช‚เชค foo(เช•เซ€: 42) #เชšเซ‡เชคเชตเชฃเซ€
    def foo(h, **kw); เช…เช‚เชค foo({key: 42}) # เชฌเชฐเชพเชฌเชฐ
    def foo(h, เช•เซ€: 42); เช…เช‚เชค foo({key: 42}) # เชฌเชฐเชพเชฌเชฐ

    def foo(h={}, เช•เซ€: 42); เช…เช‚เชค foo("key" => 43, เช•เซ€: 42) #เชšเซ‡เชคเชตเชฃเซ€
    def foo(h={}, เช•เซ€: 42); เช…เช‚เชค foo({"key" => 43, เช•เซ€: 42}) # เชšเซ‡เชคเชตเชฃเซ€ เช†เชชเซ€
    def foo(h={}, เช•เซ€: 42); เช…เช‚เชค foo({"key" => 43}, เช•เซ€: 42) # เชฌเชฐเชพเชฌเชฐ

    def foo(opt={}); เช…เช‚เชค foo (เช•เซ€: 42) # เชฌเชฐเชพเชฌเชฐ

    def foo(h, **nil); เช…เช‚เชค foo(เช•เซ€: 1) #ArgumentError
    def foo(h, **nil); เช…เช‚เชค foo(**{เช•เซ€: 1}) # เชฆเชฒเซ€เชฒเชจเซ€ เชญเซ‚เชฒ
    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].เชฆเชฐเซ‡เช• { |i| เชฎเซ‚เช•เซ‡ เช›เซ‡ }

  • เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชฎเซ‚เชฒเซเชฏ เชตเชฟเชจเชพเชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เช“ เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชธเชฎเชฐเซเชฅเชจ.

    ary[..3] # ary[0..3] rel.where(เชธเซ‡เชฒเซเชธ: ..100) เชœเซ‡เชตเซเช‚ เชœ

  • เช—เชฃเชจเชพเชชเชพเชคเซเชฐ #tally เชชเชฆเซเชงเชคเชฟ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เชฆเชฐเซ‡เช• เช˜เชŸเช• เช•เซ‡เชŸเชฒเซ€ เชตเช–เชค เชฆเซ‡เช–เชพเชฏ เช›เซ‡ เชคเซ‡เชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡.

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

  • เชถเชพเชฌเซเชฆเชฟเช• "เชธเซเชต" เชธเชพเชฅเซ‡ เช–เชพเชจเช—เซ€ เชชเชฆเซเชงเชคเชฟเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€

    เชกเชฟเชซเซ‚
    เช…เช‚เชค
    เช–เชพเชจเช—เซ€ :foo
    เชธเซเชต.เชซเซ‚

  • เช†เชณเชธเซ เช—เชฃเช• (เช—เชฃเช•::เช†เชณเชธเซ) เชฎเชพเช‚เชฅเซ€ เชจเชฟเชฏเชฎเชฟเชค เช—เชฃเชคเชฐเซ€ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช—เชฃเชคเชฐเซ€เช•เชพเชฐ::Lazy#eager เชชเชฆเซเชงเชคเชฟ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€.

    a = %w(foo เชฌเชพเชฐ เชฌเชพเช)
    e = a.lazy.map {|x| x.upcase }.เชจเช•เชถเซ‹ {|x| x + "!" }.เช†เชคเซเชฐ
    p e.class #=> เช—เชฃเชคเชฐเซ€เช•เชพเชฐ
    e.เชจเช•เชถเซ‹ {|x| x + "?" } #=> [โ€œFOO!?โ€, โ€œBAR!?โ€, โ€œBAZ!?โ€]

  • เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• JIT เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‹ เชตเชฟเช•เชพเชธ เชšเชพเชฒเซ เชฐเชพเช–เซเชฏเซ‹ เช›เซ‡, เชœเซ‡ เชฐเซ‚เชฌเซ€ เชญเชพเชทเชพเชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจเชฎเชพเช‚ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชธเซเชงเชพเชฐเซ‹ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชฐเซ‚เชฌเซ€เชฎเชพเช‚ เชชเซเชฐเชธเซเชคเชพเชตเชฟเชค JIT เช•เชฎเซเชชเชพเชˆเชฒเชฐ เชชเชนเซ‡เชฒเชพ เชกเชฟเชธเซเช• เชชเชฐ C เช•เซ‹เชก เชฒเช–เซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชคเซ‡ เชฎเชถเซ€เชจ เชธเซ‚เชšเชจเชพเช“ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชพเชนเซเชฏ C เช•เชฎเซเชชเชพเชˆเชฒเชฐเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ‡ เช›เซ‡ (GCC, Clang เช…เชจเซ‡ Microsoft VC ++ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช›เซ‡). เชจเชตเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹ เช‡เชจเชฒเชพเช‡เชจ เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‡ เช›เซ‡, เชธเช‚เช•เชฒเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชฎเซ‹เชกเซเชธเชจเซ€ เชชเชธเช‚เชฆเช—เซ€เชฏเซเช•เซเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ, "--เชœเซ€เชค-เชฎเซ€เชจ-เช•เซ‹เชฒเซเชธ" เชจเซ€ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฎเซ‚เชฒเซเชฏ 5 เชฅเซ€ เชตเชงเชพเชฐเซ€เชจเซ‡ 10000 เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ "-เชœเซ€เชค-เชฎเซ‡เช•เซเชธ-เช•เซ‡เชถ" 1000 เชฅเซ€ 100 เชธเซเชงเซ€.
  • CGI.escapeHTML, Monitor เช…เชจเซ‡ MonitorMixin เชจเซเช‚ เชฌเชนเซ‡เชคเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจ.
  • เชฎเซ‹เชกเซเชฏเซเชฒ#เชจเชพเชฎ, true.to_s, false.to_s เช…เชจเซ‡ nil.to_s เช–เชพเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชธเซเชŸเซเชฐเชฟเช‚เช— เชชเชฐเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เช…เชชเชฐเชฟเชตเชฐเซเชคเชฟเชค เช›เซ‡.
  • RubyVM::InstructionSequence#to_binary เชชเชฆเซเชงเชคเชฟ เชฆเซเชตเชพเชฐเชพ เชœเชจเชฐเซ‡เชŸ เชฅเชฏเซ‡เชฒ เชฌเชพเชˆเชจเชฐเซ€ เชซเชพเชˆเชฒเซ‹เชจเซเช‚ เช•เชฆ เช˜เชŸเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡;
  • เชฌเชฟเชฒเซเชŸ-เช‡เชจ เช˜เชŸเช•เซ‹เชจเชพ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡เชฒ เชธเช‚เชธเซเช•เชฐเชฃเซ‹, เชธเชนเชฟเชค
    เชฌเช‚เชกเชฒเชฐ 2.1.2, เชฐเซ‚เชฌเซ€เชœเซ‡เชฎเซเชธ 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
    เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟ,
    เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€,
    เชจเซ‡เชŸ-เชชเซ‹เชช,
    เชจเซ‡เชŸ-smtp
    เช“เชชเชจ3,
    pstore,
    เชธเชฟเช‚เช—เชฒเชŸเชจ เชฎเซ‹เชจเชฟเชŸเชฐ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ rubygems.org เชชเชฐ เช–เชธเซ‡เชกเชพเชฏเชพ เชจเชฅเซ€
    เชจเชฟเชฐเซ€เช•เซเชทเช•
    เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ
    เชŸเซเชฐเซ‡เชธเชฐ
    เช‰เชฐเซ€,
    yaml, เชœเซ‡ เชฎเชพเชคเซเชฐ เชฐเซเชฌเซ€-เช•เซ‹เชฐเชฎเชพเช‚ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

  • เชฐเซ‚เชฌเซ€เชจเซเช‚ เชจเชฟเชฐเซเชฎเชพเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชนเชตเซ‡ C เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ C99 เชธเซเชŸเชพเชจเซเชกเชฐเซเชกเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹