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

אחרי שנה של התפתחות חבילת בנייה של GCC 12.1 שוחררה, המהדורה המשמעותית הראשונה בסניף החדש של GCC 12.x.

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

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

בגרסה החדשה המוצגת, מודגש כי סנוספה תמיכה בפורמט ניפוי באגים CTF, המספק אחסון קומפקטי של מידע על סוגי C, קשרים בין פונקציות וסמלי ניפוי באגים. כאשר מוטמע באובייקטי ELF, הפורמט מאפשר שימוש בטבלאות סמלים EFL כדי למנוע כפילות נתונים.

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

לאדריכלות x86, הוסיפה הגנה נוספת מפני פגיעויות מעבד הנגרמות על ידי ביצוע ספקולטיבי של הוראות לאחר פעולות קפיצה קדימה ללא תנאי. הבעיה נובעת מעיבוד מנע של הוראות מיד לאחר הוראת הקפיצה בזיכרון (SLS, Straight Line Speculation). האפשרות "-mharden-sls" מוצעת כדי לאפשר הגנה.

זה גם מודגש הוסיפה הגדרה לשימוש במשתנים לא מאותחלים לנתח הסטטי הניסיוני. נוספה תמיכה ראשונית לניתוח קוד assembly בתוספות מוטבעות. מעקב זיכרון משופר. קוד משוכתב לטיפול בביטויי שינוי.

נוספו 30 קריאות חדשות ל-libgccjit, ספרייה משותפת להטמעת מחולל קוד בתהליכים אחרים ושימוש בו עבור JIT bytecode להידור קוד מקורי.

מצד שני, מודגש כי תמיכה במנגנון CO-RE (Compile Once - Run Everywhere) ל-backend כדי ליצור BPF bytecode, אשר מאפשר להרכיב את הקוד של תוכניות eBPF עבור הליבה לינוקס רק פעם אחת ולהשתמש בטוען אוניברסלי מיוחד שמתאים את התוכנית הנטענת לסוגי הקרנל וה-BTF הנוכחיים (פורמט מסוג BPF). CO-RE פותר את בעיית הניידות של תוכנות eBPF מהולמות שבעבר ניתן היה להשתמש בהן רק בגרסת הליבה שעבורה הן נבנו, שכן מיקום האלמנטים במבני הנתונים משתנה מגרסה לגרסה.

התווסף ל תמיכת RISC-V backend עבור הרחבות ארכיטקטורה חדשות של ערכות הוראות zba, zbb, zbc ו-zbs, כמו גם הרחבות ISA עבור פעולות קריפטוגרפיות וקטוריות וסקלריות. תמיכה במפרט RISC-V ISA 20191213 ניתנת כברירת מחדל. נוסף דגל -mtune=thead-c906 כדי לאפשר אופטימיזציות עבור ליבות T-HEAD c906.

נוסף תמיכה בסוג __int128_t/integer(kind=16) לקצה האחורי של יצירת הקוד עבור GPUs של AMD מבוסס על המיקרו-ארכיטקטורה של GCN. ניתן להשתמש בעד 40 קבוצות עבודה ליחידת מחשוב (CU) ועד 16 חזיתות הוראות (wavefront, קבוצה של שרשורים המבוצעים במקביל על ידי מנוע ה- SIMD) לקבוצה. בעבר, רק קצה הוראה אחד לכל CU הותר.

האינדיקטורים "-march", "-mptx" ו-"-march-map" נוספו ל-NVPTX backend, מיועד להפקת קוד באמצעות ארכיטקטורת ערכת ההוראות של NVIDIA PTX (Parallel Thread Execution). הוטמעה תמיכה עבור PTX ISA sm_53, sm_70, sm_75 ו-sm_80. ארכיטקטורת ברירת המחדל היא sm_30.

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

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


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

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

*

*

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