เจฐเฉ‚เจฌเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ 3.2

เจฐเฉ‚เจฌเฉ€ 3.2.0 เจœเจพเจฐเฉ€ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจ‡เฉฑเจ• เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจ†เจฌเจœเฉˆเจ•เจŸ-เจ…เจงเจพเจฐเจฟเจค เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจœเฉ‹ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจ•เฉเจธเจผเจฒ เจนเฉˆ เจ…เจคเฉ‡ เจชเจฐเจฒ, เจœเจพเจตเจพ, เจชเจพเจˆเจฅเจจ, เจธเจฎเจพเจฒเจŸเจพเจ•, เจ†เจˆเจซเจฒ, เจเจกเจพ เจ…เจคเฉ‡ เจฒเจฟเจธเจช เจฆเฉ€เจ†เจ‚ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เฉ‹เจก เจจเฉ‚เฉฐ BSD ("2-เจ•เจฒเจพเจœเจผ BSDL") เจ…เจคเฉ‡ "เจฐเฉ‚เจฌเฉ€" เจฒเจพเจ‡เจธเฉฐเจธ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจœเฉ‹ GPL เจฒเจพเจ‡เจธเฉฐเจธ เจฆเฉ‡ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ GPLv3 เจจเจพเจฒ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉˆเฅค

เจฎเฉเฉฑเจ– เจธเฉเจงเจพเจฐ:

  • เจ‡เฉฑเจ• CRuby เจฆเฉเจญเจพเจธเจผเฉ€เจ เจฆเจพ เจ‡เฉฑเจ• เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจชเฉ‹เจฐเจŸ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจœเฉ‹ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจœเจพเจ‚ เจธเจŸเฉˆเจ‚เจกเจ…เจฒเฉ‹เจจ เจฐเจจเจŸเจพเจˆเจฎ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ wasmtime เจตเจฟเฉฑเจš เจšเจฒเจพเจ‰เจฃ เจฒเจˆ WebAssembly เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจตเฉฑเจ–เจฐเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเฉฑเจฒเจฃ เจตเฉ‡เจฒเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเจพเจฒ เจธเจฟเฉฑเจงเฉ€ เจ—เฉฑเจฒเจฌเจพเจค เจฒเจˆ, WASI (WebAssembly เจธเจฟเจธเจŸเจฎ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ) API เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจนเฉ‹เจฐ เจšเฉ€เจœเจผเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ, WASI เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• VFS เจฌเจพเจˆเจกเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฐเฉ‚เจฌเฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจชเฉ‚เจฐเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ wasm เจซเจพเจˆเจฒ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฆเฉเจฐเจฟเจธเจผ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจœ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจšเฉฑเจฒเจฃเจพ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจ…เจคเฉ‡ เจกเฉˆเจฎเฉ‹ เจตเฉˆเฉฑเจฌ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ TryRuby เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเฉœเจพเจ… 'เจคเฉ‡, เจชเฉ‹เจฐเจŸ เจธเจซเจฒเจคเจพเจชเฉ‚เจฐเจตเจ• เจฎเฉ‚เจฒ เจ…เจคเฉ‡ เจฌเฉ‚เจŸเจธเจŸเจฐเฉˆเจช เจŸเฉˆเจธเจŸ เจธเฉ‚เจŸ เจชเจพเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฅเฉเจฐเฉˆเจก API เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ. เจชเฉ‹เจฐเจŸ เจซเจพเจˆเจฌเจฐ, เจ…เจชเจตเจพเจฆ, เจœเจพเจ‚ เจ•เฉ‚เฉœเจพ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจฆเจพ เจตเฉ€ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • เจ‡เจจ-เจชเฉเจฐเฉ‹เจธเฉˆเจธ JIT เจ•เฉฐเจชเจพเจˆเจฒเจฐ YJIT, เจฐเฉ‚เจฌเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจชเจนเจฟเจฒเจ•เจฆเจฎเฉ€ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจœเฉ‹เจ‚ Shopify เจˆ-เจ•เจพเจฎเจฐเจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฆเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจœเฉ‹ เจฐเฉ‡เจฒ เจซเจฐเฉ‡เจฎเจตเจฐเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจ…เจคเฉ‡ เจคเจฟเจ†เจฐ เจ˜เฉ‹เจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‰เจคเจชเจพเจฆเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚. เจชเจนเจฟเจฒเจพเจ‚ เจตเจฐเจคเฉ‡ เจ—เจ MJIT JIT เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจคเฉ‹เจ‚ เจฎเฉเฉฑเจ– เจ…เฉฐเจคเจฐ, เจœเฉ‹ เจ•เจฟ เจตเจฟเจงเฉ€ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— 'เจคเฉ‡ เจ…เจงเจพเจฐเจค เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ C เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจนเฉˆ เจ•เจฟ YJIT Lazy Basic Block Versioning (LBBV) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจเจ•เฉ€เจ•เฉเจฐเจฟเจค JIT เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค LBBV เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ, เจœเฉ‡เจ†เจˆเจŸเฉ€ เจชเจนเจฟเจฒเจพเจ‚ เจตเจฟเจงเฉ€ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฌเจพเจ…เจฆ เจฌเจพเจ•เฉ€ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจตเจฐเจคเฉ‡ เจ—เจ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจ…เจคเฉ‡ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆเฅค YJIT Linux, MacOS, BSD, เจ…เจคเฉ‡ เจนเฉ‹เจฐ UNIX เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ 'เจคเฉ‡ x86-64 เจ…เจคเฉ‡ arm64/aarch64 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจนเฉˆเฅค

    CRuby เจฆเฉ‡ เจ‰เจฒเจŸ, YJIT เจ•เฉ‹เจก Rust เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒ เจ•เจฐเจจ เจฒเจˆ rustc 1.58.0+ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ‡เจธเจฒเจˆ YJIT เจธเฉฐเจ•เจฒเจจ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจฏเฉ‹เจ— เจนเฉˆ เจ…เจคเฉ‡ เจตเจฟเจ•เจฒเจชเจฟเจ• เจนเฉˆเฅค YJIT เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจตเจฟเจ†เจ–เจฟเจ† เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ yjit-เจฌเฉˆเจ‚เจš เจŸเฉˆเจธเจŸ เจšเจฒเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจš 41% เจตเจพเจงเจพ เจฆเจฐเจœ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค

    เจฐเฉ‚เจฌเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ 3.2

  • เจ…เจ•เฉเจธเจผเจฒ เจ…เจคเฉ‡ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจจเจฟเจฏเจฎเจค เจธเจฎเฉ€เจ•เจฐเจจ (ReDoS) เจตเจฟเฉฑเจš เจฌเจพเจนเจฐเฉ€ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจธเฉ‡เจตเจพ เจคเฉ‹เจ‚ เจ‡เจจเจ•เจพเจฐ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจนเจฎเจฒเจฟเจ†เจ‚ เจฆเฉ‡ เจตเจฟเจฐเฉเฉฑเจง เจตเจพเจงเฉ‚ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆเฅค เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ, เจœเฉ‹ เจฏเจพเจฆ เจ•เจฐเจจ เจฆเฉ€ เจคเจ•เจจเฉ€เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเจฎเฉ€เจ•เจฐเจจ '/^a*b?a*$/ =~ "a" * 50000 + "x"' เจฆเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ 10 เจคเฉ‹เจ‚ เจ˜เจŸเจพ เจ•เฉ‡ 0.003 เจธเจ•เจฟเฉฐเจŸ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ เจฆเฉ€ เจ•เฉ€เจฎเจค เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจ–เจชเจค เจตเจฟเฉฑเจš เจตเจพเจงเจพ เจนเฉˆ, เจœเจฟเจธเจฆเฉ€ เจ–เจชเจค เจ‡เจจเจชเฉเจŸ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเจพเจฒเฉ‹เจ‚ เจฒเจ—เจญเจ— 10 เจ—เฉเจฃเจพ เจตเฉฑเจง เจนเฉˆเฅค เจฆเฉ‚เจœเจพ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฎเจพเจช เจ‡เฉฑเจ• เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจคเฉ€ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, "Regexp.timeout = 1.0"), เจœเจฟเจธ เจฒเจˆ เจจเจฟเจฏเจฎเจค เจธเจฎเฉ€เจ•เจฐเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฒเจˆ เจธเจฎเจพเจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
  • เจธเจฟเฉฐเจŸเฉˆเจ•เจธ_เจธเฉเจเจพเจ… เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ—เฉเฉฐเจฎ เจœเจพเจ‚ เจฌเฉ‡เจฒเฉ‹เฉœเฉ€ "เจ…เฉฐเจค" เจ•เจฒเฉ‹เจœเจผเจฟเฉฐเจ— เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸ เจจเจพเจฒ เจœเฉเฉœเฉ€เจ†เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจ•เจพเจฐเจจเจพเจ‚ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเจจ เจฒเจˆ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจฌเฉ‡เจฎเฉ‡เจฒ `เจเจ‚เจก', เจ—เฉเฉฐเจฎ เจ•เฉ€เจตเจฐเจก (`do', `def`, `if`, เจ†เจฆเจฟ)? 1 เจ•เจฒเจพเจธ เจกเฉŒเจ— > 2 เจกเจฟเจซเจฌเจพเจฐเจ• > 3 เจเจ‚เจก 4 เจเจ‚เจก
  • เจคเจฐเฉเจŸเฉ€ เจธเจฅเจฟเจคเฉ€ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เจฟเจธเจฎเจพเจ‚ เจ…เจคเฉ‡ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ: test.rb:2: `+' เจตเจฟเฉฑเจš: nil เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• (TypeError) sum = ary[ เจตเจฟเฉฑเจš เจœเจผเจฌเจฐเจฆเจธเจคเฉ€ เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค 0] + ary [1] ^^^^^^
  • เจนเฉ‹เจฐ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจธเฉˆเฉฑเจŸ เจตเจฟเจงเฉ€เจ†เจ‚ 'เจคเฉ‡ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจจเจตเจพเจ‚ เจธเฉฐเจŸเฉˆเจ•เจธ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†: def foo(*) bar(*) end def baz(**) quux(**) end
  • Ruby_vm/mjit/compiler เจชเฉเจฐเจธเจคเจพเจตเจฟเจค - เจชเฉเจฐเจพเจฃเฉ‡ MJIT JIT เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเจพ เจ‡เฉฑเจ• เจฐเฉ‚เจช, เจฐเฉ‚เจฌเฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ†เฅค MJIT เจตเจฐเจ•เจฐ เจฅเฉเจฐเฉˆเจก เจตเจฟเฉฑเจš เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจฌเจœเจพเจ, เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš MJIT เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‡เจ†เฅค
  • Bundler 2.4 เจตเจฟเฉฑเจš, เจจเจฟเจฐเจญเจฐเจคเจพ เจนเฉˆเจ‚เจกเจฒเจฟเฉฐเจ— PubGrub เจธเฉฐเจธเจ•เจฐเจฃ เจ–เฉ‹เจœเจ•เจฐเจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจกเจพเจฐเจŸ เจฒเจˆ เจชเจฌ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจฆเฉเจ†เจฐเจพ เจตเฉ€ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจชเจนเจฟเจฒเจพเจ‚ เจตเจฐเจคเฉ‡ เจ—เจ เจฎเฉ‹เจฒเจฟเจจเฉ€เจฒเฉ‹ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจจเฉ‚เฉฐ RubyGems เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจฃเจพ เจœเจพเจฐเฉ€ เจนเฉˆ, เจชเจฐ เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš PubGrub เจฆเฉเจ†เจฐเจพ เจตเฉ€ เจฌเจฆเจฒเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค
  • เจฌเจฟเจฒเจŸ-เจ‡เจจ เจ…เจคเฉ‡ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฐเจคเจจ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ‡ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เฉ€เจคเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹