рд░рд╕реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ 1.34 рд░рд┐рд▓реАрдЬ

рдореЛрдЬрд┐рд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ Rust 1.34, рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдЫред рднрд╛рд╖рд╛ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рд░ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рди рд╡рд╛ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдЙрдЪреНрдЪ рдХрд╛рд░реНрдп рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рд░рд╕реНрдЯрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдкреЛрдЗрдиреНрдЯрд░ рд╣реЗрд░рдлреЗрд░рдмрд╛рдЯ рдореБрдХреНрдд рдЧрд░реНрджрдЫ рд░ рдирд┐рдореНрди-рд╕реНрддрд░ рдореЗрдореЛрд░реА рд╣реЗрд░рдлреЗрд░рдмрд╛рдЯ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдмрдЪрд╛рдЙрдБрдЫ, рдЬрд╕реНрддреИ-рдореБрдХреНрдд рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ, рдирд▓ рдкреЛрдЗрдиреНрдЯрд░ рдбрд┐рд░реЗрд░реЗрдиреНрд╕реЗрд╕, рдмрдлрд░ рдУрднрд░рд░рдиреНрд╕, рд░ рдпрд╕реНрддреИред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди, рд╕рдВрдпреЛрдЬрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд░ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди, рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИрдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдХ рдХреНрд▓рд┐рдХрдорд╛ рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред crates.io рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерд┐рдд рдЫред

рдореБрдЦреНрдп рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ:

  • рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд▓реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрдпрд╛рдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдердкреЗрдХреЛ рдЫ рдЬреБрди crates.io рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╕рдБрдЧ рд╕рдБрдЧреИ рд░рд╣рди рд╕рдХреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЕрдм рдЖрдлреНрдиреИ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рдЬреБрди Cargo.toml рдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ crates.io рдЬрд╕реНрддреИ рд╕рдВрд╕реНрдХрд░рдг рдореЛрдбреЗрд▓ рд▓рд╛рдЧреВ рдЧрд░реНрди, рд╕рд╛рдереИ рджреБрд╡реИ рдХреНрд░реЗрдЯрд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреБрд╣реЛрд╕реНред io рд░ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ред

    ~/.cargo/config рдорд╛ рдмрд╛рд╣реНрдп рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдердкреНрди
    "[рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╣рд░реВ]" рдЦрдгреНрдбрдорд╛ рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рд╡рд┐рдХрд▓реНрдк "рдорд╛рдИ-рд░рдЬрд┐рд╕реНрдЯреНрд░реА" рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ "[рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ]" рдЦрдгреНрдбрдорд╛ Cargo.toml рдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВрдорд╛ рдмрд╛рд╣реНрдп рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрди "рдЕрдиреНрдп-рдХреНрд░реЗрдЯ" рд╡рд┐рдХрд▓реНрдк рдердкрд┐рдПрдХреЛ рдЫред рдЕрддрд┐рд░рд┐рдХреНрдд рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЯреЛрдХрдирд▓рд╛рдИ ~/.cargo/credentials рдлрд╛рдЗрд▓рдорд╛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рд░ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред
    "рдХрд╛рд░реНрдЧреЛ рд▓рдЧрдЗрди --registry=my-registry" рд░ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрди -
    "рдХрд╛рд░реНрдЧреЛ рдкреНрд░рдХрд╛рд╢рди -registry=my-registry";

  • "?" рдЕрдкрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред doctests рдорд╛, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд╛рдЧрдЬрд╛рддрдмрд╛рдЯ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдкрд░реАрдХреНрд╖рдгрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкрд╣рд┐рд▓реЗ рдЕрдкрд░реЗрдЯрд░
    "?" рдХреЗрд╡рд▓ "fn main()" рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдорд╛ рд╡рд╛ "#[test]" рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ;

  • рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдиреБрдХреВрд▓рди рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛, рдЯреЛрдХрдирд╣рд░реВрдХреЛ рдордирдорд╛рдиреА рд╕реЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ (тАЬ#[attr($tokens)]тАЭ, тАЬ#[attr[$tokens]] рд░ #[attr{$tokens}]тАЭ)ред рдкрд╣рд┐рд▓реЗ, рддрддреНрд╡рд╣рд░реВ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдЩ рд▓рд┐рдЯрд░рд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░реВрдЦ/рдкреБрдирд░рд╛рд╡рд░реНрддреА рдлрд╛рд░рдордорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдереНрдпреЛ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ "#[foo(bar, baz(quux, foo = "bar"))]", рддрд░ рдЕрдм рдЧрдгрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ (' #[рджрд╛рдпрд░рд╛(0. .10)]') рд░ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдЬрд╕реНрддреИ "#[рдмрд╛рдЙрдиреНрдб(T: MyTrait)]";
  • TryFrom рд░ TryInto рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддреНрд░реБрдЯрд┐ рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧрдХреЛ рд╕рд╛рде рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдиреНрддрд░рдгрд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, integer рдкреНрд░рдХрд╛рд░рд╣рд░реБ рд╕рдВрдЧ from_be_bytes рдЬрд╕реНрддрд╛ рд╡рд┐рдзрд┐рд╣рд░реБ рдЗрдирдкреБрдЯ рдХреЛ рд░реВрдк рдорд╛ arrays рдХреЛ рдЙрдкрдпреЛрдЧ рдЧрд░реНрджрдЫ, рддрд░ рдбрд╛рдЯрд╛ рдЕрдХреНрд╕рд░ рд╕реНрд▓рд╛рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдорд╛ рдЖрдЙрдБрдЫ, рд░ arrays рд░ рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реБ рдмреАрдЪ рд░реВрдкрд╛рдиреНрддрд░рдг рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЫред рдирдпрд╛рдБ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдХреЛ рдорджреНрджрддрд▓реЗ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдкрд░реЗрд╢рдирд▓рд╛рдИ .try_into() рдорд╛ рдХрд▓ рдорд╛рд░реНрдлрдд рдЙрдбрд╛рдирдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "let num = u32::from_be_bytes(slice.try_into()?)"ред рд╕рдБрдзреИ рд╕рдлрд▓ рд╣реБрдиреЗ рд░реВрдкрд╛рдиреНрддрд░рдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, u8 рдмрд╛рдЯ u32 рдкреНрд░рдХрд╛рд░ рд╕рдореНрдо), рдкрд╛рд░рджрд░реНрд╢реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рди рдПрдЙрдЯрд╛ рдЕрдЪрдореНрдордХреЛ рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрд╛рд░ рдердкрд┐рдПрдХреЛ рдЫред
    "рдмрд╛рдЯ" рдХреЛ рд╕рдмреИ рдЕрд╡рд╕реНрдерд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН;

  • CommandExt::before_exec рдкреНрд░рдХрд╛рд░реНрдп рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ exec рдЕрдШрд┐ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рдлреЛрд░реНрдХ() рдХрд▓ рдкрдЫрд┐ рдлреЛрд░реНрдХ рдЧрд░рд┐рдПрдХреЛ рдмрдЪреНрдЪрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рддреНрдпрд╕реНрддрд╛ рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдорд╛, рдЕрднрд┐рднрд╛рд╡рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХрд╛ рдХреЗрд╣реА рд╕реНрд░реЛрддрд╣рд░реВ, рдЬрд╕реНрддреИ рдлрд╛рдЗрд▓ рд╡рд░реНрдгрдирдХрд░реНрддрд╛рд╣рд░реВ рд░ рдореНрдпрд╛рдк рдЧрд░рд┐рдПрдХреЛ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░рд╣рд░реВ, рдирдХреНрдХрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдЧрд▓рдд рд╕рдЮреНрдЪрд╛рд▓рди рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫред
    before_exec рдХреЛ рд╕рдЯреНрдЯрд╛, рдпреЛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рдХрд╛рд░реНрдп CommandExt::pre_exec рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫред

  • 8 рджреЗрдЦрд┐ 64 рдмрд┐рдЯ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, AtomicU8), рд╕рд╛рдереИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░рд╣рд░реВ NonZeroI [8|16|32|54|128] рдХреЛ рдЖрдХрд╛рд░рдорд╛ рд╕реНрдерд┐рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирдЧрд░рд┐рдПрдХреЛ рдкрд░рдорд╛рдгреБ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░рд╣рд░реВред
  • API рдХреЛ рдирдпрд╛рдБ рднрд╛рдЧ рдХреБрдиреИ рдкрдирд┐::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[add|sub тАЛтАЛрд╕рд╣рд┐рдд рд╕реНрдерд┐рд░ рдХреЛрдЯреАрдорд╛ рд╕рд╛рд░рд┐рдПрдХреЛ рдЫред ] рд░ SystemTime рд╡рд┐рдзрд┐рд╣рд░реВ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ ::checked_[add|sub]ред iter::from_fn рд░ iter::successors рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • рд╕рдмреИ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐, checked_pow, saturating_pow, wrapping_pow рд░ overflowing_pow рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫрдиреН;
  • "-C linker-plugin-lto" рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ рд▓рд┐рдЩреНрдХрд┐рдЩ рдЪрд░рдгрдорд╛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛ (rustc рд▓реЗ рд░рд╕реНрдЯ рдХреЛрдбрд▓рд╛рдИ LLVM рдмрд┐рдЯрдХреЛрдбрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдЫ, рдЬрд╕рд▓реЗ LTO рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ)ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди