גרסה 1.46 של שפת התכנות של המערכת , שהוקמה על ידי פרויקט מוזילה. השפה מתמקדת בבטיחות זיכרון, מספקת ניהול זיכרון אוטומטי ומספקת כלים להשגת מקביליות גבוהה של משימות ללא שימוש באוסף אשפה .
ניהול הזיכרון האוטומטי של Rust מבטל שגיאות בעת מניפולציה של מצביעים ומגן מפני בעיות הנובעות ממניפולציה של זיכרון ברמה נמוכה, כגון גישה לאזור זיכרון לאחר שחרורו, הפניית מצביע אפסית, חריגות מאגר וכו'. מנהל חבילות מפותח להפצת ספריות, הבטחת הרכבה וניהול תלות על ידי הפרויקט. , המאפשר לך לקבל את הספריות הדרושות לתוכנית בלחיצה אחת. מאגר נתמך כדי לארח ספריות .
העיקרי :
- היכולות של פונקציות שהוגדרו באמצעות הביטוי "const fn" הורחבו, שניתן לקרוא להן לא רק כפונקציות רגילות, אלא גם להשתמש בהן בכל הקשר במקום קבועים. פונקציות אלו מחושבות בזמן קומפילציה, לא בזמן ריצה, ולכן הן כפופות להגבלות מסוימות, כמו היכולת לקרוא רק מקבועים.
המהדורה החדשה מסירה את האיסור על שימוש באופרטורים בוליאניים ("&&" ו-"||") בפונקציות כאלה, ומאפשרת שימוש במבני "אם", "אם אפשר", "התאמה",
"while", "while let" ו-"לולאה", וגם מספק את היכולת להמיר לפרוסות (פרוסות, מערכים דינמיים) באמצעות הביטוי "&[T]". השימוש בתכונות אלה בפונקציות "const fn" מאפשר לך להעביר כמה פעולות עתירות משאבים לשלב הקומפילציה. לדוגמה, היישום של "const-sha1" מאפשר לחשב גיבובים של SHA-1 בזמן הקומפילציה, מה שמוביל להאצת קישורי WinRT עבור Rust בכמעט פי 40. - כדי להפוך את הודעות השגיאה לאינפורמטיביות יותר, התמיכה בתכונת "#[track_caller]" התייצבה, וזה שימושי עבור פונקציות כמו ביטול גלישה, שעלול לגרום לפאניקה אם נעשה שימוש לא נכון בסוגים. התכונה שצוינה תשמש את מטפל הפאניקה כדי להדפיס את מיקום המתקשר בהודעת שגיאה.
- התכונה "const", הקובעת את האפשרות להשתמש בה בכל הקשר במקום בקבועים, משמשת בשיטת std::mem::forget.
- חלק חדש של ה-API הועבר לקטגוריה היציבה, כולל ה-Option::zip ו-vec::Drain::as_slice המיוצב.
- במנהל החבילות Cargo תמיכה במשתני סביבה חדשים שנקבעו בעת קומפילציה של חבילה: CARGO_BIN_NAME (שם קובץ ההפעלה המתקבל), CARGO_CRATE_NAME (שם חבילה), CARGO_PKG_LICENSE (רישיון המצוין במניפסט), CARGO_PKG_LICENSE_FILE (נתיב לקובץ הרישיון).
מקור: OpenNet.ru
