αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Rust 1.75 αž“αž·αž„ unikernel Hermit 0.6.7

αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ„αž›αž”αŸ†αžŽαž„αž‘αžΌαž‘αŸ… Rust 1.75 αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž‚αž˜αŸ’αžšαŸ„αž„ Mozilla αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαž§αž”αžαŸ’αžαž˜αŸ’αž—αž–αžΈαž’αž„αŸ’αž‚αž€αžΆαžšαž˜αž·αž“αžšαž€αž”αŸ’αžšαžΆαž€αŸ‹αž…αŸ†αžŽαŸαž‰αž―αž€αžšαžΆαž‡αŸ’αž™ Rust Foundation αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αŸ” αž—αžΆαžŸαžΆαž•αŸ’αžαŸ„αžαž›αžΎαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž…αž„αž…αžΆαŸ† αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž—αžΆαž–αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαž„αžΆαžšαžαŸ’αž–αžŸαŸ‹ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαž˜αžΌαž›αžŸαŸ†αžšαžΆαž˜ αž“αž·αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž˜αŸ‰αŸ„αž„αžšαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž‘αŸ…αž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž“αž·αž„αž€αžΆαžšαžαŸ‚αž‘αžΆαŸ†αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš)αŸ”

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžšαž”αžŸαŸ‹ Rust αž‡αž½αž™αžŸαž„αŸ’αžšαŸ’αž‚αŸ„αŸ‡αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž–αžΈαž€αŸ†αž αž»αžŸαž“αŸ…αž–αŸαž›αžšαŸ€αž”αž…αŸ†αž‘αŸ’αžšαž“αž·αž… αž“αž·αž„αž€αžΆαžšαž–αžΆαžšαž–αžΈαž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž” αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžαŸ†αž”αž“αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αž›αŸ‚αž„ αž€αžΆαžšαž–αž“αŸ’αž™αžΆαžšαž‘αŸ’αžšαž“αž·αž…αž…αž„αŸ’αž’αž»αž›αž‘αž‘αŸ αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαžŸαž…αŸ†αžŽαž»αŸ‡αŸ”αž›αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž…αŸ‚αž€αž…αžΆαž™αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ αž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž€αžŸαžΆαž„ αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™ αž‚αž˜αŸ’αžšαŸ„αž„αž’αž—αž·αžœαžŒαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž‰αŸ’αž…αž”αŸ‹αž‘αŸ†αž“αž·αž‰αŸ” αžƒαŸ’αž›αžΆαŸ†αž„ crates.io αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αŸ”

αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Rust αž“αŸ…αž–αŸαž›αž…αž„αž€αŸ’αžšαž„αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž―αž€αžŸαžΆαžšαž™αŸ„αž„ αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαžŠαžΆαž“αž“αŸƒαž—αžΆαž–αž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αžœαžαŸ’αžαž» αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž’αžΆαž™αž»αž€αžΆαž›αžšαž”αžŸαŸ‹αžœαžαŸ’αžαž» (αžœαž·αžŸαžΆαž›αž—αžΆαž–) αž“αž·αž„αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαžŠαŸ” αž…αŸ’αžšαŸ‚αŸ‡αž€αŸαž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž…αŸ†αž“αž½αž“αž‚αžαŸ‹αž›αžΎαžŸαž…αŸ†αžŽαž»αŸ‡ αž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸƒαžαž˜αŸ’αž›αŸƒαž’αžαŸαžšαž˜αž»αž“αž–αŸαž›αž”αŸ’αžšαžΎ αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αŸ†αž αž»αžŸαž”αžΆαž“αž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž’αž“αž»αžœαžαŸ’αžαž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž“αŸƒαžŸαŸαž…αž€αŸ’αžαžΈαž™αŸ„αž„αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžΆαž“ αž“αž·αž„αž’αžαŸαžšαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžšαž‹αž·αžαž·αžœαž“αŸ’αžαžαŸ’αž›αžΆαŸ†αž„ αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αŸ†αž αž»αžŸαž‘αžΌαž‡αžΈαžαž›αŸ”

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎ "async fn" αž“αž·αž„αžŸαž‰αŸ’αž‰αžΆ "-> impl Trait" αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžŽαŸˆαž―αž€αž‡αž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŠαŸ„αž™αž”αŸ’αžšαžΎ β€œ-> impl Trait” αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžšαžŸαŸαžšαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš trait αžŠαŸ‚αž›αžαŸ’αžšαž‘αž”αŸ‹αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αŸ– trait Container { fn items(&self) -> impl Iterator; } impl αž€αž»αž„αžαžΊαž“αŸαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ MyContainer { fn items(&self) -> impl Iterator { self.items.iter(.cloned() } }

    αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž›αž€αŸ’αžαžŽαŸˆαžŠαŸ„αž™αž”αŸ’αžšαžΎ "async fn": trait HttpService { async fn fetch(&self, url: Url) -> HtmlBody; // αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αž‘αŸ…αŸ– // fn fetch(&self, url: Url) -> impl Future; }

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžŽαž“αžΆαž”αŸƒαž’αž»αž αŸ’αžœαžŸαž·αžαž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αž‘αŸ’αžšαž“αž·αž…αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αŸ’αžšαž“αž·αž…αž‘αž‘αŸ (β€œ*const T” αž“αž·αž„ β€œ*mut T”) αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αžαŸ‚αž˜αž’αž»αž αŸ’αžœαžŸαž·αžαž‘αŸ…αž‘αŸ’αžšαž“αž·αž…αŸ” αž–αžΈαž˜αž»αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž“αŸαŸ‡ αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαžŸαŸ†αžŽαž„αŸ‹αžŠαžΌαž…αž‡αžΆ β€œ::add(1)” αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ†αž“αž½αž“αž”αŸƒαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž“αžΉαž„αž‘αŸ†αž αŸ† β€œsize_of::()β€αŸ” API αžαŸ’αž˜αžΈαž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸαŸ‡ αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αžšαŸ€αž”αž…αŸ†αž”αŸƒαž’αž»αž αŸ’αžœαžŸαž·αžαžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αž‰αŸ’αž‡αžΌαž“αž”αŸ’αžšαž—αŸαž‘αž‘αŸ…αž‡αžΆ "*const u8" ឬ "*mut u8" αž‡αžΆαž˜αž»αž“αžŸαž·αž“αŸ”
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_add
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_offset
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_offset_from
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_sub
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:wrapping_byte_add
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:wrapping_byte_offset
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:wrapping_byte_sub
  • αž€αžΆαžšαž„αžΆαžšαž”αž“αŸ’αžαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹ rustc compiler αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– BOLT αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž€αŸ’αžšαŸ„αž™αžαŸ†αžŽ αž“αž·αž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž–αžΈαž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‘αž»αž€αž‡αžΆαž˜αž»αž“αŸ” αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ BOLT αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αž”αŸ’αžšαž αŸ‚αž› 2% αžŠαŸ„αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αŸ’αž›αž„αŸ‹αž“αŸƒαž€αžΌαžŠαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ librustc_driver.so αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžαž½αžšαž€αŸ’αž”αžΆαž›αŸ”

    αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž€αžŸαžΆαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ rustc αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‡αž˜αŸ’αžšαžΎαžŸ "-Ccodegen-units=1" αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž‚αž»αžŽαž—αžΆαž–αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸ…αž€αŸ’αž“αž»αž„ LLVM αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ‚αž›αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αžΆαžšαž€αžΎαž“αž‘αžΎαž„αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸƒ "-Ccodegen-units=1" αžŸαžΆαž„αžŸαž„αŸ‹αž”αŸ’αžšαž αŸ‚αž› 1.5% αŸ” αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αžœαŸαž‘αž·αž€αžΆ x86_64-unknown-linux-gnu αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

    αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž›αžΎαž€αž‘αžΎαž„αž–αžΈαž˜αž»αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ„αž™ Google αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž–αŸαž›αžœαŸαž›αžΆαž”αž„αŸ’αž€αžΎαžαžŸαž˜αžΆαžŸαž’αžΆαžαž»αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Android αžŠαŸ‚αž›αž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Rust αŸ” αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ β€œ-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
    • FileTimes
    • FileTimesExt
    • αž―αž€αžŸαžΆαžšαŸ–:set_modified
    • αž―αž€αžŸαžΆαžšαŸ–:set_times
    • IpAddr::to_canonical
    • Ipv6Addr::to_canonical
    • αž‡αž˜αŸ’αžšαžΎαžŸαŸ–αŸ– as_slice
    • αž‡αž˜αŸ’αžšαžΎαžŸαŸ–αŸ– as_mut_slice
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_add
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_offset
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_offset_from
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:byte_sub
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:wrapping_byte_add
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:wrapping_byte_offset
    • αž‘αŸ’αžšαž“αž·αž…αŸ–:wrapping_byte_sub
  • αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ "const" αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αžŽαžΆαž˜αž½αž™αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αžαŸαžš αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžšαŸ–
    • Ipv6Addr::to_ipv4_mapped
    • αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆUninit:: assume_init_read
    • αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆUninit::αžŸαžΌαž“αŸ’αž™
    • mem :: αžšαžΎαžŸαž’αžΎαž„
    • mem :: αžŸαžΌαž“αŸ’αž™
  • αž€αž˜αŸ’αžšαž·αžαž‘αžΈαž”αžΈαž“αŸƒαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆ csky-unknown-linux-gnuabiv2hf, i586-unknown-netbsd αž“αž·αž„ mipsel-unknown-netbsd platforms αŸ” αž€αž˜αŸ’αžšαž·αžαž‘αžΈαž”αžΈαž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž€αžΆαžšαžŸαŸ’αžαžΆαž”αž“αžΆαž•αŸ’αž›αžΌαžœαž€αžΆαžš αž¬αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžαžΎαž€αžΌαžŠαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž¬αž’αžαŸ‹αŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž™αžΎαž„αž’αžΆαž…αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αžΌαžœαž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„ Hermit αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžαžΊαžŽαŸ‚αž›αž―αž€αž‘αŸαžŸ (unikernel) αžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαž‡αžΆαž—αžΆαžŸαžΆ Rust αžŠαŸ„αž™αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αžŠαŸ‚αž›αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒ hypervisor ឬ hardware αž‘αž‘αŸαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αŸ” αž“αž·αž„αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαžŸαŸ’αžαžΆαž–αžšαž‘αŸ…αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ„αž™αž―αž€αžšαžΆαž‡αŸ’αž™ αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αžαžΊαžŽαŸ‚αž› OS αž“αž·αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αž›αŸαžαž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ Apache 2.0 αž“αž·αž„ MIT αŸ” αž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαŸ‚αž―αž„αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Rust, Go, Fortran, C αž“αž·αž„ C ++ αŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž€αŸαž€αŸ†αž–αž»αž„αž’αž—αž·αžœαžŒαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Hermit αžŠαŸ„αž™αž”αŸ’αžšαžΎ QEMU αž“αž·αž„ KVM αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹