Rust היא שפת תכנות מרובת פרדיגמות, למטרות כלליות, מהידור.
הגרסה החדשה של Rust 1.78 כבר שוחררה ו תכונות חדשות מיושמות, כמו גם ייצוב של כמה ממשקי API, שיפורים ב-Cargo ועוד.
למי שלא מודע לשפת התכנות הזו, הוא צריך לדעת את זה מתמקד בבטיחות זיכרון ומספק את האמצעים להשגת מקביליות גבוהה של עבודות תוך הימנעות משימוש באספן אשפה וזמן ריצה (זמן הריצה מצטמצם לאתחול בסיסי ותחזוקה סטנדרטית של ספרייה).
תכונות חדשות עיקריות של Rust 1.78
בגרסה החדשה הזו שהוצגה על ידי Rust 1.78 הגדיל את הדרישה המינימלית שלו עבור Windows 10, חוץ מזה המהדר שונה לשימוש ב-LLVM 18. בעת שימוש ב-LLVM 18 עבור ארכיטקטורות x86-32 ו-x86-64, ה-ABI המשויך לסוגי u128 ו-i128 השתנה.
לגבי השינויים, אחד המאפיינים הבולטים הוא שחלודה תומך כעת במרחב שמות של תכונות «#[אִבחוּן]", מה מספק אמצעי להשפיע על הודעות השגיאה המופקות על ידי המהדר. מתייחסים לאלו כאל רמזים שהמהדר אינו נדרש להשתמש בהם, וגם זו אינה שגיאה לספק אבחון שהמהדר אינו מזהה. זֶה מאפשר לקוד המקור לספק אבחון גם כאשר הם אינם נתמכים על ידי כל המהדרים, בין אם גרסאות שונות או יישומים שונים לחלוטין.
בנוסף, מטמון עולמי יוצב ב-Cargo המאחסן מידע על השימוש העדכני ביותר בנתונים. מטמון זה ממוקם ב $CARGO_HOME/.global-cache ומשתמש ב-SQLite לצורך הטמעתו. זה מתעדכן אוטומטית כדי לשקף את השינויים האחרונים באינדקס, קובץ הארגז, ספריית הקוד, שיבוט git ו-git checkout, משפר את היעילות והמהירות של פעולות ניהול התלות בפרויקטי פיתוח.
תכונה חדשה נוספת של Rust 1.78 היא שיש לספרייה הסטנדרטית Rust הצהרות שונות לתנאים מוקדמים של פונקציות לא בטוחות אשר כעת ניתן לדחות עד ליצירת הקוד. זה מאפשר לבצע את הבדיקות הללו מבחינה היסטורית הם הופעלו רק ב-builds «#[cfg(debug_assertions)]» כדי להימנע מפגיעה בביצועים בגרסת ההפצה. עם השינוי הזה, משתמשים יכולים כעת לזהות התנהגות לא מוגדרת בקוד שלהם, אם כי הפרטים על כמה נבדקים אינם יציבים בדרך כלל. כדי לאפשר בדיקות, זה מספיק כעת לאפשר הצהרות ניפוי באגים עבור בדיקות או בניית באגים של הקוד.
בנוסף לזה, עכשיו התנהגות של פונקציות ספרייה סטנדרטיות שמשפיעים על יישור המצביעים והמגזרים כעת היא ניתנת לחיזוי בזמן ריצה ותלויה בנתוני הקלט. הפונקציה pointer::align_offset, שמחשב את ההיסט ליישור המצביע חוזר כעת usize::MAX רק אם הפעולה נכשלת. הפונקציות slice::align_to ו-slice::align_to_mut, אשר הופכת פרוסות לייצוג עם פרוסה אמצעית מיושרת ואת פרוסות ההתחלה והסיום המקוריות, כעת תמיד מחזירה את החלק האמצעי הגדול ביותר.
מצד שני, מוזכר ש ממשקי ה-API הבאים הועברו לקטגוריית "יציב".: impl קרא עבור &Stdin, impl From עבור io::שגיאה והיישום impl המאפשר שימוש ב ? בגודל.
של שינויים נוספים בולטים של הגרסה החדשה הזו:
- הרמה השנייה של תמיכה בפלטפורמת היעד Add wasm32-wasip1 יושמה. רמת התמיכה השנייה כרוכה בערבות הרכבה.
- שם פלטפורמת wasm32-wasi-preview1-threads שונה ל-wasm32-wasip1-threads.
- במנהל החבילות של Cargo, גרסה 4 של קבצי הנעילה (lockfile v4) התייצבה. Cargo משתמשת כעת בגרסה זו כסטנדרט כדי להבטיח עקביות וניהול יעיל של תלות בין פרויקטים.
אם כן מעוניין לדעת יותר על זה, אתה יכול לבדוק את הפרטים ב הקישור הבא.
לבסוף, למי שכן מעוניין לשדרג מגרסה קודמת של Rust מותקן באמצעות Rustup, אתה יכול לקבל את הגרסה החדשה של Rust 1.78 עם:
rustup update stable
אם עדיין לא התקנת Rust במערכת שלך, תוכל לעשות זאת על ידי הפעלת הפקודה הבאה בטרמינל:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh