рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рд░рд╕реНрдЯ 1.36 рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИ!
рд░рд╕реНрдЯ 1.36 рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ?
рдФрд░ рдЕрдм рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ:
- рдЕрдВрддрддрдГ рд░рд╕реНрдЯ 1.36 рдореЗрдВ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рднрд╡рд┐рд╖реНрдп.
- рдЯреЛрдХрд░рд╛ рдЖрд╡рдВрдЯрди.
рд░рд╕реНрдЯ 1.36 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрд╕рдЯреАрдбреА рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ (рдЬреИрд╕реЗ рд╡реАрдИрд╕реА) ), рдЖрд╡рдВрдЯрди рдХреНрд░реЗрдЯ рдореЗрдВ рд╣реИрдВред рдЕрдм рдПрд╕рдЯреАрдбреА рдЗрди рдкрд╛рд░реНрдЯреНрд╕ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ. - рд╢рд╛рдпрдж рдЗрдХрд╛рдИ mem::uninitialized рдХреЗ рдмрдЬрд╛рдпред
рдкрд┐рдЫрд▓реА рд░рд┐рд▓реАрдЬрд╝реЛрдВ рдореЗрдВ, mem::uninitialized рдиреЗ рдЖрдкрдХреЛ рдЖрд░рдВрднреАрдХрд░рдг рдЬрд╛рдВрдЪ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдереА, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд▓рд╕реА рд╕рд░рдгреА рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд╛рдлреА рдЦрддрд░рдирд╛рдХ рд╣реИ (рдЕрдзрд┐рдХ), рдЗрд╕рд▓рд┐рдП рдореЗрдмреНрдпреВрдиреАрдирд┐рдЯ рдкреНрд░рдХрд╛рд░ рд╕реНрдерд┐рд░ рд╣реЛ рдЧрдпрд╛ рдерд╛ , рдЬреЛ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдЦреИрд░, рд╣реЛрдмрдпреВрдиреАрдирд┐рдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, рддреЛ рд░рд╕реНрдЯ 1.38 рдХреЗ рдЕрдиреБрд╕рд╛рд░, mem::uninitialized рдПрдХ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред
рдпрджрд┐ рдЖрдк рдЕрдкреНрд░рд╛рд░рдВрднреАрдХреГрдд рдореЗрдореЛрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрд▓реЗрдХреНрд╕рд┐рд╕ рдмреАрдЗрдВрдЧреЗрд╕рдирд░ рдХрд╛ рдпрд╣ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред - рд░рд╕реНрдЯ 2015 рдХреЗ рд▓рд┐рдП рдПрдирдПрд▓рдПрд▓ред
рдШреЛрд╖рдгрд╛ рдореЗрдВ рдЬрдВрдЧ 1.31.0 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╣рдореЗрдВ рдПрдирдПрд▓рдПрд▓ (рдиреЙрди-рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛, рдЬреЛ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдзрд╛рд░ рд╣реИ рдЬреЛ рдЙрдзрд╛рд░ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдорд╛рд░реНрдЯ рдФрд░ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
рдПрдлрдПрди рдореБрдЦреНрдп() {
рдорд╛рди рд▓реАрдЬрд┐рдП рдореНрдпреВрдЯ x = 5;
рдорд╛рди рд▓реАрдЬрд┐рдП y = &x;
рдорд╛рди рд▓реАрдЬрд┐рдП z = &mut x; // 1.31.0 рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдереАред
}1.31.0 рдореЗрдВ, рдПрдирдПрд▓рдПрд▓ рдиреЗ рдХреЗрд╡рд▓ рд░рд╕реНрдЯ 2018 рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛, рдЗрд╕ рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд░рд╕реНрдЯ 2015 рдореЗрдВ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рдпрджрд┐ рдЖрдк рдПрдирдПрд▓рдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рд╡реЗрдмрджреИрдирд┐рдХреА рдбрд╛рдХ (рдлреЗрд▓рд┐рдХреНрд╕ рдХреНрд▓реЙрдХреНрд╕)ред - рдХрд╛рд░реНрдЧреЛ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдзреНрд╡рдЬ рд╣реИ -рдСрдлрд╝рд▓рд╛рдЗрдиред
рд░рд╕реНрдЯ 1.36 рдиреЗ рдХрд╛рд░реНрдЧреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдзреНрд╡рдЬ рд╕реНрдерд┐рд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИред --рдСрдлрд╝рд▓рд╛рдЗрди рдзреНрд╡рдЬ рдХрд╛рд░реНрдЧреЛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреИрд╢реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдСрдлрд╝рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЬрдм рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдСрдлрд╝рд▓рд╛рдЗрди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдЧреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреВрд░реНрд╡-рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд╛рд░реНрдЧреЛ рдлрд╝реЗрдЪ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдЧрд╛ред - рдпрд╣рд╛рдВ рдЖрдк рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЕрд╡рд▓реЛрдХрди рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ:
- dbg!() рдореИрдХреНрд░реЛ рдЕрдм рдХрдИ рддрд░реНрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
- рдХрдИ рдПрдкреАрдЖрдИ рдЕрдм рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВ:
- рдирдП рдПрдкреАрдЖрдИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдерд┐рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдХрд╛рд░реНрдп::рд╡реЗрдХрд░ ╨╕ рдХрд╛рд░реНрдп::рдорддрджрд╛рди;
- VecDeque::rotate_left ╨╕ VecDeque::rotate_right;
- рдкрдврд╝реЗрдВ::read_vectored ╨╕ рд▓рд┐рдЦреЗрдВ::write_vectored;
- рдЗрдЯрд░реЗрдЯрд░::рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛;
- рдмреЙрд░реЛрдореБрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП;
- str::as_mut_ptr.
- рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдпрд╣рд╛рдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ.
рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЬрдВрдЧ, рдорд╛рд▓ рдЧрд╛реЬреА ╨╕ Clippy.
рд╕реНрд░реЛрдд: linux.org.ru