מהדר GCC GNU מוסיף תמיכה ב- C ++ 17

עם גרסת ה- 7.1 של GCC (GNU Compiler Collection), שפורסמה השבוע, הפלטפורמה זוכה לתמיכה מוקדמת בתקן C ++ 17 ובשיפורי האבחון.

גירסה 7.1 כוללת חזית C ++ עם תמיכה ניסיונית בכל מפרט הטיוטה C ++ 17. -std=c++1zואת -std=gnu++1zאפשרויות ואת libstdc++הנתמכים, ואת יש הספרייה ביותר C ++ 17 ספריית טיוטת תכונות מיושמות. המהדורה הקודמת של GCC 6.1 עמדה בתקן C ++ 14.

סדרת GCC 7 שונה מהמהדורות הקודמות על ידי שימוש ב- LRA (מקצה רישום מקומי) כברירת מחדל עבור יעדים חדשים וביטול הרחבות Cilk + לשפות C ו- C ++. כמו כן, התנהגויות מסוימות הוקלו על מנת לשפר את ביצועי ההידור או זמן הריצה. עם זאת, שינויים מסוימים עלולים "לגרום צער" בעת העברה ל- GCC 7, על פי הערות השחרור, המצטטות בעיות מעבד מראש ו- C, כמו גם בעיות שפה C ++, כגון כללים מחמירים יותר עבור תבניות. "GCC 7 כבר אינו מקבל קונסטרוקציות שונות ומעוצבות הכוללות שימוש בתבניות", נכתב בהערות.

GCC 7.1 גם מגביר את האבחנות הנפלטות, כולל מיקומים משופרים, ושיפורי האופטימיזציה מופיעים בכל האופטימיזציות התוך-הבין-תרבותיות, אופטימיזציה של זמן קישור וקצוות יעדים שונים, כגון תוספות של מעבר מיזוג בחנויות, אופטימיזציה של הרמת קוד, פיצול לולאה, ושיפורי עטיפת כווץ. בנוסף, חיטוי הכתובות של GCC יכול כעת לדווח על שימוש במשתנים לאחר שהם עוזבים את תחומם. ניתן להגדיר GCC לצורך פריקת API של OpenMP ל- Nvidia PTX GPGPUs, אך ייתכן שקוד שנאסף עם גרסאות GCC ישנות יותר יזדקק להתאמות. האוסף כולל חזיתות עבור C, C ++, Objective-C, Fortran, Ada ו- Go.