Rust 1.68 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдкреНрд░рдХрд╛рд╢рди

Mozilla рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдерд╛рдкрд┐рдд, рдкрд░рдВрддреБ рдЖрддрд╛ рд╕реНрд╡рддрдВрддреНрд░ рдирд╛-рдирдлрд╛ рд╕рдВрд╕реНрдерд╛ Rust Foundation рдЪреНрдпрд╛ рд╕рдВрд░рдХреНрд╖рдгрд╛рдЦрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реА Rust 1.68 рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. рднрд╛рд╖рд╛ рдореЗрдорд░реА рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░реЗ рдЖрдгрд┐ рд░рдирдЯрд╛рдЗрдордЪрд╛ рд╡рд╛рдкрд░ рдЯрд╛рд│реВрди рдЙрдЪреНрдЪ рдЬреЙрдм рд╕рдорд╛рдВрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ (рд░рдирдЯрд╛рдЗрдо рдореВрд▓рднреВрдд рдкреНрд░рд╛рд░рдВрдн рдЖрдгрд┐ рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдореА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ).

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

рд╕рдВрджрд░реНрдн рддрдкрд╛рд╕рдгреА, рдСрдмреНрдЬреЗрдХреНрдЯрдЪреНрдпрд╛ рдорд╛рд▓рдХреАрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рдгреЗ, рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо (рд╕реНрдХреЛрдк) рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рдгреЗ рдЖрдгрд┐ рдХреЛрдб рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рджрд░рдореНрдпрд╛рди рдореЗрдорд░реА рдНрдХреНрд╕реЗрд╕рдЪреНрдпрд╛ рдЕрдЪреВрдХрддреЗрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреЗ рдпрд╛рджреНрд╡рд╛рд░реЗ рдореЗрдорд░реА рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд░рд╕реНрдЯрдордзреНрдпреЗ рдХрдВрдкрд╛рдЗрд▓ рд╡реЗрд│реА рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЬрд╛рддреЗ. рд░рд╕реНрдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдУрд╡реНрд╣рд░рдлреНрд▓реЛрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рд╡рд╛рдкрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрдЪреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрд░рдВрдн рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рддреНрд░реБрдЯреА рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╣рд╛рддрд╛рд│рддреЗ, рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрджрд░реНрдн рдЖрдгрд┐ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рд▓рд╛рдЧреВ рдХрд░рддреЗ, рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯреА рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдордЬрдмреВрдд рд╕реНрдерд┐рд░ рдЯрд╛рдпрдкрд┐рдВрдЧ рдСрдлрд░ рдХрд░рддреЗ.

рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛:

  • рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░ рдЖрдгрд┐ crates.io рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдиреЗ рд╕реНрдкрд╛рд░реНрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╕рд╛рдареА рд╕рдорд░реНрдерди рд╕реНрдерд┐рд░ рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдкреЕрдХреЗрдЬреЗрд╕рдЪреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдЖрд╡реГрддреНрддреНрдпрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдирд╡реАрди рдорд╛рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ. рдирд╡реАрди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рддреБрдореНрд╣рд╛рд▓рд╛ crates.io рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪреА рдЧрддреА рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╡рд╛рдврд╡рд┐рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдд рдЖрдгрдЦреА рд╡рд╛рдв рдХрд░реВрди рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд┐рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

    рд╕рдВрдкреВрд░реНрдг рдЗрдВрдбреЗрдХреНрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ рд╣реЛрдгрд╛рд░рд╛ рд╡рд┐рд▓рдВрдм рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реНрдкреЕрд░реНрд╕рдордзреНрдпреЗ Git рд╡рд╛рдкрд░реВрди рдЗрдВрдбреЗрдХреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА HTTPS рд╡рд░ рдереЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреА рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдХрд╡реНрд╣рд░ рдХрд░рддреЗ. рдПрдХ рдирд╡реАрди рд╕реЗрд╡рд╛, index.crates.io, рдЗрдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдирд╡реАрди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ Rust 1.70 рд╢рд╛рдЦреЗрдд рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдпреЛрдЬрд┐рдд рдЖрд╣реЗ, рдЖрдгрд┐ рддреНрдпрд╛рдкреВрд░реНрд╡реА, рддреЗ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ "[registries рдордзреНрдпреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ =' рдкреЕрд░рд╛рдореАрдЯрд░ рдЬреЛрдбреВ рд╢рдХрддрд╛. crates-io]" .cargo/config.toml рдлрд╛рдЗрд▓рдЪрд╛ 'рд╡рд┐рд░рд│' рд╡рд┐рднрд╛рдЧ.

  • "рдкрд┐рди!" рдореЕрдХреНрд░реЛ рдЬреЛрдбрд▓реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ "T" рдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдордзреВрди рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдЪреНрдпрд╛ рд╕реНрдерд╛рдирд┐рдХ рдкрд┐рдирд┐рдВрдЧрд╕рд╣ рдПрдХ рдкрд┐рди<&mut T> рд░рдЪрдирд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ (Box::pin рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рддреЗ рдврд┐рдЧрд╛рд▒реНрдпрд╛рд╡рд░ рдореЗрдорд░реА рд╡рд╛рдЯрдк рдХрд░рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдмрд╛рдВрдзрддреЗ. рд╕реНрдЯреЕрдХ рд╕реНрддрд░рд╛рд╡рд░).
  • рдбрд┐рдлреЙрд▓реНрдЯ рдореЗрдорд░реА рдНрд▓реЛрдХреЗрд╢рди рдПрд░рд░ рд╣рдБрдбрд▓рд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рдорд╛рдирдХ рдНрд▓реЛрдХ рдкреЕрдХреЗрдЬ рд╡рд╛рдкрд░рддрд╛рдирд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рдореЗрдорд░реА рд╡рд╛рдЯрдк рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рдХреЗрд╡рд│ alloc (std рд╢рд┐рд╡рд╛рдп) рд╕рдХреНрд╖рдо рдХрд░рдгрд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрддрд╛ тАЬpanic!тАЭ рд╣рдБрдбрд▓рд░рд▓рд╛ рдХреЙрд▓ рдХрд░рддреАрд▓, рдЬреЗ рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛ тАЬ#[panic_handler]тАЭ рд╡рд╛рдкрд░реВрди рд░реЛрдЦрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. std рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рдгрд╛рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо stderr рдЖрдгрд┐ рдХреНрд░реЕрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрд░реБрдЯреА рдорд╛рд╣рд┐рддреА рдореБрджреНрд░рд┐рдд рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡рддреАрд▓.
  • API рдЪрд╛ рдПрдХ рдирд╡реАрди рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд▓рд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкрджреНрдзрддреА рдЖрдгрд┐ рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реНрдерд┐рд░ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ:
    • {core,std}::рдкрд┐рди::рдкрд┐рди!
    • impl рдкрд╛рд╕реВрди {f32,f64} рд╕рд╛рдареА
    • std::path::MAIN_SEPARATOR_STR
    • PathBuf рд╕рд╛рдареА impl DerefMut
  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреА рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдРрд╡рдЬреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдВрджрд░реНрднрд╛рдд рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ, VecDeque::new рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.
  • Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрддрд╛ рдХрд┐рдорд╛рди NDK r25 (API 19) рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ. рдХрд┐рдорд╛рди рд╕рдорд░реНрдерд┐рдд Android рдЖрд╡реГрддреНрддреА 4.4 (KitKat) рд╡рд░ рд╡рд╛рдврд╡рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ.
  • Sony PlayStation Vita рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо (armv7-sony-vita-newlibeabihf) рд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рдЪрд╛ рддрд┐рд╕рд░рд╛ рд╕реНрддрд░ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. рддрд┐рд╕рд▒реНрдпрд╛ рд╕реНрддрд░рд╛рдордзреНрдпреЗ рдореВрд▓рднреВрдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреАрд╢рд┐рд╡рд╛рдп, рдЕрдзрд┐рдХреГрдд рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рдХреЛрдб рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛