คอมไพเลอร์ GCC GNU เพิ่มการรองรับ C ++ 17

ด้วยเวอร์ชัน 7.1 ของ GCC (GNU Compiler Collection) ซึ่งเปิดตัวในสัปดาห์นี้แพลตฟอร์มดังกล่าวได้รับการสนับสนุนก่อนกำหนดสำหรับมาตรฐาน C ++ 17 และการปรับปรุงการวินิจฉัย

เวอร์ชัน 7.1 มีส่วนหน้า C ++ พร้อมการสนับสนุนทดลองสำหรับข้อกำหนดแบบร่าง C ++ 17 ทั้งหมด -std=c++1zและ-std=gnu++1zตัวเลือกและlibstdc++ได้รับการสนับสนุนและห้องสมุดได้มากที่สุดห้องสมุด C ++ 17 ร่างคุณสมบัติการใช้งาน GCC 6.1 รุ่นก่อนหน้านี้เป็นไปตามมาตรฐาน C ++ 14

ซีรี่ส์ GCC 7 แตกต่างจากรุ่นก่อนหน้าโดยใช้ LRA (Local Register Allocator) โดยค่าเริ่มต้นสำหรับเป้าหมายใหม่และเลิกใช้ส่วนขยาย Cilk + เป็นภาษา C และ C ++ นอกจากนี้พฤติกรรมบางอย่างได้รับการผ่อนคลายเพื่อปรับปรุงประสิทธิภาพการคอมไพล์หรือรันไทม์ อย่างไรก็ตามการเปลี่ยนแปลงบางอย่างอาจ "ทำให้เกิดความเศร้าโศก" เมื่อย้ายไปยัง GCC 7 ตามบันทึกประจำรุ่นซึ่งอ้างถึงตัวประมวลผลล่วงหน้าและปัญหา C รวมถึงปัญหาภาษา C ++ เช่นกฎที่เข้มงวดขึ้นสำหรับเทมเพลต "GCC 7 ไม่ยอมรับโครงสร้างที่ไม่เหมาะสมที่เกี่ยวข้องกับการใช้เทมเพลตอีกต่อไป" บันทึกกล่าว

GCC 7.1 ยังช่วยเพิ่มการวินิจฉัยที่ปล่อยออกมารวมถึงตำแหน่งที่ได้รับการปรับปรุงและการปรับปรุงเครื่องมือเพิ่มประสิทธิภาพจะปรากฏในการเพิ่มประสิทธิภาพภายในและระหว่างกระบวนการทั้งหมดการเพิ่มประสิทธิภาพเวลาในการเชื่อมโยงและส่วนหลังของเป้าหมายต่างๆเช่นการเพิ่มรหัสผ่านการรวมร้านค้าการเพิ่มประสิทธิภาพการยกโค้ดการแยกลูป และการปรับปรุงการหดตัว นอกจากนี้น้ำยาฆ่าเชื้อที่อยู่ของ GCC สามารถรายงานการใช้งานตัวแปรหลังจากที่พวกเขาออกจากขอบเขตได้แล้ว สามารถกำหนดค่า GCC สำหรับการถ่ายโอน OpenMP API ไปยัง Nvidia PTX GPGPU ได้ แต่บางรหัสที่คอมไพล์ด้วย GCC เวอร์ชันเก่าอาจต้องมีการปรับเปลี่ยน คอลเลกชันประกอบด้วยส่วนหน้าสำหรับ C, C ++, Objective-C, Fortran, Ada และ Go