gccrs הוא יישום חלופי מלא של שפת Rust על פני GCC
לאחרונה הוכרז כי פרויקט "gccrs" , שמטרתו לספק ממשק עבור שפת Rust ל-GCC (GNU Compiler Collection), נמצא בדרך להשתלב ב-GCC 13. בכנס המפתחים של FOSDEM מוקדם יותר החודש, המהנדס ארתור כהן הציג מצגת על gccrs, בה תיאר את מצב העבודה הנוכחי.
למי שלא מכיר את פרויקט gccrs, זהו יישום חלופי מלא של שפת Rust על גבי GCC, במטרה להשתלב באופן מלא בשרשרת הכלים של GNU.
מקור הפרויקט הזה הוא מאמץ קהילתי לפני מספר שנים, כאשר Rust עדיין היה בגרסה 0.9; השפה שיצרה מוזילה הייתה נתונה לכל כך הרבה שינויים עד שקשה היה למאמץ קהילתי להדביק את הפער.
עכשיו כשהשפה יציבה, הגיע הזמן ליצור מהדרים חלופיים:
"החל ב-2014 (והושק מחדש ב-2019), המאמץ נמשך מאז 2020 ועשינו הרבה מאמץ והתקדמות רבה. העלינו את הגרסה הראשונה של gccrs בתוך GCC. אז בפעם הבאה שתתקין את GCC 13, יהיו לו gccrs בפנים.
אתה יכול להשתמש בו ואתה יכול להתחיל לפרוץ אותו, אתה יכול לדווח על הבעיות כאשר הוא קורס ומת בצורה נוראית. דבר אחד גדול שאנחנו עושים הוא לעבוד על כך שחבילת הבדיקה rustc תעבוד", אמר ארתור כהן במהלך המצגת שלו בכנס FOSDEM בתחילת החודש.
היכולת להריץ בהצלחה את חבילת הבדיקות של המהדר rustc נותרה גם היא מטרה. לדברי כהן, ממשק ה-GCC של Rust מכוון גם לגרסה 1.49 הישנה יותר של libcore של Rust.
שאלות נפוצות של פרויקט gccrs מציינות שכל טכנולוגיות הבנייה של LLVM, בהן משתמשת Rust, "חסרות כמה מערכות תמיכה תואמות GCC, כך שמימוש gccrs יכול למלא את הפערים לשימוש בפיתוח משולב ."
שים לב, עם זאת, מהדר Rust-GCC (gccrs) עדיין בשלב מוקדם מאוד ועדיין לא ניתן להשתמש בו כדי להדר תוכניות Rust בפועל.
צוות GCC הצביע ביולי האחרון לאשר את שילוב gccrs כחבילת בנייה. חשיבותו של פרויקט זה טמונה במשמעותו עבור ליבת לינוקס. למעשה, ליבת לינוקס בנויה בדרך כלל עם GCC, אך תוכניות לאפשר שימוש בשפת Rust לצד C עבור קוד ליבה, מסיבות של בטיחות זיכרון, מתקדמות בהתמדה.
פרויקט "Rust for Linux" התמזג רשמית לתוך עץ Linux 6.1 Git הראשי באוקטובר האחרון, והפך את Rust לשפה השנייה המוקדשת לפיתוח לינוקס, לאחר 31 שנים של פיתוח בלעדי מבוסס C.
"אנחנו רוצים ש-gccrs יהיה מהדר Rust אמיתי ולא פרויקט צעצוע או משהו שמרכיב שפה שנראית כמו Rust אבל היא לא Rust; אנחנו באמת מנסים לגרום לחבילת הבדיקה הזו לעבוד", הוסיף. במהלך המצגת אמר כהן כי בעוד שממשק Rust של GCC 13 מתחיל טוב, יש עוד הרבה עבודה לעשות. קוד אימות שאול נעדר באופן בולט כרגע, התמיכה במודולים מובנים ומקוריים עדיין נמשכת, ואבן הדרך החשובה של הידור קוד Rust עבור לינוקס טרם הושגה.
כתזכורת, פרויקט Rust for Linux שואף להכניס שפת תכנות חדשה לליבת לינוקס. לדברי מומחים, ל-Rust יש תכונה מרכזית שהופכת אותה למעניינת מאוד לשקול כשפה שנייה לליבת לינוקס: היא מבטיחה שלא תתרחש התנהגות לא מוגדרת (בתנאי שהקוד הלא בטוח הוא שפוי).
זה כולל היעדר שגיאות כמו שימוש לאחר-חופשי, שחרורים כפולים, מירוצי נתונים וכו'. ויכוחים קשורים סובבים סביב האפשרות לבטל את C לטובת שפת החלודה. אבל לינוס טורוואלדס, היוצר של לינוקס, אמר שזו לא המטרה המוצהרת של פרויקט Rust for Linux.
לבסוף, ראוי לציין שלמרות שממשק gccrs מוזג לקראת גרסה 13 הקרובה של GCC, הוא עדיין לא במצב שבו רוב מפתחי Rust יכולים להשתמש בו כחלופה למהדר הרשמי של LLVM של Rust.
זה לא אמור להיות עד שנה הבאה, לפחות עם GCC 14 לפחות.
מקור: https://fosdem.org/