GCC 11.1 כבר פורסם, אלה החדשות והשינויים החשובים ביותר שלו

אחרי שנה של פיתוח, גרסה חדשה של חבילת המהדר GCC 11.1 שוחררה, המהדורה המשמעותית הראשונה בסניף GCC 11.x החדש. לפי ערכת מספור הגרסאות החדשה, נעשה שימוש בגרסה 11.0 במהלך הפיתוח, וזמן קצר לפני שחרורו של GCC 11.1, סניף של GCC 12.0 כבר הועבר ליצירת הגרסה העיקרית הבאה של GCC 12.1.

GCC 11.1 בולט במעבר לפורמט קובץ ניקוי באגים ברירת המחדל DWARF 5, הכללת ברירת המחדל של תקן C ++ 17 ("-std = gnu ++ 17"), שיפורים משמעותיים בתאימות עם תקן C ++ 20, תמיכה ניסיונית ב- C ++ 23, שיפורים הקשורים לתקן העתידי של שפת C (C2x), אופטימיזציות ביצועים חדשות.

GCC 11.1 תכונות חדשות עיקריות

מצב ברירת המחדל עבור שפת C ++ משתנה לשימוש בתקן C ++ 17במקום C ++ 14 שהוצע בעבר. ניתן להשבית באופן סלקטיבי את ההתנהגות החדשה של C ++ 17 בעת עיבוד תבניות המשתמשות בתבניות אחרות כפרמטר (-fno-new-ttp-matching).

הוסיף תמיכה להאצת חומרה בכלי AddressSanitizer, המאפשר לך לקבוע את עובדות הגישה לאזורי זיכרון משוחררים, חריגה ממגבלות המאגר שהוקצה, וכמה סוגים אחרים של שגיאות בעבודה עם זיכרון. האצת חומרה זמינה כרגע רק עבור ארכיטקטורת AArch64 ומתמקדת בשימוש בה בעת קומפילציה של ליבת לינוקס.

חידוש נוסף שמוצג הם ה אופטימיזציות ושיפורים בין ההליכים, שכן נוספה מעבר חדש של IPA-modref (-fipa-modref) למעקב אחר תופעות לוואי בשיחות פונקציות ושיפור דיוק הניתוח. חוץ מזה גם א הטמעה משופרת של ה- IPA-ICF pass (-fipa-icf), המפחית את צריכת זיכרון האוסף ומגדיל את מספר הפונקציות המאוחדות שלגביהם מוזגות גושי קוד זהים.

El מנוע אופטימיזציה מונחה פרופיל (PGO), שיפור במצב "-ערכי פרופיל" על ידי מעקב אחר פרמטרים נוספים לשיחות עקיפות.

גם יישום מתמשך של תקן OpenMP 5.0 מודגש (Open Multi-Processing), שבו הוסיף תמיכה ראשונית בהנחיית מטלות ויכולת להשתמש בלולאות לא אחידות ב- OpenMP בונה. משתנה הסביבה OMP_TARGET_OFFLOAD נתמך כעת.

שיפור היישום של מפרט התכנות המקביל OpenACC 2.6 המסופק לשפות C, C ++ ו- Fortran, המגדיר כלים להעלאת פעולות ל- GPUs ומעבדים מיוחדים כגון NVIDIA PTX.

עבור השפות של משפחת C הוטמעה תכונה חדשה "no_stack_protector", תוכנן לסמן פונקציות שעבורן אין להפעיל הגנת מחסנית ("-fstack-protector"). מאפיין "malloc" הורחב עם תמיכה בזיהוי זוגות שיחות להקצאת זיכרון ופנוי, המשמש בניתוח הסטטי לאיתור שגיאות זיכרון אופייניות (דליפות זיכרון, שימוש לאחר פנייה, שיחות כפולות לפונקציה חופשית וכו ') ואזהרות מהדר "-Wmismatched-dealloc", "-Wmismatched- new-delete" ו- " -Wfree-nonheap-object "המדווחת על פעולות לא-מיקום ועסקת מיקום.

בעת יצירת מידע לניפוי באגים, נעשה שימוש כברירת מחדל בפורמט DWARF 5, אשר בהשוואה לגירסאות קודמות מאפשר ליצור נתוני איתור באגים שהם קומפקטיים יותר ב 25%. תמיכה מלאה ב- DWARF 5 מחייבת שיניים זניחות לפחות בגרסה 2.35.2.

יכולות מצב ThreadSanitizer משופרות (-fsanitize = חוט), שכן כןe מוסיף תמיכה בזמני ריצה וסביבות חלופיים, כמו גם תמיכה בכלי ניפוי הבאגים Kernel Concurrency Sanitizer (KCSAN) כדי לזהות באופן דינמי את תנאי המירוץ בתוך ליבת לינוקס. נוספו אפשרויות חדשות "- פארם צאן-הבחנה-נדיף" ו"-פארם צאן-מכשיר-פונקציה-כניסה-יציאה ".

הווקטורייזר מספק חשבונאות של כל תוכן הפונקציה ועיבוד נוסף של היכולות הקשורות לצמתים והפניות לחסימות קודמות בתרשים זרימת הבקרה (CFG).

למיטוב יכולת להמיר סדרה של פעולות מותנות לביטוי שינוי, בה משווים את אותו משתנה. בעתיד, ניתן לקודד את ביטוי השינוי באמצעות הוראות בדיקת סיביות (כדי לשלוט בהמרה זו, נוספה האפשרות "-fbit-tests").

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

אם אתה רוצה לדעת יותר על זה, אתה יכול לבדוק את הפרטים ב הקישור הבא. 


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

היה הראשון להגיב

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

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

*

*

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