GCC 12.1 כבר שוחרר, דע את החדשות שלו ואת יום השנה ה-35 שלו

לוגו GNU GCC

ההשקה של הגרסה החדשה של המהדר GCC (אוסף מהדרים של גנו) 12.1 כבר שוחרר וכמו בכל המהדורות הגדולות של GCC, מהדורה זו תביא הרבה תוספות, שיפורים, תיקוני באגים ופיצ'רים חדשים, בנוסף החודש (23 במאי), הפרויקט יחגוג 35 שנים להיווצרות המהדורה הראשונה.

GCC 12 הוא כבר מהדר המערכת עבור Fedora 36, ​​ו-GCC 12 יהיה זמין גם ב-Red Hat Enterprise Linux ב-Red Hat Developer Toolset (גרסה 7) או Red Hat GCC Toolset (גרסאות 8 ו-9).

מפתחי GCC גאים להכריז על מהדורה גדולה נוספת של GCC, 12.1.

השנה אנו חוגגים את יום השנה ה-35 לגרסת הבטא הראשונה של GCC
והחודש נחגוג 35 שנים ליציאת GCC 1.0!

מהדורה זו מבטלת את התמיכה בפורמט ניפוי באגים STABS ו
מציג תמיכה בפורמט ניפוי באגים CTF [1]. ה-C ו-C++
ממשקים ממשיכים להתקדם עם תמיכה מורחבת בתכונות
בתקני C2X ו-C++23 הקרובים ובספריית C++ Standard Library
משפר את התמיכה בחלקים הניסיוניים של C++20 ו-C++23.
ממשק Fortran תואם כעת באופן מלא ל-TS 29113 עבור יכולת פעולה הדדית עם C.

מה חדש ב-GCC 12.1?

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

נוסף תמיכה בתכונה "לא זמין" עבור שפות C ו-C++ (לדוגמה, אתה יכול לסמן פונקציות שיגרמו לשגיאה בעת שימוש), כמו גם תמיכה נוספת בהנחיות העיבוד המקדים "#elifdef" ו-"#elifndef" לשפות C ו-C++.

כמו כן מצוין כי דגל "-Wbidi-chars" כדי להזהיר אם נעשה שימוש לרעה בתווי UTF-8, שינוי סדר תצוגת הטקסט הדו-כיווני, כמו גם הדגל "-Warray-compare" כדי להנפיק אזהרה בעת ניסיון להשוות בין שני אופרנדים המתייחסים למערכים.

בנוסף, ה-iהטמעת תקני OpenMP 5.0 ו-5.1 (Open Multi-Processing), המגדירים ממשקי API ושיטות ליישום שיטות תכנות מקבילות על מערכות מרובות ליבות והיברידיות (CPU + GPU / DSP) עם זיכרון משותף ויחידות וקטוריזציה (SIMD), נמשכה.

וגם ה יישום משופר של מפרט התכנות המקביל OpenACC 2.6, הגדרת האמצעים להורדת פעולות על GPUs ומעבדים מיוחדים כגון NVIDIA PTX; והוספת תמיכה עבור ההוראות המורחבות של Intel AVX512-FP16 וסוג _Float16 לקצה האחורי של יצירת הקוד x86.

החזית הקדמית של Fortran מספקת תמיכה מלאה למפרט TS 29113, המתאר את האפשרויות להבטיח ניידות בין Fortran לקוד C.

תמיכה הוצאה משימוש בפורמט "STABS" לאחסון מידע באגים שנוצר בשנות השמונים.

נוספה תמיכה בתוסף __builtin_shufflevector(vec1, vec2, index1, index2, …) שנוספה בעבר ל-Clang, המספקת קריאה יחידה לביצוע פעולות ערבוב וערב וקטור נפוצות.

בעת שימוש ברמת האופטימיזציה "-O2", הווקטוריזציה מופעלת כברירת מחדל (המצב -ftree-vectorize ו-fvect-cost-model=מאוד-זול מופעלים). המודל ה"זול מאוד" מאפשר וקטוריזציה רק ​​אם קוד וקטור יכול להחליף לחלוטין את הקוד הסקלרי הניתן לוקטור.

נוסף מצב "-ftrivial-auto-var-init". כדי לאפשר אתחול של משתנים מפורשים בערימה כדי לאתר בעיות ולחסום נקודות תורפה הקשורות לשימוש במשתנים לא מאותחלים.

הוסיף את הטמעת פונקציות C המובנות במהדר (Intrinsics) לטעינה אטומית ואחסון נתונים בזיכרון, מבוסס על שימוש בהוראות ARM מורחבות (ls64). נוספה תמיכה להאצת פונקציות memcpy, memmove ו- memset באמצעות תוסף ARM mopoption.

נוסף מצב אימות חדש "-fsanitize=shadow-call-stack" ( ShadowCallStack ), אשר זמין כרגע רק עבור ארכיטקטורת AArch64 ועובד בעת קומפילציה של קוד עם אפשרות "-fixed-r18". המצב מספק הגנה מפני שכתוב של כתובת ההחזרה של הפונקציה במקרה של הצפת מאגר מחסנית. מהות ההגנה היא לשמור את כתובת ההחזרה במחסנית "צל" נפרדת לאחר העברת השליטה לפונקציה ולשלוף כתובת זו לפני יציאה מהפונקציה.

מקור: https://gcc.gnu.org/pipermail


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.