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

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

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

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

  • рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░рдордзреНрдпреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдПрд░рд░ рдЖрдгрд┐ рдЗрд╢рд╛рд░реЗ рд╡рд┐рд▓реАрди рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЖрд╣реЗ рдЬреА рдмрд┐рд▓реНрдб рджрд░рдореНрдпрд╛рди рдЙрджреНрднрд╡рддрд╛рдд. "рдХрд╛рд░реНрдЧреЛ рдЯреЗрд╕реНрдЯ" рдЖрдгрд┐ "рдХрд╛рд░реНрдЧреЛ рдЪреЗрдХ --рдСрд▓-рдЯрд╛рд░реНрдЧреЗрдЯреНрд╕" рд╕рд╛рд░рдЦреНрдпрд╛ рдХрдорд╛рдВрдбреНрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рддрд╛рдирд╛ рдЬреНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ рдЕрдиреЗрдХ рдмрд┐рд▓реНрдбрдордзреНрдпреЗ рд╣реЛрддреЛ, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдЖрддрд╛ рджрд░реНрд╢рд╡рд┐рдгреНрдпрд╛рдРрд╡рдЬреА, рдкреБрдирд░рд╛рд╡реГрддреНрддреА рд╣реЛрдгрд╛рд▒реНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд░реНрд╢рд╡рд┐рд▓рд╛ рдЬрд╛рддреЛ. рдПрдХрдЪ рдЧреЛрд╖реНрдЯ рд╡рд╛рд░рдВрд╡рд╛рд░ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╕рдорд╛рди рдЪреЗрддрд╛рд╡рдгреА. $ cargo +1.55.0 рдЪреЗрдХ тАФрд╕рд░реНрд╡-рд▓рдХреНрд╖реНрдп рддрдкрд╛рд╕рдд рдЖрд╣реЗ foo v0.1.0 рдЪреЗрддрд╛рд╡рдгреА: рдлрдВрдХреНрд╢рди рдХрдзреАрд╣реА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА: 'foo' тАФ> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = рдЯреАрдк: '#[warn(dead_code)]' рд╡рд░ рдмрд╛рдп рдбреАрдлреЙрд▓реНрдЯ рдЪреЗрддрд╛рд╡рдгреА: 'foo' (lib) рдиреЗ 1 рдЪреЗрддрд╛рд╡рдгреА рдЪреЗрддрд╛рд╡рдгреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реА: 'foo' (lib рдЪрд╛рдЪрдгреА) 1 рдЪреЗрддрд╛рд╡рдгреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реА (1 рдбреБрдкреНрд▓рд┐рдХреЗрдЯ) рдкреВрд░реНрдг dev [unoptimized + debuginfo] рд▓рдХреНрд╖реНрдп (s)0.84s рдордзреНрдпреЗ
  • рд╕реНрдЯрдБрдбрд░реНрдб рд▓рд╛рдпрдмреНрд░рд░реАрдордзреАрд▓ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛрдб рдЬрд▓рдж рдЖрдгрд┐ рдЕрдзрд┐рдХ рдЕрдЪреВрдХ Eisel-Lemire рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╣рд▓рд╡рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдиреЗ рдЦреВрдк рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдЪреНрдпрд╛ рдЕрдВрдХрд╛рдВрд╕рд╣ рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдЖрдгрд┐ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдирдВрдмрд░рдЪреНрдпрд╛ рдХрд╛рд╣реА рдкреВрд░реНрд╡реА рдкрд╛рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕рдордзреНрдпреЗ рдмрдВрдж рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╢реНрд░реЗрдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд╕реНрдерд┐рд░ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ (тАЬX..тАЭ рд╣реА рд╢реНрд░реЗрдгреА рдореНрд╣рдгреВрди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЬреА рдореВрд▓реНрдп X рдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрддреЗ рдЖрдгрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░рд╛рдЪреНрдпрд╛ рдХрдорд╛рд▓ рдореВрд▓реНрдпрд╛рд╕рд╣ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ): x рд▓рд╛ u32 { 0 => println рдореНрд╣рдгреВрди рдЬреБрд│рд╡рд╛! (тАЬрд╢реВрдиреНрдп!тАЭ), 1.. => println!("рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛!"), }
  • std::io::ErrorKind рджреНрд╡рд╛рд░реЗ рдХрд╡реНрд╣рд░ рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рддреНрд░реБрдЯреА рдкреНрд░рдХрд╛рд░ (рддреНрд░реБрдЯреАрдВрдЪреЗ рд╡рд░реНрдЧреАрдХрд░рдг рдЬрд╕реЗ рдХреА NotFound рдЖрдгрд┐ WouldBlock рд╕рд╛рд░рдЦреНрдпрд╛ рд╢реНрд░реЗрдгреАрдВрдордзреНрдпреЗ рдХрд░рддреЗ). рдкреВрд░реНрд╡реА, рд╡рд┐рджреНрдпрдорд╛рди рд╢реНрд░реЗрдгреНрдпрд╛рдВрдордзреНрдпреЗ рди рдмрд╕рдгрд╛рд░реНтАНрдпрд╛ рддреНрд░реБрдЯреА ErrorKind::рдЗрддрд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рдЖрд▓реНрдпрд╛, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдХреЛрдбрдордзреАрд▓ рддреНрд░реБрдЯреАрдВрд╕рд╛рдареА рджреЗрдЦреАрд▓ рдХреЗрд▓рд╛ рдЬрд╛рдд рдЕрд╕реЗ. рдЖрддрд╛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЕрдВрддрд░реНрдЧрдд рд╢реНрд░реЗрдгреА рдЖрд╣реЗ ErrorKind::рд╡рд┐рджреНрдпрдорд╛рди рд╢реНрд░реЗрдгреАрдВрдордзреНрдпреЗ рди рдмрд╕рдгрд╛рд▒реНрдпрд╛ рддреНрд░реБрдЯреАрдВрд╕рд╛рдареА рдЕрд╡рд░реНрдЧреАрдХреГрдд, рдЖрдгрд┐ ErrorKind::рдЗрддрд░ рд╢реНрд░реЗрдгреА рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рди рдпреЗрдгрд╛рд▒реНрдпрд╛ рддреНрд░реБрдЯреАрдВрдкреБрд░рддреА рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ (рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реА рдХрд╛рд░реНрдпреЗ рдЬреА io::рддреНрд░реБрдЯреА рдкрд░рдд рдХрд░рддрд╛рдд рдпрд╛рдкреБрдвреЗ ErrorKind:: рд╢реНрд░реЗрдгреА рдЗрддрд░) рд╡рд╛рдкрд░рдгрд╛рд░ рдирд╛рд╣реА.
  • API рдЪрд╛ рдПрдХ рдирд╡реАрди рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд▓рд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкрджреНрдзрддреА рдЖрдгрд┐ рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реНрдерд┐рд░ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ:
    • рдмрджреНрдз::рдХреНрд▓реЛрди рдХреЗрд▓реЗрд▓реЗ
    • рдирд┐рдЪрд░рд╛::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • рдХрджрд╛рдЪрд┐рддUninit::assume_init_mut
    • рдХрджрд╛рдЪрд┐рддUninit::assume_init_ref
    • рдХрджрд╛рдЪрд┐рддUninit::рд▓рд┐рд╣рд╛
    • array::map
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestand complement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestand complement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреА рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдРрд╡рдЬреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдВрджрд░реНрднрд╛рдд рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ, str::from_utf8_unchecked рдкрджреНрдзрддреАрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.
  • powerpc64le-unknown-freebsd рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рдЪрд╛ рддрд┐рд╕рд░рд╛ рд╕реНрддрд░ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рддрд┐рд╕рд▒реНрдпрд╛ рд╕реНрддрд░рд╛рдордзреНрдпреЗ рдореВрд▓рднреВрдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреАрд╢рд┐рд╡рд╛рдп, рдЕрдзрд┐рдХреГрдд рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рдХреЛрдб рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреЗ.

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

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