3 مئی کو، GCC کے نویں ورژن کی پہلی عوامی ریلیز ہوئی: GCC 9.1۔
اس میں آٹھویں کے مقابلے میں بہت سی نمایاں بہتری اور اضافے شامل ہیں۔
ورژن
عام تبدیلیاں۔
اختیارات
- وہ کمانڈ جو سائز کو قبول کرتے ہیں اب سائز بتانے کے لیے 64 بٹ ویلیوز اور لاحقوں کو سپورٹ کرتے ہیں۔
- آپشن شامل کیا گیا۔ فلائیو پیچ کرنا,ان اصلاح کو کنٹرول کرنے کے لیے جو ممکنہ طور پر متحرک،کوڈ کی تبدیلی کے لیے تباہ کن ہیں؛
- کمانڈ شیل میں خودکار تکمیل کو سپورٹ کرنے کے لیے --completion آپشن شامل کیا گیا۔
- کمپائلر تشخیص میں اب لائن نمبر شامل ہیں (-fno-diagnostics-شو-لائن-نمبرز) اور
قسم کی معلومات (fno-diagnostics-شو-لیبلز); - آپشن شامل کیا گیا۔ -fdiagnostics-format=json JSON فارمیٹ میں تشخیص کو آؤٹ پٹ کرنے کے لیے؛
- صف بندی کی وضاحت کے لیے اختیارات (-فالن فنکشنزمثال کے طور پر) اب صف بندی کے کچھ اختیارات قبول کر سکتے ہیں۔
- فائلوں کی فہرست کو فلٹر کرنے کے لیے اختیارات شامل کیے گئے (-fprofile-filter-files, -fprofile-exclude-files)، جو پروفائلر کے ذریعہ بنائے جاتے ہیں؛
- ایڈریس سنیٹائزر اب اسٹیک پر متغیرات تک غلط رسائی کو پکڑنے کے لیے زیادہ کمپیکٹ الائنمنٹ کا استعمال کرتا ہے۔
- متعدد آؤٹ پٹ بہتری -فوپٹ-معلومات;
- آپشن شامل کیا گیا۔ -fsave-optimization-record ایک فائل میں اصلاح کی رپورٹ کو محفوظ کرنے کے لیے؛
- آپشن شامل کیا گیا۔ -fipa-stack-alignment и -fipa-حوالہ- ایڈریس ایبل.
نئی بلٹ ان خصوصیات
نئی صفت
- کاپی.
دیگر
متعدد کوڈ جنریشن بہتری سے متعلق:
- سوئچ تعمیرات کی نسل؛
- بین طریقہ کار کی اصلاح؛
- پروفائلنگ کی معلومات پر مبنی اصلاح؛
- اسمبلی مرحلے پر اصلاح (LTO)؛
نیز gcov کا اندرونی فارمیٹ اب JSON ہے، اور نیا آپشن ہے۔ --استعمال-گرمی-رنگ کوڈ کی رنگین لائنیں اس بنیاد پر شامل ہوتی ہیں کہ وہ کتنی بار استعمال ہوتے ہیں۔
زبانیں
معیار اور نفاذ کی تکمیل اوپن اے سی سی زبانیں C, C++ اور Fortran میں بہتری آتی جارہی ہے۔
سی جیسی زبانیں۔
- OpenMP 5.0 کے لیے جزوی تعاون نافذ کر دیا گیا ہے۔
- فنکشن شامل کیا گیا۔ __builtin_convertvector;
- انتباہ شامل کیا گیا۔ -پیکڈ ممبر کا ویڈریس;
- موجودہ انتباہات کی ایک بڑی تعداد میں بہتری؛
- میکرو کو دلائل کی غلط تعداد میں منتقل کرنے کے دوران غلطی کے متن میں اب خود میکرو کا اعلان بھی شامل ہے۔
- ٹائپنگ کی اصلاح کی تجاویز میں بہتری۔
C
- -std=c2x (مستقبل کے C معیار) کے لیے ایک دلیل کے ساتھ _Static_asssert کی حمایت کریں؛
- نئی وارننگ -Wabsolute-value، جو abs() جیسے افعال کے لیے غلط دلیل کی قسم کو پکڑتا ہے۔
C ++
- نئی انتباہات: -ڈپریکیٹڈ کاپی,
-Winit-list-lifetime,
- بے کار حرکت,
-وپسسیمائزنگ-چلنا,
-Wclass-تبادلوں; - مستقبل کے معیار سے نئی خصوصیات کو نافذ کرنے کے لیے کام جاری ہے۔ C++2a;
- فرنٹ اینڈ اب متعدد سورس کوڈ عناصر کے بارے میں زیادہ درست معلومات ذخیرہ کرتا ہے، جو آپ کو تشخیص میں مزید تفصیلی معلومات ظاہر کرنے کی اجازت دیتا ہے۔
- اوورلوڈ فنکشنز، بائنری آپریٹرز، فنکشن کالز اور فارمیٹ سٹرنگز کے لیے بہتر تشخیص؛
- متعدد مقبول غلطیوں (گمشدہ قوسین، نام کی جگہیں، ٹائپوز وغیرہ) کے لیے کچھ ترقیاتی ماحول سے تعاون یافتہ خودکار اصلاحات شامل کی گئیں۔
libstdc++
- C++17 کا نفاذ اب تجرباتی نہیں ہے۔
- متوازی الگورتھم شامل کیے گئے، ، ، اے اب ضرورت نہیں ہے -lstdc++ fs؛
- C++2a کے لیے بہتر تجرباتی تعاون ( , , std::bind_front, etc.);
- ونڈوز پر فائل اسٹریمز کو کھولنے کے لیے سپورٹ جن کے راستے غیر چار حروف پر مشتمل ہیں۔
- ابتدائی حمایت ونڈوز پر؛
- نیٹ ورکنگ TS کے لیے ابتدائی معاونت۔
D
D زبان کا ورژن 2.076 GCC میں شامل ہے۔
فورٹران۔
- غیر مطابقت پذیر I/O کے لیے مکمل تعاون؛
- MINLOC اور MAXLOC کے لیے لاگو بیک دلیل؛
- نافذ کردہ FINDLOC اور IS_CONTIGOUS فنکشنز؛
- پیچیدہ اعداد کے اجزاء تک رسائی کے لیے نحو کو نافذ کیا گیا ہے: c%re اور c%im;
- نافذ کردہ نحو str%len اور a%kind;
- لاگو کردہ C وضاحت کنندگان اور ISO_Fortran_binding.h ہیڈر؛
- MAX اور MIN فنکشنز کے نتیجے کے لیے آرام دہ تقاضے جب ایک دلیل NaN ہو؛
- آپشن شامل کیا گیا۔ -fdec-شامل ہے۔;
- ہدایت شامل کی گئی۔ بلٹن.
libgccjit
- فنکشن شامل کیا گیا۔ gcc_jit_context_add_driver_option.
دیگر
بہت سے فن تعمیر- اور OS کے ساتھ مخصوص تبدیلیاں۔
ماخذ: linux.org.ru