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

рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ 1.47 рд░рд┐рд▓реАрдЬ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЦрд┐рдпрд╛рд▓реЗ, рдореЛрдЬрд┐рд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рддред рднрд╛рд╖рд╛ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрджрдЫ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рд░ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдЙрдЪреНрдЪ рдХрд╛рд░реНрдп рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдлреЛрд╣реЛрд░ рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ ╨╕ runtime (рд░рдирдЯрд╛рдЗрдо рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рд╛рд░рдореНрдн рд░ рдорд░реНрдорддрд╕рдореНрднрд╛рд░рдорд╛ рдЙрдмрд▓рд┐рдиреНрдЫ)ред

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

рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░рд╣рд░реВ:

  • рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд░реНрдерди arrays рдХреБрдиреИ рдкрдирд┐ рдЖрдХрд╛рд░ред рдкрд╣рд┐рд▓реЗ, рд╕рдмреИ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рдЖрдХрд╛рд░рдорд╛ 32 рддрддреНрд╡рд╣рд░реВ рд╕рдореНрдордХрд╛ рдПрд░реЗрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдирд┐рд░реНрдорд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНтАНрдпреЛ (рдкреНрд░рддреНрдпреЗрдХ рдЖрдХрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╕реНрдерд┐рд░ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ)ред рд╕реНрдерд┐рд░ generics ("const generics") рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рд╛рдЧреА рдзрдиреНрдпрд╡рд╛рдж, рдпреЛ рдХреБрдиреИ рдкрдирд┐ рдПрд░реЗ рдЖрдХрд╛рд░ рдХреЛ рд▓рд╛рдЧреА рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реБ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рд╕рдореНрднрд╡ рднрдпреЛ, рддрд░ рддрд┐рдиреАрд╣рд░реБ рд▓рд╛рдИ рд╕реНрдерд┐рд░ рднрд╛рд╖рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ рдорд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рдпрджреНрдпрдкрд┐ рддрд┐рдиреАрд╣рд░реБ рд▓рд╛рдИ рдХрдореНрдкрд╛рдЗрд▓рд░ рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЕрд╣рд┐рд▓реЗ рд╕рдВрд▓рдЧреНрди рдХреБрдиреИ рдкрдирд┐ рдЖрдХрд╛рд░рдХреЛ рдПрд░реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ред

    рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, Rust 1.47 рдорд╛ рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рд▓реЗ рдПрд░реЗ рдХреЛ рд╕рд╛рдорд╛рдЧреНрд░реА рдЫрд╛рдкреНрдиреЗрдЫ, рдпрджреНрдпрдкрд┐ рдкрд╣рд┐рд▓реЗ рдпреЛ рддреНрд░реБрдЯрд┐ рдорд╛ рдкрд░рд┐рдгрд╛рдо рд╣реБрдиреЗрдЫ:

    fn main() {
    let xs = [0; рейрек];

    println!("{:?}", xs);
    }

  • рдЫреЛрдЯреЛ рдЯреНрд░реЗрд╕рд╣рд░реВ (рдмреНрдпрд╛рдХрдЯреНрд░реЗрд╕), рдЖрдкрддрдХрд╛рд▓реАрди рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдпреЛред рддрддреНрд╡рд╣рд░реВ рдЬреБрди рдзреЗрд░реИ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рдЪрд╛рд╕реЛрдХреЛ рдЫреИрди, рддрд░ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрджрдЫ рд░ рд╕рдорд╕реНрдпрд╛рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдгрд╣рд░реВрдмрд╛рдЯ рдзреНрдпрд╛рди рд╡рд┐рдЪрд▓рд┐рдд рдЧрд░реНрджрдЫ, рдЯреНрд░реЗрд╕рдмрд╛рдЯ рдмрд╣рд┐рд╖реНрдХреГрдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдкреВрд░реНрдг рдЯреНрд░реЗрд╕ рдлрд░реНрдХрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ "RUST_BACKTRACE=full" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдХреЛрдб рдХреЛ рд▓рд╛рдЧреА

    fn main() {
    рдбрд░рд╛рдЙрдиреЗ!();
    }

    рдкрд╣рд┐рд▓реЗ, рдЯреНрд░реЗрд╕ 23 рдЪрд░рдгрд╣рд░реВрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рдерд┐рдпреЛ, рддрд░ рдЕрдм рдпреЛ рдШрдЯрд╛рдЗрдиреЗрдЫ
    3 рдЪрд░рдгрд╣рд░реВ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рд╕рд╛рд░ рдмреБрдЭреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

    рдереНрд░реЗрдб 'рдореБрдЦреНрдп' 'рд╕реНрдкрд╖реНрдЯ рдЖрддрдВрдХ' рдорд╛ рдЖрддреНрддрд┐рдпреЛ, src/main.rs:2:5
    рд╕реНрдЯреНрдпрд╛рдХ рдмреНрдпрд╛рдХрдЯреНрд░реЗрд╕:
    реж: std::panicking::begin_panic
    /rustc/dтАжd75a/library/std/src/panicking.rs:497 рдорд╛
    рез: рдЦреЗрд▓ рдореИрджрд╛рди :: рдореБрдЦреНрдп
    ./src/main.rs:2 рдорд╛
    2: core::ops::function::FnOnce::call_once
    /rustc/dтАжd75a/library/core/src/ops/function.rs:227 рдорд╛

  • rustc рдХрдореНрдкрд╛рдЗрд▓рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫ LLVM ..реж (рд░рд╕реНрдЯ рдЙрдкрдпреЛрдЧрд╣рд░реБ LLVM рдХреЛ рд▓рд╛рдЧрд┐ рдмреНрдпрд╛рдХрдЗрдиреНрдбрдХреЛ рд░реВрдкрдорд╛ рдХреЛрдб рдЙрддреНрдкрд╛рджрди)ред рдПрдХреИ рд╕рдордпрдорд╛, рдкреБрд░рд╛рдиреЛ LLVM рд╕рдБрдЧ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛, рд╕рдВрд╕реНрдХрд░рдг 8 рд╕рдореНрдо, рдХрд╛рдпрдо рд░рд╛рдЦрд┐рдПрдХреЛ рдЫ, рддрд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ (рдорд╛ rust-lang/llvm-project) рд▓реЗ рдЕрд╣рд┐рд▓реЗ LLVM 11 рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫред LLVM 11 рдЖрдЧрд╛рдореА рджрд┐рдирд╣рд░реВрдорд╛ рд░рд┐рд▓рд┐рдЬ рд╣реБрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • Windows рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛, rustc рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ "-C control-flow-guard" рдлреНрд▓реНрдпрд╛рдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╕рдХреНрд░рд┐рдп рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдЕрдЦрдгреНрдбрддрд╛ рдЬрд╛рдБрдЪрд╣рд░реВ (рдХрдиреНрдЯреНрд░реЛрд▓ рдлреНрд▓реЛ рдЧрд╛рд░реНрдб) рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рдпреЛ рдЭрдгреНрдбрд╛ рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдПрдкреАрдЖрдИрд╣рд░реВрдХреЛ рдирдпрд╛рдБ рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рд╕рд╣рд┐рдд
    рдкрд╣рд┐рдЪрд╛рди::new_raw,
    рджрд╛рдпрд░рд╛::is_empty,
    рджрд╛рдпрд░рд╛ рд╕рдорд╛рд╡реЗрд╢реА::is_empty,
    рдирддрд┐рдЬрд╛::as_deref,
    рдирддрд┐рдЬрд╛::as_deref_mut,
    Vec:: рд▓реАрдХ,
    рд╕реВрдЪрдХ::offset_from,
    f32::TAU рд░
    f64::TAUред

  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реНрдерд┐рд░рддрд╛рдХреЛ рд╕рдЯреНрдЯрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рд╡рд┐рдзрд┐рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ:
    • рд╢реВрдиреНрдп рдмрд╛рд╣реЗрдХ рд╕рдмреИ рдкреВрд░реНрдгрд╛рдВрдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ;
    • checked_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub рд░ saturating_mul рд╕рдмреИ рдкреВрд░реНрдгрд╛рдВрдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐;
    • is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace рд░ u8_control рдкреНрд░рдХрд╛рд░рд╣рд░реВред
  • FreeBSD рдХреЛ рд▓рд╛рдЧреА рд╕рдВрд▓рдЧреНрди FreeBSD 11.4 рдмрд╛рдЯ рдЯреВрд▓рдХрд┐рдЯ (FreeBSD 10 рд▓реЗ LLVM 11 рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди)ред

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

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