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

рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ 1.46 рд░рд┐рд▓реАрдЬ рдХрд░рд╛ рдЧрдВрдЬ, Mozilla рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдерд╛рдкрд┐рдд. рднрд╛рд╖рд╛ рдореЗрдорд░реА рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ, рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЖрдгрд┐ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рди рдХрд░рддрд╛ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдп рд╕рдорд╛рдВрддрд░рддрд╛ рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЖрдгрд┐ рд░рдирдЯрд╛рдЗрдо.

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

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

  • "const fn" рдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдВрдирд╛ рдХреЗрд╡рд│ рдирд┐рдпрдорд┐рдд рдлрдВрдХреНрд╢рдиреНрд╕ рдореНрд╣рдгреВрди рд╕рдВрдмреЛрдзрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдРрд╡рдЬреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдВрджрд░реНрднрд╛рдд рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рд╣реА рдлрдВрдХреНрд╢рдиреНрд╕ рд░рдирдЯрд╛рдЗрдорд╡рд░ рдирд╡реНрд╣реЗ рддрд░ рдХрдВрдкрд╛рдЗрд▓ рдЯрд╛рдЗрдорд╡рд░ рдореЛрдЬрд▓реА рдЬрд╛рддрд╛рдд, рддреНрдпрд╛рдореБрд│реЗ рддреЗ рдХрд╛рд╣реА рдирд┐рд░реНрдмрдВрдзрд╛рдВрдЪреНрдпрд╛ рдЕрдзреАрди рдЕрд╕рддрд╛рдд, рдЬрд╕реЗ рдХреА рдХреЗрд╡рд│ рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдордзреВрди рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛.

    рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рди рдЕрд╢рд╛ рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рдмреБрд▓рд┐рдпрди рдСрдкрд░реЗрдЯрд░реНрд╕ (тАЬ&&тАЭ рдЖрдгрд┐ тАЬ||тАЭ) рд╡рд╛рдкрд░рдгреНрдпрд╛рд╡рд░реАрд▓ рдмрдВрджреА рдХрд╛рдвреВрди рдЯрд╛рдХрддреЗ, рдЖрдгрд┐ тАЬifтАЭ, тАЬif letтАЭ, тАЬmatchтАЭ constructs рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ,
    "while", "while let" рдЖрдгрд┐ "loop" рдЖрдгрд┐ "&[T]" рд╣рд╛ рд╢рдмреНрдж рд╡рд╛рдкрд░реВрди рд╕реНрд▓рд╛рдЗрд╕ (рд╕реНрд▓рд╛рдЗрд╕, рдбрд╛рдпрдиреЕрдорд┐рдХ рдЕреЕрд░реЗ) рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. "const fn" рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╕рдВрд╕рд╛рдзрди-рдХреЗрдВрджреНрд░рд┐рдд рдСрдкрд░реЗрд╢рдиреНрд╕ рд╕рдВрдХрд▓рдирд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рд╣рд▓рд╡рд┐рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, "const-sha1" рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдореБрд│реЗ рдХрдВрдкрд╛рдЗрд▓рдЪреНрдпрд╛ рд╡реЗрд│реА SHA-1 рд╣реЕрд╢рдЪреА рдЧрдгрдирд╛ рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд░рд╕реНрдЯрд╕рд╛рдареА WinRT рдмрд╛рдЗрдВрдбрд┐рдВрдЧрдЪрд╛ рд╡реЗрдЧ рдЬрд╡рд│рдЬрд╡рд│ 40 рдкрдЯ рд╡рд╛рдврддреЛ.

  • рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреАрдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, тАЬ#[track_caller]тАЭ рд╡рд┐рд╢реЗрд╖рддрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рд╕реНрдерд┐рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рдЕрдирд░реЕрдк рд╕рд╛рд░рдЦреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ, рдЬреЗ рдкреНрд░рдХрд╛рд░ рдЪреБрдХреАрдЪреНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рд╡рд╛рдкрд░рд▓реЗ рдЧреЗрд▓реНрдпрд╛рд╕ рдШрд╛рдмрд░реВ рд╢рдХрддрд╛рдд. рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреЕрдирд┐рдХ рд╣рдБрдбрд▓рд░рджреНрд╡рд╛рд░реЗ рдХреЙрд▓рд░рдЪреЗ рд╕реНрдерд╛рди рдПрд░рд░ рдореЗрд╕реЗрдЬрдордзреНрдпреЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдИрд▓.
  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреА рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдРрд╡рдЬреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдВрджрд░реНрднрд╛рдд рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ, std::mem::forget рдкрджреНрдзрддреАрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.
  • API рдЪрд╛ рдПрдХ рдирд╡реАрди рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд▓рд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕реНрдерд┐рд░ рдкрд░реНрдпрд╛рдп::zip рдЖрдгрд┐ vec::Drain::as_slice рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
  • рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░ рдХрд╛рд░реНрдЧреЛрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдкреЕрдХреЗрдЬ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛рдирд╛ рдирд╡реАрди рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди: CARGO_BIN_NAME (рдкрд░рд┐рдгрд╛рдореА рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдЪреЗ рдирд╛рд╡), CARGO_CRATE_NAME (рдкреЕрдХреЗрдЬ рдирд╛рд╡), CARGO_PKG_LICENSE (рдореЕрдирд┐рдлреЗрд╕реНрдЯрдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд╡рд╛рдирд╛), CARGO_PKG_LICENSE_FILE (рдкрд░рд╡рд╛рдирд╛ рдлрд╛рдЗрд▓рдЪрд╛ рдорд╛рд░реНрдЧ).

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

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