рд░рд╕реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд░рд┐рд▓реАрдЬ реирежреирез (рез.релрем)

рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ Rust 1.56 рдХреЛ рд░рд┐рд▓реАрдЬ, Mozilla рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд, рддрд░ рдЕрдм рд╕реНрд╡рддрдиреНрддреНрд░ рдЧреИрд░-рд▓рд╛рднрдХрд╛рд░реА рд╕рдВрд╕реНрдерд╛ рд░рд╕реНрдЯ рдлрд╛рдЙрдиреНрдбреЗрд╕рди рдХреЛ рддрддреНрд╡рд╛рд╡рдзрд╛рди рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рдХрд╕рд┐рдд, рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдирд┐рдпрдорд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд░рд┐рд▓реАрдЬрд▓рд╛рдИ Rust 2021 рдкрдирд┐ рддреЛрдХрд┐рдПрдХреЛ рдЫ рд░ рд╡рд┐рдЧрдд рддреАрди рд╡рд░реНрд╖рдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд╕реНрдерд┐рд░рддрд╛ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдБрдЫред Rust 2021 рд▓реЗ рдЕрд░реНрдХреЛ рддреАрди рд╡рд░реНрд╖рдорд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдврд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдкрдирд┐ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ, рдЬрд╕рд░реА Rust 2018 рдХреЛ рд░рд┐рд▓реАрдЬ рд╡рд┐рдЧрдд рддреАрди рд╡рд░реНрд╖рдорд╛ рднрд╛рд╖рд╛рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд╛рд░ рдмрдиреНрдпреЛред

рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрди, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ "2015", "2018" рд░ "2021" рд▓реЗрдмрд▓рд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рдЬрд╕рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрд▓рд╛рдИ Rust рдХреЛ рдЪрдпрди рдЧрд░рд┐рдПрдХрд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рднрд╛рд╖рд╛ рд░рд╛рдЬреНрдп рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЫреБрдЯреНрдпрд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд░ "[рдкреНрдпрд╛рдХреЗрдЬ]" рдЦрдгреНрдбрдХреЛ "рд╕рдВрд╕реНрдХрд░рдг" рдХреНрд╖реЗрддреНрд░ рдорд╛рд░реНрдлрдд рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "2018" рд╕рдВрд╕реНрдХрд░рдгрдорд╛ 2018 рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫ рд░ рдпрд╕рд▓реЗ рдЕрдиреБрдХреВрд▓рддрд╛рд▓рд╛рдИ рддреЛрдбреНрди рдирджрд┐рдиреЗ рд╕рдмреИ рдердк рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред 2021 рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рд╣рд╛рд▓рдХреЛ 1.56 рд░рд┐рд▓реАрдЬрдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд░ рднрд╡рд┐рд╖реНрдпрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдореЛрджрд┐рдд рдЕрдиреНрддрд░рд╕рдЮреНрдЪрд╛рд▓рди-рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред рднрд╛рд╖рд╛рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕рдореНрдкрд╛рджрдХрд╣рд░реВрд▓реЗ рдЙрдкрдХрд░рдг рд░ рдХрд╛рдЧрдЬрд╛рддрдХреЛ рдЕрд╡рд╕реНрдерд╛рд▓рд╛рдИ рдкрдирд┐ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдЫрдиреНред

рд░рд╕реНрдЯ реирежреирез рдорд╛ рд░реЗрдХрд░реНрдб рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдореБрдЦ рдЕрд╕рдВрдЧрддрд┐рд╣рд░реВ:

  • рдХреНрд▓реЛрдЬрд░рд╣рд░реВрдорд╛ рдЕрд▓рдЧ рдХреНрдпрд╛рдкреНрдЪрд░ - рдХреНрд▓реЛрдЬрд░рд╣рд░реВрд▓реЗ рдЕрдм рд╕рдореНрдкреВрд░реНрдг рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рдХреЛ рд╕рдЯреНрдЯрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд┐рд▓реНрдб рдирд╛рдорд╣рд░реВ рдХреНрдпрд╛рдкреНрдЪрд░ рдЧрд░реНрди рд╕рдХреНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, "|| ax + 1" рд▓реЗ "a" рдХреЛ рд╕рдЯреНрдЯрд╛ "ax" рдорд╛рддреНрд░ рдЦрд┐рдЪреНрдиреЗрдЫред
  • arrays рдХреЛ рд▓рд╛рдЧрд┐ IntoIterator рд╡рд┐рд╢реЗрд╖рддрд╛: array.into_iter() рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рднрдиреНрджрд╛ рд╕рдЯреНрдЯрд╛ рдорд╛рдирд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдПрд░реЗ рддрддреНрд╡рд╣рд░реВрдорд╛ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  • "|" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рдкреНрд░рд╢реЛрдзрди macro_rules рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫ (рдмреБрд▓рд┐рдпрди OR) рдврд╛рдБрдЪрд╛рд╣рд░реВрдорд╛ - рдорд┐рд▓рд╛рдирд╣рд░реВрдорд╛ ":pat" рдирд┐рд░реНрджрд┐рд╖реНрдЯрдХрд░реНрддрд╛рд▓реЗ рдЕрдм "A | B"ред
  • рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╕реБрд╡рд┐рдзрд╛ рд░рд┐рдЬреЛрд▓реНрднрд░рдХреЛ рджреЛрд╕реНрд░реЛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди Rust 1.51 рдорд╛ рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛред
  • TryFrom, TryInto рд░ FromIterator рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЛрдбреНрдпреБрд▓рдорд╛ рдердкрд┐рдПрдХрд╛ рдЫрдиреНред
  • рдЖрддрдВрдХ!(..) рд░ assert!(expr, ..) macros рд▓реЗ рдЕрдм рд╕рдзреИрдВ format_args!(..) рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рдврд╛рдБрдЪрд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, println!() рдЬрд╕реНрддреИред
  • рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ ident#, ident┬╗..." рд░ ident '...' рднрд╛рд╖рд╛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рдорд╛ рдЖрд░рдХреНрд╖рд┐рдд рдЫрдиреНред
  • bare_trait_objects рд░ ellipsis_inclusive_range_patterns рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрд▓рд╛рдИ рддреНрд░реБрдЯрд┐рд╣рд░реВрдорд╛ рд╕рд╛рд░рд┐рдпреЛред

Rust 1.56 рдорд╛ рдирдпрд╛рдБ:

  • Cargo.toml рдорд╛, "[рдкреНрдпрд╛рдХреЗрдЬ]" рдЦрдгреНрдбрдорд╛, рд░рд╕реНрдЯ-рд╕рдВрд╕реНрдХрд░рдг рдХреНрд╖реЗрддреНрд░ рдердкрд┐рдПрдХреЛ рдЫ, рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рддрдкрд╛рдИрдВрд▓реЗ рдХреНрд░реЗрдЯ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рд▓рд╛рдЧрд┐ рд░рд╕реНрдЯрдХреЛ рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдБрджреИрди рднрдиреЗ, рдХрд╛рд░реНрдЧреЛрд▓реЗ рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрди рдмрдиреНрдж рдЧрд░реНрдиреЗрдЫред
  • "рдмрд╛рдЗрдиреНрдбрд┐рдЩ @ рдврд╛рдБрдЪрд╛" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдврд╛рдБрдЪрд╛ рдорд┐рд▓рд╛рдЙрдБрджрд╛, рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "рд▓реЗрдЯ рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕ @ рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕ { row_len, .. } = get_matrix();")ред
  • рдПрдкреАрдЖрдИ рдХреЛ рдПрдХ рдирдпрд╛рдБ рднрд╛рдЧ рд╕реНрдерд┐рд░ рдХреЛ рд╢реНрд░реЗрдгреА рдорд╛ рд╕рд╛рд░рд┐рдпреЛ, рд╡рд┐рдзрд┐рд╣рд░реБ рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╣рд┐рдд рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ:
    • std::os::unix::fs::chroot
    • UnsafeCell ::raw_get
    • BfWriter::into_parts
    • core::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec::srink_to
    • String::srink_to
    • OsString :: shrink_to
    • PathBuf::srink_to
    • BinaryHeap :: shrink_to
    • VecDeque::srink_to
    • HashMap::srink_to
    • HashSet::srink_to
  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬрд╕рд▓реЗ рд╕реНрдерд┐рд░рд╛рдВрдХрдХреЛ рд╕рдЯреНрдЯрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
    • std::mem::transmute
    • [T]::рдкрд╣рд┐рд▓реЛ
    • [T]::split_first
    • [рдЯреА]::рдЕрдиреНрддрд┐рдо
    • [T]::split_last
  • рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ LLVM рд╕рдВрд╕реНрдХрд░рдг 13 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реНрд╡рд┐рдЪ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рд╕рдорд░реНрдердирдХреЛ рджреЛрд╕реНрд░реЛ рд╕реНрддрд░ aarch64-apple-ios-sim рдкреНрд▓реЗрдЯрдлрд░реНрдо рд░ рддреЗрд╕реНрд░реЛ рд╕реНрддрд░ powerpc-unknown-freebsd рд░ riscv32imc-esp-espidf рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рддреЗрд╕реНрд░реЛ рддрд╣рдорд╛ рдЖрдзрд╛рд░рднреВрдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡реЗрд╢ рдЫ, рддрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдмрд┐рдирд╛, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдиреЗ, рд╡рд╛ рдХреЛрдб рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдХрд┐ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдирдЧрд░реАред

рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд░рд╕реНрдЯ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рд░ рдЧрд╛рд░реНрдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ рд╡рд╛ рд░рдирдЯрд╛рдЗрдо (рд░рдирдЯрд╛рдЗрдорд▓рд╛рдИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рд╛рд░рдореНрдн рд░ рдорд░реНрдорддрдорд╛ рдШрдЯрд╛рдЗрдПрдХреЛ рдЫ) рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдХрд╛рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдЙрдЪреНрдЪ рд╕рдорд╛рдирд╛рдиреНрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

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

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

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