{"id":35875,"date":"2019-10-31T22:07:21","date_gmt":"2019-10-31T19:07:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rust-1-36\/"},"modified":"2019-10-31T22:07:21","modified_gmt":"2019-10-31T19:07:21","slug":"rust-1-36","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/rust-1-36","title":{"rendered":"Rust 1.36","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>L'\u00e9quipe de d\u00e9veloppeurs est heureuse de vous pr\u00e9senter Rust 1.36 !<\/p>\n<p>Quoi de neuf dans Rust 1.36 ?<br \/>\n<noindex>Le trait Future a \u00e9t\u00e9 stabilis\u00e9, parmi les nouveaut\u00e9s : le crate alloc, MaybeUninit, <a rel=\"nofollow\" href=\"http:\/\/blog.pnkfx.org\/blog\/2019\/06\/26\/breaking-news-non-lexical-lifetimes-arrives-for-everyone\/\"> NLL pour Rust 2015<\/a>, nouvelle impl\u00e9mentation de HashMap&lt;K, V&gt; et nouveau drapeau &#8212;offline pour Cargo.<\/p>\n<p><\/noindex><br \/>\nMaintenant, plus de d\u00e9tails :\n<\/p>\n<ul>\n<li> Dans Rust 1.36, nous avons enfin <a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust\/pull\/59739\">stabilis\u00e9<\/a> le trait Future.\n    <\/li>\n<li>Le crate alloc.<br \/> \u00c0 partir de Rust 1.36, les parties de std qui d\u00e9pendent d'un allocateur global (par exemple, Vec) se trouvent dans le crate alloc. Maintenant, std r\u00e9exporte ces parties. <a rel=\"nofollow\" href=\"https:\/\/blog.rust-lang.org\/2019\/07\/04\/Rust-1.36.0.html#the-alloc-crate-is-stable\">Plus \u00e0 ce sujet<\/a>.\n    <\/li>\n<li>MaybeUninit au lieu de mem::uninitialized.<br \/> Dans les versions pr\u00e9c\u00e9dentes, mem::uninitialized vous permettait de contourner la v\u00e9rification d'initialisation, cela \u00e9tait utilis\u00e9 pour l'allocation paresseuse des tableaux, mais cette fonction est assez dangereuse (<a rel=\"nofollow\" href=\"https:\/\/blog.rust-lang.org\/2019\/07\/04\/Rust-1.36.0.html#maybeuninitt%3E-instead-of-mem::uninitialized\">en savoir plus<\/a>), donc le type MaybeUninit a \u00e9t\u00e9 stabilis\u00e9, qui est plus s\u00fbr. <br \/> Et puisque MaybeUninit est une alternative plus s\u00fbre, \u00e0 partir de Rust 1.38, mem::uninitialized sera obsol\u00e8te. <br \/> Si vous voulez en savoir plus sur la m\u00e9moire non initialis\u00e9e, vous pouvez lire l'article de blog (Alexis Beingessner).\n   <\/li>\n<li> NLL pour Rust 2015. <br \/> Dans l'annonce <a rel=\"nofollow\" href=\"https:\/\/blog.rust-lang.org\/2018\/12\/06\/Rust-1.31-and-rust-2018.html#non-lexical-lifetimes\">Rust 1.31.0<\/a> les d\u00e9veloppeurs nous ont parl\u00e9 de NLL (Non-Lexical Lifetime), une am\u00e9lioration du langage qui rend le v\u00e9rificateur d'emprunt plus intelligent et plus convivial. Exemple :<br \/>\nfn main() {<br \/>\n    let mut x = 5;<br \/>\n    let y = &amp;x;<br \/>\n    let z = &amp;mut x; \/\/ Cela n'\u00e9tait pas permis avant 1.31.0.<br \/>\n}<\/p>\n<p>Dans 1.31.0, NLL ne fonctionnait que dans Rust 2018, avec la promesse que les d\u00e9veloppeurs ajouteraient \u00e9galement le support pour Rust 2015. <br \/> Si vous voulez en savoir plus sur NLL, vous pouvez lire davantage dans cet <a rel=\"nofollow\" href=\"http:\/\/blog.pnkfx.org\/blog\/2019\/06\/26\/breaking-news-non-lexical-lifetimes-arrives-for-everyone\/\"> article de blog<\/a> (Felix Klocks).\n    <\/li>\n<li>Nouveau drapeau pour Cargo &#8212; &#8212;offline.<br \/>Dans Rust 1.36, le nouveau drapeau pour Cargo a \u00e9t\u00e9 stabilis\u00e9. Le drapeau &#8212;offline indique \u00e0 Cargo d'utiliser les d\u00e9pendances mises en cache localement, afin qu'elles puissent \u00eatre utilis\u00e9es sans connexion Internet par la suite. Lorsque les d\u00e9pendances n\u00e9cessaires ne sont pas disponibles hors ligne et que l'Internet est n\u00e9cessaire, Cargo renverra une erreur. Pour t\u00e9l\u00e9charger les d\u00e9pendances \u00e0 l'avance, vous pouvez utiliser la commande cargo fetch, qui t\u00e9l\u00e9chargera toutes les d\u00e9pendances.\n    <\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/cargo\/blob\/master\/CHANGELOG.md#cargo-136-2019-07-04\">Ici<\/a> vous pouvez lire un aper\u00e7u plus d\u00e9taill\u00e9 des changements.\n<\/li>\n<\/ul>\n<p>\nIl y a \u00e9galement des changements dans la biblioth\u00e8que standard :\n<\/p>\n<ul>\n<li> Le macro dbg!() peut maintenant accepter plusieurs arguments.\n    <\/li>\n<li> Un certain nombre d'API sont d\u00e9sormais marqu\u00e9es comme const :\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/core\/alloc\/struct.Layout.html#method.from_size_align_unchecked\">Layout::from_size_align_unchecked<\/a>;\n        <\/li>\n<li> <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/mem\/fn.needs_drop.html\">mem::needs_drop<\/a>;\n        <\/li>\n<li> <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/ptr\/struct.NonNull.html#method.dangling\">NonNull::dangling<\/a>;\n        <\/li>\n<li> <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/ptr\/struct.NonNull.html#method.cast\">NonNull::cast<\/a>.\n        <\/li>\n<\/ul>\n<\/li>\n<li>Nouveaux API qui ont \u00e9t\u00e9 stabilis\u00e9s :\n<ul>\n<li> <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/task\/struct.Waker.html\">task::Waker<\/a> et <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/task\/enum.Poll.html\">task::Poll<\/a>;\n        <\/li>\n<li> <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/collections\/struct.VecDeque.html#method.rotate_left\"> VecDeque::rotate_left<\/a> et <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/collections\/struct.VecDeque.html#method.rotate_right\">VecDeque::rotate_right<\/a>;\n       <\/li>\n<li> <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/io\/trait.Read.html#method.read_vectored\">Read::read_vectored<\/a> et <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/io\/trait.Write.html#method.write_vectored\">Write::write_vectored<\/a>;\n       <\/li>\n<li> <a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/iter\/trait.Iterator.html#method.copied\">Iterator::copied<\/a>;\n       <\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust\/pull\/60404\">BorrowMut pour String<\/a>;\n       <\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/doc.rust-lang.org\/std\/primitive.str.html#method.as_mut_ptr\">str::as_mut_ptr<\/a>.\n       <\/li>\n<\/ul>\n<\/li>\n<li> D'autres modifications de la biblioth\u00e8que standard peuvent \u00eatre trouv\u00e9es <a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust\/blob\/master\/RELEASES.md#version-1360-2019-07-04\">ici<\/a>.\n<\/li>\n<\/ul>\n<p>\nAutres changements <a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust\/blob\/master\/RELEASES.md#version-1360-2019-07-04\">Rust<\/a>, <a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/cargo\/blob\/master\/CHANGELOG.md#cargo-136-2019-07-04\">Cargo<\/a> et <a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust-clippy\/blob\/master\/CHANGELOG.md#rust-136\">Clippy<\/a>.\n<\/p>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"http:\/\/www.linux.org.ru\/news\/development\/15090750\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0430\u043c Rust 1.36! \u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 Rust 1.36? \u0421\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0442\u0440\u0435\u0439\u0442 Future, \u0438\u0437 \u043d\u043e\u0432\u043e\u0433\u043e: \u043a\u0440\u0435\u0439\u0442 alloc, MaybeUninit&lt;T&gt;, NLL \u0434\u043b\u044f Rust 2015, \u043d\u043e\u0432\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f HashMap&lt;K, V&gt; \u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043b\u0430\u0433 &#8212;offline \u0434\u043b\u044f Cargo. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435: \u0412 Rust 1.36 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0440\u0435\u0439\u0442 Future. \u041a\u0440\u0435\u0439\u0442 alloc. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Rust 1.36, \u0447\u0430\u0441\u0442\u0438 std, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35875","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0430\u043c Rust 1.36!\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 Rust 1.36?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/rust-1-36\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Rust 1.36 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0430\u043c Rust 1.36!\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 Rust 1.36?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/rust-1-36\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:07:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:07:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Rust 1.36 | ProHoster","description":"L'\u00e9quipe de d\u00e9veloppement est heureuse de vous pr\u00e9senter Rust 1.36 ! Quelles sont les nouveaut\u00e9s de Rust 1.36 ?","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/rust-1-36","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Rust 1.36 | ProHoster","og:description":"\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0430\u043c Rust 1.36!\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 Rust 1.36?","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/rust-1-36","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:07:21+00:00","article:modified_time":"2019-10-31T19:07:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35875","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 01:07:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:44:26","updated":"2026-01-22 01:07:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=35875"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35875\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=35875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=35875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=35875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}