เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ Rust 1.75 เจ…เจคเฉ‡ unikernel Hermit 0.6.7 เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ

เจฐเจธเจŸ 1.75 เจ†เจฎ-เจ‰เจฆเฉ‡เจธเจผ เจตเจพเจฒเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ, เจœเฉ‹ เจ•เจฟ เจฎเฉ‹เจœเจผเฉ€เจฒเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจชเจฐ เจนเฉเจฃ เจธเฉเจคเฉฐเจคเจฐ เจ—เฉˆเจฐ-เจฎเฉเจจเจพเจซเจผเจพ เจธเฉฐเจธเจฅเจพ เจฐเจธเจŸ เจซเจพเจŠเจ‚เจกเฉ‡เจธเจผเจจ เจฆเฉ€ เจธเจฐเจชเฉเจฐเจธเจคเฉ€ เจนเฉ‡เจ  เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจญเจพเจธเจผเจพ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† 'เจคเฉ‡ เจ•เฉ‡เจ‚เจฆเฉเจฐเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉ‚เฉœเจพ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ…เจคเฉ‡ เจฐเจจเจŸเจพเจˆเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจคเฉ‹เจ‚ เจชเจฐเจนเฉ‡เจœเจผ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‰เฉฑเจš เจจเฉŒเจ•เจฐเฉ€ เจฆเฉ€ เจธเจฎเจพเจจเจคเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจธเจพเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจฐเจจเจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจฎเจฟเจ†เจฐเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจฎเฉเฉฑเจขเจฒเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ…เจคเฉ‡ เจฐเฉฑเจ–-เจฐเจ–เจพเจ… เจคเฉฑเจ• เจ˜เจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)เฅค

เจœเฉฐเจ—เจพเจฒ เจฆเฉ€เจ†เจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจนเฉˆเจ‚เจกเจฒเจฟเฉฐเจ— เจตเจฟเจงเฉ€เจ†เจ‚ เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเฉ‚เฉฐ เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจนเฉˆเจ‚เจกเจฒเจฟเฉฐเจ— เจฆเฉ‡ เจ•เจพเจฐเจจ เจชเฉˆเจฆเจพ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจ–เจพเจฒเฉ€ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‡เจธ เจจเฉ‚เฉฐ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจเจพ, เจจเจฒ เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ‡เจฃเจพ, เจฌเจซเจฐ เจ“เจตเจฐเจฐเจจ, เจ†เจฆเจฟเฅค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฃ, เจฌเจฟเจฒเจก เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจ…เจคเฉ‡ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เจพเจฐเจ—เฉ‹ เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค crates.io เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆเฅค

เจฐเฉˆเจซเจฐเฉˆเจ‚เจธ เจšเฉˆเจ•เจฟเฉฐเจ—, เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ€ เจฎเจฒเจ•เฉ€เจ…เจค เจฆเจพ เจŸเฉเจฐเฉˆเจ• เจฐเฉฑเจ–เจฃ, เจ†เจฌเจœเฉˆเจ•เจŸ เจฒเจพเจˆเจซเจŸเจพเจˆเจฎ (เจธเจ•เฉ‹เจชเจพเจ‚) เจฆเจพ เจŸเฉเจฐเฉˆเจ• เจฐเฉฑเจ–เจฃ เจ…เจคเฉ‡ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจเจ•เจธเฉˆเจธ เจฆเฉ€ เจธเจผเฉเฉฑเจงเจคเจพ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฆเฉเจ†เจฐเจพ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจฐเจธเจŸ เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจˆเจฒ เจธเจฎเฉ‡เจ‚ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจœเฉฐเจ—เจพเจฒ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจ“เจตเจฐเจซเจฒเฉ‹ เจฆเฉ‡ เจตเจฟเจฐเฉเฉฑเจง เจธเฉเจฐเฉฑเจ–เจฟเจ† เจตเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจตเจฐเจคเฉ‹เจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจฒเจพเจœเจผเจฎเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจฎเจฟเจ†เจฐเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจตเจฟเฉฑเจš เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉฐเจญเจพเจฒเจฆเจพ เจนเฉˆ, เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจŸเฉฑเจฒ เจธเฉฐเจฆเจฐเจญเจพเจ‚ เจ…เจคเฉ‡ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจฆเฉ€ เจงเจพเจฐเจจเจพ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฒเจพเจœเจผเฉ€เจ•เจฒ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ˜เฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹เจธเจฅเจฟเจฐ เจŸเจพเจˆเจชเจฟเฉฐเจ— เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจฎเฉเฉฑเจ– เจจเจตเฉ€เจจเจคเจพเจตเจพเจ‚:

  • เจจเจฟเฉฑเจœเฉ€ เจ—เฉเจฃเจพเจ‚ เจตเจฟเฉฑเจš "async fn" เจ…เจคเฉ‡ "-> impl เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ" เจธเฉฐเจ•เฉ‡เจค เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, โ€œ->เจ‡เจฎเจชเจฒ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพโ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจตเจฟเจงเฉ€ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจ‡เฉฑเจ• เจ‡เจŸเจฐเฉ‡เจŸเจฐ เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ: เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ•เฉฐเจŸเฉ‡เจจเจฐ { fn เจ†เจˆเจŸเจฎเจพเจ‚(&self) -> impl Iterator; } MyContainer เจฒเจˆ impl เจ•เฉฐเจŸเฉ‡เจจเจฐ { fn items(&self) -> impl Iterator { self.items.iter().cloned() } }

    เจคเฉเจธเฉ€เจ‚ "async fn" เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ—เฉเจฃ เจตเฉ€ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ HttpService { async fn fetch(&self, url: Url) -> HtmlBody; // เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ: // fn fetch(&self, url: Url) -> impl Future; }

  • เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจฌเจพเจˆเจŸ เจ†เจซเจธเฉˆเฉฑเจŸเจพเจ‚ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฒเจˆ API เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค เจฌเฉ‡เจ…เจฐ เจชเฉเจ†เจ‡เฉฐเจŸเจฐ ("*const T" เจ…เจคเฉ‡ "*mut T") เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจตเจฟเฉฑเจš เจ”เจซเจธเฉˆเฉฑเจŸ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ“เจชเจฐเฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจชเจนเจฟเจฒเจพเจ‚, เจ‡เจธเจฆเฉ‡ เจฒเจˆ "::add(1)" เจตเจฐเจ—เฉ€ เจ‰เจธเจพเจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจธเฉ€, "เจธเจพเจˆเจœเจผ_of::()" เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฌเจพเจˆเจŸเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจœเฉ‹เฉœเจจเจพเฅค เจจเจตเจพเจ‚ API เจ‡เจธ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจจเฉ‚เฉฐ "*const u8" เจœเจพเจ‚ "*mut u8" 'เจคเฉ‡ เจ•เจพเจธเจŸ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจฌเจพเจˆเจŸ เจ†เจซเจธเฉˆเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::เจฌเจพเจˆเจŸ_เจเจก
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::byte_offset
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::byte_offset_from
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::เจฌเจพเจˆเจŸ_เจธเจฌ
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ:: wrapping_byte_add
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ:: wrapping_byte_offset
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ:: wrapping_byte_sub
  • rustc เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฒเจˆ เจฒเจ—เจพเจคเจพเจฐ เจ•เฉฐเจฎ. BOLT เจ†เจชเจŸเฉ€เจฎเจพเจˆเจœเจผเจฐ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†, เจœเฉ‹ เจชเฉ‹เจธเจŸ-เจฒเจฟเฉฐเจ• เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจšเฉฑเจฒเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจต-เจคเจฟเจ†เจฐ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ เจคเฉ‹เจ‚ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค BOLT เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ•เฉˆเจธเจผ เจฆเฉ€ เจตเจงเฉ‡เจฐเฉ‡ เจ•เฉเจธเจผเจฒ เจตเจฐเจคเฉ‹เจ‚ เจฒเจˆ librustc_driver.so เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจ•เฉ‹เจก เจฆเฉ‡ เจ–เจพเจ•เฉ‡ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจ•เฉ‡ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจฒเจ—เจญเจ— 2% เจคเฉ‡เจœเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

    LLVM เจตเจฟเฉฑเจš เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจฆเฉ€ เจ—เฉเจฃเจตเฉฑเจคเจพ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เจฐเจจ เจฒเจˆ "-Ccodegen-units=1" เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจจเจพเจฒ rustc เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฌเจฃเจพเจ‰เจฃเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจ•เฉ€เจคเฉ‡ เจ—เจ เจŸเฉˆเจธเจŸ "-Ccodegen-units=1" เจฌเจฟเจฒเจก เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจš เจฒเจ—เจญเจ— 1.5% เจฆเจพ เจตเจพเจงเจพ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจเฅค เจธเจผเจพเจฎเจฟเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจ•เฉ‡เจตเจฒ x86_64-unknown-linux-gnu เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฏเฉ‹เจ— เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค

    เจฐเจธเจŸ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‡ เจเจ‚เจกเจฐเฉŒเจ‡เจก เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸเจธ เจฆเฉ‡ เจฌเจฟเจฒเจก เจŸเจพเจˆเจฎ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฒเจˆ เจ—เฉ‚เจ—เจฒ เจฆเฉเจ†เจฐเจพ เจชเจนเจฟเจฒเจพเจ‚ เจฆเฉฑเจธเฉ‡ เจ—เจ เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค "-C codegen-units=1" เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจœเจฆเฉ‹เจ‚ Android เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจธเจพเจจเฉ‚เฉฐ เจŸเฉ‚เจฒเจ•เจฟเฉฑเจŸ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเฉ‚เฉฐ 5.5% เจคเฉฑเจ• เจ˜เจŸเจพเจ‰เจฃ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจจเฉ‚เฉฐ 1.8% เจคเฉฑเจ• เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจŸเฉ‚เจฒเจ•เจฟเฉฑเจŸ เจฆเจพ เจจเจฟเจฐเจฎเจพเจฃ เจธเจฎเจพเจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจฒเจ—เจญเจ— เจฆเฉเฉฑเจ—เจฃเจพ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

    เจฒเจฟเฉฐเจ•-เจŸเจพเจˆเจฎ เจ•เฉ‚เฉœเจพ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ (โ€œ--gc-sectionsโ€) เจจเฉ‡ 1.9% เจคเฉฑเจ• เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเจพเจญ เจฒเจฟเจ†เจ‡เจ†, เจฒเจฟเฉฐเจ•-เจŸเจพเจˆเจฎ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ (LTO) เจจเฉ‚เฉฐ 7.7% เจคเฉฑเจ•, เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ-เจ…เจงเจพเจฐเจฟเจค เจ…เจจเฉเจ•เฉ‚เจฒเจจ (PGO) เจจเฉ‚เฉฐ 19.8% เจคเฉฑเจ• เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‡เจ†เฅค เจซเจพเจˆเจจเจฒ เจตเจฟเฉฑเจš, BOLT เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒเจจ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ, เจœเจฟเจธ เจจเจพเจฒ เจฌเจฟเจฒเจก เจธเจชเฉ€เจก เจจเฉ‚เฉฐ 24.7% เจคเฉฑเจ• เจตเจงเจพเจ‰เจฃเจพ เจธเฉฐเจญเจต เจนเฉ‹ เจ—เจฟเจ† เจธเฉ€, เจชเจฐ เจŸเฉ‚เจฒเจ•เจฟเฉฑเจŸ เจฆเจพ เจ†เจ•เจพเจฐ 10.9% เจตเจง เจ—เจฟเจ† เจธเฉ€เฅค

    เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ Rust 1.75 เจ…เจคเฉ‡ unikernel Hermit 0.6.7 เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ

  • API เจฆเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจฆเฉ€ เจธเจผเฉเจฐเฉ‡เจฃเฉ€ เจตเจฟเฉฑเจš เจญเฉ‡เจœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ—เฉเจฃเจพเจ‚ เจฆเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจ…เจคเฉ‡ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ:
    • เจชเจฐเจฎเจพเจฃเฉ‚*::from_ptr
    • เจซเจพเจˆเจฒ เจŸเจพเจˆเจฎเจœเจผ
    • FileTimesExt
    • เจซเจผเจพเจˆเจฒ::set_modified
    • เจซเจผเจพเจˆเจฒ::set_times
    • IpAddr::to_canonical
    • Ipv6Addr::to_canonical
    • เจตเจฟเจ•เจฒเจช:: as_slice
    • เจตเจฟเจ•เจฒเจช:: as_mut_slice
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::เจฌเจพเจˆเจŸ_เจเจก
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::byte_offset
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::byte_offset_from
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ::เจฌเจพเจˆเจŸ_เจธเจฌ
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ:: wrapping_byte_add
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ:: wrapping_byte_offset
    • เจชเฉเจ†เจ‡เฉฐเจŸเจฐ:: wrapping_byte_sub
  • "const" เจ—เฉเจฃ, เจœเฉ‹ เจธเจฅเจฟเจฐเจพเจ‚เจ• เจฆเฉ€ เจฌเจœเจพเจ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ:
    • Ipv6Addr::to_ipv4_mapped
    • เจธเจผเจพเจ‡เจฆUninit::assume_init_read
    • เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจฏเฉ‚เจจเจฟเจจเจฟเจŸ::เจœเจผเฉ€เจฐเฉ‹เจก
    • mem::เจญเฉ‡เจฆเจญเจพเจต เจ•เจฐเจจ เจตเจพเจฒเจพ
    • mem::เจœเจผเฉ€เจฐเฉ‹เจก
  • เจธเจฎเจฐเจฅเจจ เจฆเจพ เจคเฉ€เจœเจพ เจชเฉฑเจงเจฐ csky-unknown-linux-gnuabiv2hf, i586-unknown-netbsd เจ…เจคเฉ‡ mipsel-unknown-netbsd เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจฒเจˆ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจคเฉ€เจœเฉ‡ เจชเฉฑเจงเจฐ เจตเจฟเฉฑเจš เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจธเจนเจพเจ‡เจคเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจธเจตเฉˆเจšเจฒเจฟเจค เจœเจพเจ‚เจš เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚, เจ…เจงเจฟเจ•เจพเจฐเจค เจฌเจฟเจฒเจกเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ, เจœเจพเจ‚ เจ‡เจน เจœเจพเจ‚เจš เจ•เจฐเจจเจพ เจ•เจฟ เจ•เฉ€ เจ•เฉ‹เจก เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจธเฉ€เจ‚ เจนเจฐเจฎเจฟเจŸ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจจเฉ‹เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจœเฉ‹ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจ•เจฐเจจเจฒ (เจฏเฉ‚เจจเฉ€เจ•เจฐเจจเฉ‡เจฒ) เจตเจฟเจ•เจธเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจœเฉฐเจ—เจพเจฒ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจธเจตเฉˆ-เจธเฉฐเจฌเฉฐเจงเจฟเจค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจŸเฉ‚เจฒ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจตเจพเจงเฉ‚ เจฒเฉ‡เจ…เจฐเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจนเจพเจˆเจชเจฐเจตเจพเจˆเจœเจผเจฐ เจœเจพเจ‚ เจฌเฉ‡เจ…เจฐ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจšเฉฑเจฒ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚เฅค เจœเจฆเฉ‹เจ‚ เจฌเจฃเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเจฅเจฟเจฐ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจจเจพเจฒ เจœเฉเฉœเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจœเฉ‹ OS เจ•เจฐเจจเจฒ เจ…เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเจพเจฒ เจฌเฉฐเจจเฉเจนเฉ‡ เจฌเจฟเจจเจพเจ‚, เจธเฉเจคเฉฐเจคเจฐ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ•เฉ‹เจก เจ…เจชเจพเจšเฉ‡ 2.0 เจ…เจคเฉ‡ MIT เจฒเจพเจ‡เจธเฉฐเจธ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ Rust, Go, Fortran, C เจ…เจคเฉ‡ C++ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจธเจŸเฉˆเจ‚เจก-เจ…เจฒเฉ‹เจจ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฒเจˆ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ†เจชเจฃเจพ เจ–เฉเจฆ เจฆเจพ เจฌเฉ‚เจŸเจฒเฉ‹เจกเจฐ เจตเฉ€ เจตเจฟเจ•เจธเจค เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ QEMU เจ…เจคเฉ‡ KVM เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจนเจฐเจฎเจฟเจŸ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

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

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