چه چیزهایی در زبان برنامه نویسی Rust وجود دارد

[ad_1]

رویکرد منحصر به فرد زبان برنامه نویسی Rust منجر به کد بهتر با مبادله کمتر از C ، C ++ ، Go و سایر زبانهایی می شود که احتمالاً استفاده خواهید کرد. همچنین به طور منظم ، اغلب هر ماه به روز می شود.

آخرین نسخه Rust را از کجا بارگیری کنید

اگر نسخه قبلی Rust را از طریق آن نصب کرده اید rustup، با دستور زیر می توانید به آخرین نسخه دسترسی پیدا کنید:

$ rustup update stable

ویژگی های جدید در Rust 1.49.0

Rust 1.49.0 که در تاریخ 31 دسامبر سال 2020 اعلام شد ، 64 بیتی Arm Linux را به عنوان یک هدف مرتبه اول تعریف می کند ، بنابراین بالاترین تضمین پشتیبانی را با ارائه بسته آزمایشی کامل در این سیستم عامل با هر ترکیب ، ارائه می دهد. در کامپایلر انتظار می رود که این پشتیبانی از بارهای کاری سیستم های جاسازی شده در سرورها و دسک تاپ ها بهره ببرد. باینری های از قبل ساخته شده نیز موجود است. این اولین باری است که هدفی غیر از x86 به پشتیبانی سطح 1 رسیده است. تیم توسعه Rust امیدوار است که در آینده سیستم عامل های بیشتری را در این لایه معرفی کند.

همچنین با Rust 1.49.0 ، بازوی 64 بیتی برای MacOS و ویندوز به پشتیبانی Tier 2. رسیده است. توسعه دهندگان می توانند انتظار داشته باشند که این دو هدف باینری از قبل ساخته شده را نصب کنند rustup. هدف گذاری سطح 2 تضمین شده و باینری های از قبل ساخته شده ارائه می شود. با این حال ، تیم Rust بسته آزمایشی را در این سیستم عامل ها انجام نمی دهد. باینری های تولید شده ممکن است کار نکنند و خطاهایی داشته باشند.

سایر اضافات ، بهبودها و تغییرات در Rust 1.49.0:

  • سه عملکرد پایدار به کتابخانه اضافه شده است: slice::select_nth_unstable، slice::select_nth_unstable_by، و slice::select_nth_unstable_by_key.
  • دو عملکرد کتابخانه ایجاد شده است const: Poll::is_ready و Poll::is_pending.
  • برای زبان ، اتحادیه ها اکنون می توانند درخواست دهند Drop و توسعه دهندگان اکنون می توانند در اتحاد با آنها زمینه داشته باشند ManuallyDrop. همچنین ، شمارشهای غیرمجاز می تواند به اعداد صحیح منتقل شود.
  • توسعه دهندگان را می توان با مرجع مرتبط کرد و با انتقال به مدل ها ، که به توسعه دهندگان اجازه می دهد به صورت انتخابی از اجزای جداگانه یک نوع داده شده ، وام بگیرند.
  • برای کامپایلر ، حداقل نسخه پشتیبانی شده LLVM به LLVM 9 منتقل شده است.

ویژگی های جدید در Rust 1.48.0

Rust 1.48.0 که در 19 نوامبر سال 2020 معرفی شد ، ارتباط ساده تری در ابزار مستند سازی کتابخانه Rustdoc دارد ، با نحو برای اطلاع Rustdoc در هنگام تلاش توسعه دهندگان برای اتصال به یک نوع. URL ها تولید می شوند. همچنین در نسخه 1.48.0:

  • توسعه دهندگان می توانند اشاره کنند #{doc(alias = “”) ] در عناصر اضافه کردن نام مستعار جستجو هنگام جستجو در رابط کاربری Rustdoc.
  • unsafe کلمه کلیدی اکنون به صورت نحوی برای ماژولها مجاز است. اگرچه هنوز از نظر معنایی رد می شود ، اکنون می توان با ماکرو رویه ای آن را تحلیل کرد.
  • در کامپایلر ، -C link-self-contained= پرچم کامپایلر تثبیت می شود. این چیزی است که او می گوید rustc آیا پیاده سازی و کتابخانه های C خود را بهم پیوند دهید یا برای یافتن آنها به یک لینک دهنده خارجی اعتماد کنید. این فقط در پشتیبانی می شود windows-gnu، linux-musl، و wasi بستر، زمینه.
  • در کتابخانه، [T; N]: TryFrom> اکنون API پایدار است. توسعه دهندگان می توانند با استفاده از آن سعی کنند بردار را به آرایه ای با طول مشخص تبدیل کنند. پنج API دیگر نیز در این نسخه تثبیت شده اند: slice::as_ptr_range، slice::as_mut_ptr_range، VecDeque::make_contiguous، future::pending، و future::ready.
  • همچنین ، همه آرایه ها با هر طولی اکنون در کتابخانه اجرا می شوند TryFrom>.

ویژگی های جدید در Rust 1.47.0

Rust 1.47.0 در 8 اکتبر 2020 اعلام شد ، هیچ ویژگی زبان جدیدی ندارد ، اما کتابخانه استاندارد را بهبود می بخشد. کیفیت زندگی و بهبود ابزارها و همچنین تثبیت کتابخانه ها در نشریه ارائه شده است. یادداشت های منتشر شده برای ارتقا منتشر می شوند.

ویژگی های خاص Rust 1.47.0 عبارتند از:

  • عملکرد ژنریک ساختی که بر ویژگی های آرایه های بزرگتر تأثیر می گذارد. عملکرد هنوز باید تثبیت شود. زنگ فاقد روشی برای مشترک در مقادیر عدد صحیح است که باعث مشکلاتی در آرایه ها شده است. این ویژگی برای حل این مشکل و مفیدتر کردن آرایه ها طراحی شده است.
  • زیرساخت کامپایلر LLVM 11 را ارتقا دهید و آن را به صورت پیش فرض قرار دهید.
  • آهنگ های کوتاه تر ، که پیدا کردن مشکلات را آسان تر می کند.
  • rustc اکنون پشتیبانی می کند -C control-flow-guard، گزینه ای که شامل خواهد شد کنترل محافظت در برابر جریان قابلیت امنیتی ویندوز. سیستم عامل های دیگر این پرچم را نادیده می گیرند.
  • Rustdoc در حال حاضر پشتیبانی می کند تم آیو.
  • نه API در کتابخانه استاندارد تثبیت شده اند: شناسایی :: new_raw، محدوده :: خالی است، RangeInclusive :: خالی است، نتیجه :: as_deref، نتیجه :: as_deref_mut، Vec :: فناوری، نشانگر :: جبران_از، f32 :: TAU، و f64 :: TAU.

ویژگی های جدید در 1.46.0

Rust 1.46 ، اعلام شده در 27 آگوست سال 2020 ، شامل گزینه های زیر است:

  • چندین ویژگی اساسی زبان اکنون می تواند در استفاده شود const fn، شامل if، if let، matchو چندین نفر دیگر
  • آ #[track_caller] ویژگی طراحی شده برای بهبود پیام های خطا در هنگام unwrap و ویژگی های هراس مرتبط اکنون پایدار است.
  • در تغییر کتابخانه ، std::mem::forget اکنون یک است const fn. همچنین دو API جدید در کتابخانه تثبیت شده اند: Option::zip و vec::Drain::as_slice.
  • برای کامپایلر ، citylib هدف را می توان در سیستم عامل های iOS Apple و tvOS استفاده کرد.
  • نمایه سازی بازگشتی در تاپل دیگر به پرانتز نیاز ندارد.

ویژگی های جدید در زنگ 1.45.0

Rust 1.45 که در 16 ژوئیه سال 2020 اعلام شد ، شامل موارد زیر است:

  • برای اصلاح ورشکستگی طولانی مدت هنگام جابجایی بین عدد صحیح و شناور ، تعدیل ارائه شده است.
  • تثبیت برای ماکروهای رویه ای عملکرد مانند در عبارات ، مدل ها و عبارات پیشنهاد شده است. گسترش استفاده از ماکرو به استفاده از چارچوب وب Rocket برای Rust کمک می کند.
  • چندین API کتابخانه تثبیت شده است ، مانند Arc::as_ptr، BTreeMap::remove_entry، و Span::resolved_at. لیست کامل API ها را می توانید در اینجا مشاهده کنید وبلاگ زنگ زده.

ویژگی های جدید در Rust 1.43.1

این نسخه در 7 مه 2020 برای رفع دو رگرسیون معرفی شده در نسخه پایدار 1.43.0 معرفی شد. همچنین نسخه OpenSSL مورد استفاده توسط مدیر بسته Cargo را به روز می کند. ویژگی ها عبارتند از:

  • Rust 1.27 پشتیبانی را برای شناسایی عملکردهای پردازنده x86 در کتابخانه استاندارد از طریق ارائه می دهد is_x86_feature_detected کلان Rust 1.43.0 به دلیل بازسازی مجدد داخلی ، از شناسایی ویژگی هایی که هنوز نمی توان در ویژگی های پایدار استفاده کرد ، جلوگیری کرد ، اگرچه تشخیص آنها قبلاً مجاز بود. نسخه 1.43.1 این رگرسیون را برطرف می کند.
  • تعمیر خراب ارائه می شود cargo package –list تیم Rust 1.43 هنگام اجرای کار در یک فضای کاری با وابستگی به مسیر یا نسخه های منتشر نشده ، پشتیبانی از لیست پرونده های موجود در بسته های منتشر شده با Cargo را متوقف کرد.
  • OpenSSL ، وابستگی به بار ، به 1.1.1 گرم به روز شده است. OpenSSL منتشر شد هیئت امنیتی اما تیم Rust نتوانست اصلاح را به موقع Rust 1.43.0 روشن کند. این تیم هیچ مدرکی مبنی بر اینکه این آسیب پذیری می تواند امنیت کاربران بار را به خطر بیندازد.

ویژگی های جدید در Rust 1.43.0

Rust 1.43.0 که در 23 آوریل 2020 اعلام شد ، یک نسخه نسبتاً جزئی و بدون هیچ گونه ویژگی اساسی معرفی شده است. این تغییرات شامل موارد زیر است:

  • توسعه دهندگان می توانند استفاده کنند item قطعاتی برای تفسیر عناصر در بدن trait، impl، و extern بلوک
  • استنباط نوع پیرامون اولیه ، منابع و عملیات دودویی بهبود یافته است.
  • برای کمک به آزمایش ادغام ، Cargo موارد جدیدی را تنظیم می کند متغیرهای محیطی برای آزمایش برای یافتن پرونده های اجرایی
  • در کتابخانه Rust ، توسعه دهندگان می توانند استفاده کنند ثابت های مرتبط شناورها و اعداد صحیح مستقیماً بدون نیاز به وارد کردن ماژول. همچنین یک مورد جدید نیز وجود دارد primitive ماژولی که انواع اولیه Rust را صادر مجدد می کند ، که برای نوشتن ماکرو مفید است و توسعه دهندگان می خواهند اطمینان حاصل کنند که انواع در سایه نیستند.
  • چندین API در کتابخانه تثبیت شده است: Once::is_completed، f32::LOG10_2، f32::LOG2_10، f32::LOG10_2، f64::LOG10_2، f64::LOG2_10، و iter::once_with.

ویژگی های جدید در Rust 1.41

ویژگی های جدید در زنگ 1.38

Rust 1.38 ، که در سپتامبر 2019 منتشر شد ، شامل ویژگی های جدید و بهبودهای زیر است:

  • مدیر بسته بار به طور خودکار از ساخت خط لوله به طور خودکار با Rust 1.38 بهره مند می شود. با تدوین خط لوله ، کامپایلر هنگام تهیه جعبه به وابستگی های کاملاً داخلی احتیاج ندارد. تنها آنچه که لازم است فراداده آنهاست ، مانند لیستی از انواع وابستگی. فراداده در ابتدای فرآیند تدوین ایجاد می شود. برخی آزمایشات نشان می دهد که سرعت تدوین برای جمع آوری بهینه و تمیز برخی از نمودارهای جعبه 10 تا 20 درصد افزایش می یابد.
  • اتصال برخی از کاربردهای نادرست از mem::{unitialized, zeroed}. با این نسخه ، کامپایلر rustc خزه ای را برای یک کلاس باریک از مقداردهی اولیه نادرست با استفاده از فراهم می کند mem::uninitialized or mem::zeroed.
  • پسوند #[deprecated] ویژگی کلان این ویژگی به نویسندگان جعبه اجازه می دهد تا به کاربران اطلاع دهند که مورد موجود در جعبه آنها باید قدیمی باشد و در نسخه بعدی حذف شود.
  • توسعه دهندگان می توانند استفاده کنند std::any::type_name برای گرفتن نام نوع
  • تثبیت تعدادی از توابع ، از جمله <*const T>::cast و <*mutT>::cast.

ویژگی های جدید در Rust 1.37

Rust 1.37 ، که در آگوست 2019 منتشر شد ، دارای ویژگی های جدید و بهبودهای زیر است:

  • قابلیت ارجاع enum گزینه ها از طریق type. توسعه دهندگان همچنین می توانند مراجعه کنند enum گزینه های با Self::Variant.
  • cargo vendor یک دستور ، که قبلا جعبه جداگانه ای بود ، اکنون در زبان تعبیه شده است. این دستور وابستگی های پروژه را بازیابی کرده و آنها را در داخل فروشنده باز می کند/ پوشه و قطعه پیکربندی مورد نیاز برای استفاده از کدی که در حین تدوین فروخته شده است را نشان می دهد.
  • rustc کامپایلر پشتیبانی از بهینه سازی مشخصات بهینه شده ، روش بهینه سازی برای کامپایلرها قبل از زمان ، توسط -C profile-generate و -C profile-use.
  • توسعه دهندگان می توانند بدون نام ایجاد کنند const عناصر.

ویژگی های جدید در Rust 1.36

نسخه 1.36 زبان برنامه نویسی Rust در ژوئیه 2019 منتشر شد. Rust 1.36 شامل ویژگی های جدید و پیشرفت های زیر است:

[ad_2]