GCC 13.1 כבר שוחרר ואלה החדשות שלו

gcc

אוסף המהדרים של גנו הוא קבוצה של מהדרים שנוצרו על ידי פרויקט גנו. GCC היא תוכנה חופשית ומופצת על ידי קרן התוכנה החופשית תחת הרישיון הציבורי הכללי של GPL.

אחרי שנה של פיתוח, הוכרזה ההשקה של מערכת הבנייה הפופולרית «GCC 13.1זוהי המהדורה המשמעותית הראשונה בסניף החדש של GCC 13.x.

תחת סכימת מספור הגרסה החדשה, גרסה 13.0 שימשה במהלך הפיתוח, וזמן קצר לפני יציאתו של GCC 13.1, הסניף של GCC 14.0 כבר התפצל, ממנו תיווצר הגרסה הגדולה הבאה של GCC 14.1.

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

בגרסה החדשה שפורסמה של GCC 13.1 מודגש כי אומץ ממשק ליצירת תוכניות בשפת התכנות Modula-2, התומך בקוד בנייה התואם את הדיאלקטים PIM2, PIM3 ו-PIM4, כמו גם לתקן ISO המקובל עבור שפה זו.

בנוסף לכך, מודגש גם כי התווסף לעץ המקור של GCC, חזית עם יישום המהדר של שפת Rust שהוכנה על ידי פרויקט gccrs (GCC Rust). בתצוגה הנוכחית, הממשק מסומן כניסיוני ומושבת כברירת מחדל. ברגע שהממשק מוכן (מה שצפוי בגרסה הבאה), ניתן להשתמש בערכת הכלים הסטנדרטית של GCC כדי להדר תוכניות Rust ללא צורך בהתקנת מהדר rustc שנבנה עם LLVM builds.

Link-in-Step Optimization (LTO) מוסיף תמיכה עבור שרת עבודה מתוחזק על ידי פרויקט GNU make כדי לייעל את ביצוע הבנייה במקביל במספר שרשורים. ב-GCC, שרת העבודה משמש להקביל את העבודה במהלך אופטימיזציה של LTO בהקשר של כל התוכנית (WPA, ניתוח תוכנית מלא).

שינוי נוסף הבולט הוא זה הוטמעה היכולת ליצור אבחנות בפורמט SARIF מבוסס על JSON. הפורמט החדש ניתן להשתמש כדי להשיג תוצאות ניתוח סטטי (GCC -מעריץ), וכן למידע על אזהרות ושגיאות. ההפעלה מתבצעת עם האפשרות «-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file«, שבו האפשרויות עם «ג'סון» לגרום לגרסה ספציפית ל-GCC של פורמט JSON.

חלקם יושמו מאפיינים המוגדרים בתקן C23 C, בתור הקבוע nullptr להגדיר מצביעי Null, להקל על השימוש ברשימות עם מספר משתנה של ארגומנטים (variadic), הרחבת היכולות של ספירות, התכונה לַחֲזוֹר, המאפשר שימוש ב constexpr ו-auto בעת הגדרת אובייקטים, typeof ו-typeof_unqual, מילות מפתח חדשות alignas, alignof, bool, false, static_assert, thread_local ו-true, מתן אפשרות לסוגריים ריקים בעת האתחול.

libstdc++ שיפרה תמיכה ניסיונית עבור תקני C++20 ו-C++23, כגון הוספת תמיכה בקובץ הכותרת ו- std::format, להרחיב את יכולות קובץ הכותרת , הוסף סוגי נקודה צפה נוספים, יישום ו .

של שינויים אחרים הבולטים מהגרסה החדשה הזו:

  • נוספו תכונות פונקציה חדשות למסמך שמתאר קובץ מועבר במשתנה מספר שלם: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))" ו-"__attribute__((fd_arg_write(N)) )) ".
  • ניתן להשתמש בתכונות שצוינו בנתח סטטי (-fanalyzer) כדי לזהות עבודה לא טובה עם מתארי קבצים.
  • נוספה תכונה חדשה "__attribute__((assume(EXPR)))" שניתן להשתמש בה כדי לומר למהדר שביטוי נכון והמהדר יכול להשתמש בעובדה זו מבלי להעריך את הביטוי.
  • תמיכה במעבדי STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) ו-Arm Cortex-M85 (cortex-m85) נוספה לקצה האחורי של ארכיטקטורת ARM.
  • נוספה תמיכה עבור מעבדי Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids ו-AMD Zen 4 (znver4) ל-x86 backend.
  • ההרחבות המוצעות של AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT ו-AMX-COMPLEX הוטמעו במעבדי אינטל.
  • עבור C ו-C++ במערכות עם SSE2, מסופק סוג __bf16.
  • הקצה האחורי של יצירת הקוד עבור AMD Radeon GPUs (GCN) מיישם את היכולת להשתמש במאיצי AMD Instinct MI200 כדי לשפר את ביצועי OpenMP/OpenACC.
  • וקטוריזציה משופרת באמצעות הוראות SIMD.
  • יכולות הקצה האחורי של פלטפורמת LoongArch הורחבו משמעותית.
    נוספה תמיכה במעבד T-Head XuanTie C906 (thead-c906) בקצה האחורי של RISC-V.
  • תמיכה מיושמת עבור בקרי וקטור המוגדרים במפרט RISC-V Vector Extension Intrinsic 0.11.
  • נוספה תמיכה עבור 30 הרחבות מפרט RISC-V.
  • תמיכה בפורמט ניפוי באגים DWARF מיושמת כמעט בכל התצורות.
  • נוספה אפשרות "-gz=zstd" לדחיסת מידע באגים באמצעות האלגוריתם Zstandard.
  • הוסרה תמיכה במצב דחיסת מידע ניפוי באגים שהוצא משימוש "-gz=zlib-gnu".

בסופו של דבר אם אתה מעוניין לדעת יותר על כך, אתה יכול לבדוק את הפרטים בקישור הבא.