מה חדש ב- Rust 1.48

הגישה הייחודית של שפת התכנות Rust מביאה לקוד טוב יותר עם פחות פשרות מ- C, C ++, Go ושאר השפות בהן אתם כנראה משתמשים. זה גם מתעדכן באופן קבוע, לעתים קרובות מדי חודש.

היכן ניתן להוריד את גרסת החלודה האחרונה

אם כבר מותקנת באמצעות גרסה קודמת של Rust rustup, תוכל לגשת לגרסה האחרונה באמצעות הפקודה הבאה:

$ rustup עדכון יציב

סרטון קשור: פיתוח תוכנה בטוחה יותר עם Rust

התעדכן במהירות במצטרף החדש Rust, שנועד ליצור תוכנה מהירה וברמת המערכת. מסביר אנימציה זה בן שתי דקות מראה כיצד חלודה עוקפת את סוגיות התכנות המטרידות של זיכרון וניהול.

התכונות החדשות ב- Rust 1.48.0

נחשף ב- 19 בנובמבר 2020, Rust 1.48.0 כולל קישור קל יותר בכלי התיעוד של ספריית Rustdoc, עם תחביר שיאפשר ל- Rustdoc לדעת מתי מפתחים מנסים לקשר לסוג; ייווצרו כתובות אתרים. גם בגרסה 1.48.0:

  • מפתחים יכולים לציין #{doc(alias = “”) ]בפריטים להוסיף כינויים לחיפוש בעת חיפוש דרך ממשק המשתמש Rustdoc.
  • unsafeמילת המפתח עכשיו מותר מבחינה תחבירית על מודולים. אמנם עדיין נדחה מבחינה סמנטית, אך כעת ניתן לנתח זאת באמצעות פקודות מאקרו.
  • במהדר, -C link-self-contained=דגל המהדר מיוצב. זה אומר rustcאם לקשר בין זמן ריצה C לבין ספריות משלו או להסתמך על מקשר חיצוני שימצא אותם. זו נתמכת רק על windows-gnu, linux-musl, ו wasiפלטפורמות.
  • בספריה, ה- API יציב כעת. מפתחים יכולים להשתמש בו כדי לנסות להפוך וקטור למערך באורך נתון. כמו כן התייצבו במהדורה זו היו חמישה APIs אחרים: , , , , ו .[T; N]: TryFrom slice::as_ptr_rangeslice::as_mut_ptr_rangeVecDeque::make_contiguousfuture::pendingfuture::ready
  • גם בספרייה, כל המערכים בכל אורך מיושמים כעת .TryFrom

התכונות החדשות ב- Rust 1.47.0

הוכרז ב- 8 באוקטובר 2020, ל- Rust 1.47.0 אין תכונות שפה חדשות אך הוא משפר את הספרייה הסטנדרטית. איכות החיים ושיפור שרשרת הכלים וכן ייצוב הספרייה מוצגים במהדורה. הערות שחרור פורסמו לשדרוג.

יכולות ספציפיות ב- Rust 1.47.0 כוללות:

  • תכונה של "const generics", שמשפיעה על תכונות במערכים גדולים יותר. עדיין צריך לייצב את התכונה. לחלודה חסרה דרך להיות גנרית על פני ערכים שלמים, מה שגרם לבעיות במערכים. יכולת זו נועדה לטפל בבעיה זו ולהפוך מערכים למועילים יותר.
  • שדרוג לתשתית מהדר LLVM 11, מה שהופך אותה לברירת המחדל.
  • מעקב אחורי קצר יותר, מה שמקל על מציאת נושאים.
  • rustcתומך כעת -C control-flow-guard, אפשרות שתפעיל את יכולת האבטחה של Control Flow Guard ב- Windows. פלטפורמות אחרות מתעלמות מהדגל הזה.
  • Rustdoc תומך כעת בנושא האיו.
  • תשעה ממשקי API בספרייה הסטנדרטית התייצבו: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Result :: as_deref, Result :: as_deref_mut, Vec :: leak, pointer :: offset_from, f32 :: TAU, and f64 :: TAU. 

התכונות החדשות ב- 1.46.0

Rust 1.46, שהוכרז ב- 27 באוגוסט 2020, כולל את היכולות הבאות:

  • מאפייני שפת ליבה כמה כעת ניתן להשתמש const fn, כולל if, if letmatch, ועוד כמה.
  • #[track_caller]תכונה, שנועדה לשפר הודעות שגיאה כאשר unwrapופונקציות נלוות לפאניקה, היא עכשיו יציבה.
  • בשינוי לספרייה, std::mem::forgetהוא כעת א const fn. גם בספריה התייצבו שני ממשקי API חדשים: Option::zipו- vec::Drain::as_slice.
  • עבור המהדר, citylibניתן להשתמש ביעד בפלטפורמות iOS ו- tvOS של Apple.
  • אינדקס רקורסיבי לטסיות כבר לא דורש סוגריים.

התכונות החדשות ב- Rust 1.45.0

הוכרז ב- 16 ביולי 2020, Rust 1.45 כולל את התוספות והשיפורים הבאים:

  • מוצע תיקון לתיקון חוסר נשמה ארוך שנים בעת יציקה בין מספרים שלמים לצופים.
  • ייצוב מוצע למקרו פרוצדורלי דמוי פונקציה בביטויים, דפוסים והצהרות. הרחבת השימוש במקרו מסייעת לשימוש במסגרת Rocket web עבור Rust.
  • APIs הספרייה כמה כבר התייצב, כגון Arc::as_ptr, BTreeMap::remove_entry, ו Span::resolved_at. את הרשימה המלאה של ממשקי ה- API תוכלו למצוא בבלוג Rust.

התכונות החדשות ב- Rust 1.43.1

מהדורה נקודתית זו הוצגה ב- 7 במאי 2020, כדי לתת מענה לשתי רגרסיות שהוכנסו במהדורה היציבה 1.43.0. הוא גם מעדכן את גרסת OpenSSL המשמשת את מנהל חבילות המטען. התכונות כוללות:

  • 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

פורסם ב- 23 באפריל 2020, Rust 1.43.0 נחשב למהדורה מינורית למדי, ללא תכונות עיקריות שהוצגו. השינויים כוללים:

  • מפתחים יכולים להשתמש itemשברים לפריטים לשרבב לתוך הגוף של trait, impl, ו externבלוקים.
  • שופר הסקת הסוג סביב פרימיטיבים, הפניות ופעולות בינאריות.
  • כדי לסייע בבדיקות האינטגרציה, Cargo תגדיר משתני סביבה חדשים לבדיקות למציאת הפעלות.
  • בספריית החלודה, מפתחים יכולים להשתמש בקבועים המשויכים לצפים ומספרים שלמים ישירות מבלי שיהיה עליהם לייבא את המודול. כמו כן, קיים primitiveמודול חדש המייצא מחדש סוגים פרימיטיביים של חלודה, דבר שימושי בעת כתיבת מאקרו ומפתחים רוצים להבטיח שהסוגים אינם מוצלים.
  • מספר ממשקי 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

התכונות החדשות ב- Rust 1.38

Rust 1.38, שפורסם בספטמבר 2019, מכיל את התכונות והשיפורים החדשים הבאים:

  • מנהל חבילות המטען ינצל אוטומטית אוסף צנרת באמצעות Rust 1.38. עם אוסף צינור, המהדר אינו זקוק לתלות שנבנו במלואו בעת הידור ארגז. כל מה שנדרש הוא המטא נתונים שלהם, כמו רשימת סוגי התלות. מטא נתונים מיוצרים בשלב מוקדם בתהליך האוסף. כמה בדיקות הראו עליות מהירות אוסף של 10 עד 20 אחוזים לבניית אופטימיזציה ונקייה של כמה גרפי ארגזים. 
  • Linting of some incorrect uses of mem::{unitialized, zeroed}. With this release, the rustc compiler will provide a lint for a narrow class of incorrect initializations using mem::uninitialized or mem::zeroed.
  • Extension of the #[deprecated] attribute to macros. This attribute has allowed crate authors to notify users that an item of their crate is to be deprecated and removed in a future release.
  • Developers can use std::any::type_name to get the name of a type.
  • Stabilization of a number of functions including ::cast and ::cast.

The new features in Rust 1.37

Rust 1.37, released in August 2019, has the following new features and improvements:

  • An ability to refer to enum variants through type. Developers also can refer to enum variants with Self::Variant.
  • The cargo vendor command, previously a separate crate, is now built in to the language. The command fetches project dependencies, unpacks them into the vendordirectory, and displays the configuration snippet needed to use the vendored code during builds.
  • The rustc compiler supports profile-guided optimization, an optimizing technique for ahead-of-time compilers, via -C profile-generate and -C profile-use.
  • Developers can create unnamed const items.

The new features in Rust 1.36

Version 1.36 of the Rust systems programming language was released in July 2019. Rust 1.36 includes the following new features and enhancements:

  • The Future trait, used for declaring asynchronous work, is now stable. Asynchronous operations in Rust have been coming together in bits and pieces for several versions now, with async and await being the last important remaining pieces.
  • The alloc crate, used for managing memory, is now stable. This crate collects all of the pieces of Rust’s standard library that depend on a global memory allocation mechanism, such as Vec. This way, crates that don’t use the standard library can still make use of the allocator by importing alloc separately—useful for environments where you want code sizes to be as lean as possible.
  • A new type, MaybeUninit, allows you to define objects that may consist of uninitialized memory, such as a lazily allocated array. Rust’s previous mechanism for doing this was a function, mem::uninitialized, that posed many hazards in casual use. MaybeUninit provides a safer way to do this that uses the constraints of Rust’s type system.
  • Non-lexical lifetimes, a feature for recent editions of Rust, has been backported to earlier editions. Non-lexical lifetimes make Rust’s borrow-checking mechanism less difficult to work with (in essence, letting you write a broader range of programs that are still valid Rust), and better able to catch problems that the borrow checker missed.

Other improvements:

  • A new implementation for the HashMap type that runs faster and uses less memory.
  • Cargo can now run entirely offline if needed.

התכונות החדשות ב- Rust 1.35

גרסה 1.35, שפורסמה במאי 2019, מציעה את הדברים הבאים: