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

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

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

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

  • rustc рдХрдВрдкрд╛рдЗрд▓рд░ рдордзреНрдпреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдорд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рд╕рдорд░реНрдерди (рдкреАрдЬреАрдУ, рдкреНрд░реЛрдлрд╛рдЗрд▓-рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди),
    рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрджрд░рдореНрдпрд╛рди рдЬрдорд╛ рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдЖрдХрдбреЗрд╡рд╛рд░реАрдЪреНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рдХреЛрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, тАЬ-C profile-generateтАЭ рдзреНрд╡рдЬ рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдЕрд╕реЗрдВрдмреНрд▓реА рджрд░рдореНрдпрд╛рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА - тАЬ-C profile-useтАЭ (рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд╣рд┐рд▓реНрдпрд╛ рдзреНрд╡рдЬрд╛рд╕рд╣ рдПрдХрддреНрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдлрд┐рд░рддреЛ рдЖрдгрд┐ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓, рддреЗ рджреБрд╕рд▒реНрдпрд╛ рдзреНрд╡рдЬрд╛рд╕рд╣ рдкреБрдиреНрд╣рд╛ рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ);

  • "рдХрд╛рд░реНрдЧреЛ рд░рди" рдХрдорд╛рдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛рдирд╛, рдЬреЛ рдХрдиреНрд╕реЛрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рджреНрд░реБрдд рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ, рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рдЕрдиреЗрдХ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛рдпрдЪреА рдбреАрдлреЙрд▓реНрдЯ рдлрд╛рдЗрд▓ рдкреЕрдХреЗрдЬ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ [рдкреЕрдХреЗрдЬ] рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рдбреАрдлреЙрд▓реНрдЯ-рд░рди рдирд┐рд░реНрджреЗрд╢рд╛рджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА "рдХрд╛рд░реНрдЧреЛ рд░рди" рдЪрд╛рд▓рд╡рддрд╛рдирд╛ "-рдмрд┐рди" рдзреНрд╡рдЬрд╛рджреНрд╡рд╛рд░реЗ рдлрд╛рдЗрд▓рдЪреЗ рдирд╛рд╡ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирдореВрдж рдХрд░рдгреЗ рдЯрд╛рд│рддрд╛ рдпреЗрддреЗ;
  • "рдХрд╛рд░реНрдЧреЛ рд╡рд┐рдХреНрд░реЗрддрд╛" рдЖрджреЗрд╢, рдкреВрд░реНрд╡реА рдореНрд╣рдгреВрди рдкреБрд░рд╡рд▓реЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреЕрдХреЗрдЬ. рдХрдорд╛рдВрдб рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╡рд▓рдВрдмрдирд╛рдВрдЪреНрдпрд╛ рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рддреАрд╕рд╣ рдХрд╛рд░реНрдп рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ - тАЬрдХрд╛рд░реНрдЧреЛ рд╡рд┐рдХреНрд░реЗрддрд╛тАЭ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдЕрд╡рд▓рдВрдмрд┐рддрддреЗрдЪреЗ рд╕рд░реНрд╡ рд╕реНрддреНрд░реЛрдд рдХреЛрдб crates.io рд╡рд░реВрди рд╕реНрдерд╛рдирд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреЗ рдирдВрддрд░ рдХреНрд░реЗрдЯрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рди рдХрд░рддрд╛ рдХрд╛рдорд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. io (рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдмрд┐рд▓реНрдбрд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЗрд╢рд╛рд░рд╛ рджрд░реНрд╢рд╡рд┐рд▓рд╛ рдЬрд╛рддреЛ). рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЖрдзреАрдкрд╛рд╕реВрди rustc рдХрдВрдкрд╛рдЗрд▓рд░рдЪреЗ рд╡рд┐рддрд░рдг рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рдЕрд╡рд▓рдВрдмрдирд╛рдВрдЪреНрдпрд╛ рдкреЕрдХреЗрдЬрд┐рдВрдЧрд╕рд╣ рдПрдХрд╛рдЪ рд╕рдВрдЧреНрд░рд╣рдгрд╛рдд рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ;
  • рдЖрддрд╛ рдЯрд╛рдИрдк рдЙрдкрдирд╛рдо рд╡рд╛рдкрд░реВрди рдПрдирдо рдкрд░реНрдпрд╛рдпрд╛рдВрд╕рд╛рдареА рд▓рд┐рдВрдХреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, "fn increment_or_zero(x: ByteOption) рдлрдВрдХреНрд╢рдирдЪреНрдпрд╛ рдореБрдЦреНрдп рднрд╛рдЧрд╛рдордзреНрдпреЗ рддреБрдореНрд╣реА "ByteOption::None => 0" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛), рдЧрдгрдирд╛ рд░рдЪрдирд╛ (тА╣) рдЯрд╛рдЗрдк рдХрд░рд╛ MyTypeтА╣.. тА║тА║::option => N) рдХрд┐рдВрд╡рд╛ рд╕реЗрд▓реНрдл рдНрдХреНрд╕реЗрд╕реЗрд╕ (рдмреНрд▓реЙрдХ c &self рдордзреНрдпреЗ рддреБрдореНрд╣реА "Self::Quarter => 25" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛);
  • рдореЕрдХреНрд░реЛрдордзреНрдпреЗ рдЕрдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА. "const" рдордзреНтАНрдпреЗ рдШрдЯрдХрд╛рдЪреЗ рдирд╛рд╡ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рдореЕрдХреНрд░реЛрд▓рд╛ рдкреБрдиреНтАНрд╣рд╛ рдХреЙрд▓ рдХрд░рддрд╛рдирд╛ рдирд╛рд╡рд╛рдЪрд╛ рд╡рд┐рд░реЛрдз рдЯрд╛рд│реВрди, рдкреБрдирд░рд╛рд╡реГрддреНрддреА рди рд╣реЛрдгрд╛рд░рд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдбрд╛рдпрдиреЕрдорд┐рдХрдкрдгреЗ рдирд┐рд╡рдбрдгреНтАНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдЖрддрд╛ "_" рд╡рд░реНрдг рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛;
  • рд╕рдВрд░реЗрдЦрдирд╛рд╕рд╣ AlignNтА╣TтА║ рд╕рдВрд░рдЪрдиреЗрдЪреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЖрдгрд┐ рдирдВрддрд░ AlignNтА╣MyEnumтА║ рд╡рд╛рдкрд░реВрди рд╕рдорд╛рди рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд╡рд╛рдкрд░реВрди enums рд╕рд╣ "#[repr(align(N))" рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА;
  • рдмрдлрд░реАрдбрд░::рдмрдлрд░, рдмрдлрд░рд╛рдЗрдЯрд░::рдмрдлрд░ рдЖрдгрд┐ рдпрд╛рд╕рд╣ API рдЪрд╛ рдПрдХ рдирд╡реАрди рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд▓рд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.
    рд╕реЗрд▓::from_mut,
    рд╕реЗрд▓:: as_slice_of_cells,
    DoubleEndedIterator::nth_back,
    рдкрд░реНрдпрд╛рдп::xor
    {i,u}{8,16,64,128,size}::reverse_bits, wrapping::reverse_bits рдЖрдгрд┐
    рд╕реНрд▓рд╛рдЗрд╕::copy_within.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЪрд╛рдЪрдгреА рд╕реБрд░реВ рдкреНрд░рдХрд▓реНрдк Async-std, рдЬреЗ рд░рд╕реНрдЯ рд╕реНрдЯрдБрдбрд░реНрдб рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡реНрд╣реЗрд░рд┐рдпрдВрдЯ рдСрдлрд░ рдХрд░рддреЗ (рдПрд╕рдЯреАрдбреА рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ рдПрдХ рдкреЛрд░реНрдЯ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рд░реНрд╡ рдЗрдВрдЯрд░рдлреЗрд╕ async рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдСрдлрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ async/await рд╕рд┐рдВрдЯреЕрдХреНрд╕рд╕рд╣ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗрдд).

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

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