คอมไพเลอร์ GCC เวอร์ชันใหม่นี้ เปิดให้ใช้งานเมื่อไม่กี่วันที่ผ่านมาพร้อมคุณสมบัติใหม่และการแก้ไขข้อบกพร่อง
ตามที่ทีมโครงการ GNU GCC เวอร์ชันใหม่นี้ เวอร์ชัน 9.1 เป็นเวอร์ชันคอมไพเลอร์หลัก มีคุณสมบัติใหม่ที่สำคัญที่ไม่มีใน GCC 8.x หรือเวอร์ชันก่อนหน้า GCC 9.1 ควรมีคุณลักษณะภาษาใหม่ ๆการเพิ่มประสิทธิภาพใหม่และการปรับปรุงประสิทธิภาพบางอย่างของซอฟต์แวร์
เกี่ยวกับ GCC
GCC เป็นคอลเลกชันคอมไพเลอร์ สร้างโดยโครงการ GNU มันเป็นซอฟต์แวร์ฟรีมากกว่า สามารถรวบรวมภาษาโปรแกรมต่างๆ ได้แก่ C, C ++, Objective-C, Java, Ada และ Fortran
นอกจากนี้ยังควรสังเกตว่า ใช้สำหรับการพัฒนาซอฟต์แวร์ฟรีส่วนใหญ่. การเผยแพร่คอมไพเลอร์หลักล่าสุดย้อนกลับไปในเดือนพฤษภาคม 2018 เวอร์ชัน 8.1
Jakub Jelinek ผู้พัฒนา Red Hat อธิบายว่า GCC 8.1 เป็นรุ่นหลักที่นำเสนอคุณสมบัติใหม่ ๆ ที่สำคัญซึ่งไม่มีใน GCC 7.x และ GCC เวอร์ชันก่อนหน้า
ณ จุดนี้ฟรอนต์เอนด์ C ++ ได้ให้การสนับสนุนทดลองสำหรับฟังก์ชัน C ++ 2a บางฟังก์ชันด้วยอ็อพชัน -std = c ++ 2a และ -std = gnu ++ 2a
ในเวอร์ชัน 8.2 ที่ระดับการปรับปรุงทั่วไปปัญหาเกี่ยวกับประสิทธิภาพของ LTO (การเพิ่มประสิทธิภาพเวลาลิงก์) เนื่องจากการล้นในอัลกอริธึมการแบ่งพาร์ติชันระหว่างการสร้างไฟล์ไบนารีขนาดใหญ่ได้รับการแก้ไข
การแก้ไขยังคงดำเนินต่อไปในสาขา 8.x ด้วยการเปิดตัวคอมไพเลอร์เวอร์ชัน 8.3 เมื่อเดือนกุมภาพันธ์ที่ผ่านมา รุ่นนี้เป็นรุ่นแก้ไขข้อบกพร่องที่มีแพตช์สำหรับการถอยหลังใน GCC 8.2 เทียบกับ GCC เวอร์ชันก่อนหน้า ทีม GCC เปิดตัวสาขาใหม่ในวันที่ 3 พฤษภาคมโดยปล่อยเวอร์ชัน 9
มีอะไรใหม่ใน GCC 9.1
ในเวอร์ชันนี้ รองรับ C ++ 17 เนื่องจากคอมไพเลอร์เวอร์ชัน 8.1 ไม่มีประสบการณ์อีกต่อไปล. ดังนั้นการสนับสนุน C ++ 17 จึงมีความเสถียรแล้ว
ส่วนต่อประสานของ C ++ ใช้ภาษาทั้งหมดของ C ++ 17 และการสนับสนุนสำหรับไลบรารีมาตรฐาน C ++ ใกล้จะเสร็จสมบูรณ์
El front-end และไลบรารี C ++ ยังมีคุณสมบัติอื่น ๆ อีกมากมายที่เข้ารหัสจาก C ++ 2a. นอกจากนี้ GCC ยังมีอินเทอร์เฟซใหม่สำหรับภาษา D และตอนนี้รองรับ OpenMP 5.0 แล้วบางส่วนและเกือบจะรวมการสนับสนุน OpenACC 2.5 อย่างสมบูรณ์
สำหรับหลาย ๆ คน GCC 9 เป็นคอมไพเลอร์เวอร์ชันที่แข็งแกร่งซึ่งมีคุณสมบัติและการปรับปรุงที่ยอดเยี่ยมเพื่อปรับปรุงประสิทธิภาพของนักพัฒนา
คุณสมบัติใหม่มากมายใน GCC 9.1 ได้แก่ :
- รองรับการรองรับการคอมไพล์โค้ดที่เขียนด้วยภาษาโปรแกรม D
- เพิ่มแบ็กเอนด์ GPU AMD GCN ใหม่ใน GCC แล้ว ขณะนี้การใช้งานถูก จำกัด ไว้ที่การรวบรวมโปรแกรมเธรดเดี่ยว
- ขณะนี้ LRA ถูกเปิดใช้งานโดยค่าเริ่มต้นสำหรับเป้าหมาย ARC สิ่งนี้สามารถควบคุมได้โดย -mlra
- เพิ่มการรองรับรหัสรูปภาพและงบความหนาแน่นของสาขาและดัชนี
- สิ่งที่เพิ่มเข้ามาใน GCC คือการเพิ่มโปรเซสเซอร์ C-SKY V2 ที่กำหนดเป้าหมายส่วนหลังใหม่
- การสนับสนุน Intel MPX ถูกลบออก
- มีการเพิ่มแบ็กเอนด์ใหม่สำหรับการสนับสนุนโปรเซสเซอร์ OpenRISC
- การรองรับสเปค OpenACC 2.5 เกือบจะเสร็จสมบูรณ์แล้ว
- ตอนนี้แพ็คเกจ "การทดสอบตนเอง" ภายในของ GCC ใช้งานได้กับ C ++ และ C (ในคอมไพเลอร์เวอร์ชันดีบัก)
- การสนับสนุน Fortran ใน GCC ยังได้รับการปรับปรุง ตอนนี้จัดการ I / O แบบอะซิงโครนัสและคุณสมบัติอื่น ๆ
- Interprocedure Optimization (OPI) การปรับแต่งตามโปรไฟล์การเพิ่มประสิทธิภาพเวลาลิงก์ (LTO) รวมถึงการเพิ่มประสิทธิภาพอื่น ๆ อีกมากมายเพื่อให้แน่ใจว่าคุณภาพของโค้ดดีขึ้น
- เวลาคอมไพล์ทั้งหมดของ Firefox 66 และ LibreOffice 6.2.3 บนเครื่อง 8 คอร์ลดลงประมาณ 5% เมื่อเทียบกับ GCC 8.3 ขนาดของไฟล์ออบเจ็กต์ LTO ลดลง 7%
- เวลาในการเชื่อมโยง LTO เพิ่มขึ้น 11% ในเครื่อง 8 แกนและพัฒนาขึ้นอย่างมากสำหรับสภาพแวดล้อมการก่อสร้างแบบขนานมากขึ้น ขั้นตอนอนุกรมของการเพิ่มประสิทธิภาพเวลาลิงค์เร็วขึ้น 28% และใช้หน่วยความจำน้อยลง 20% Parallel Stage แบ่งพาร์ติชัน 128 พาร์ติชันแทนที่จะเป็น 32 และลดการใช้หน่วยความจำสำหรับผู้ใช้แต่ละคน 30%
- ตัวเลือกใหม่ "-fdiagnostics-format = json" ได้รับการแนะนำสำหรับการวินิจฉัยในรูปแบบที่เครื่องอ่านได้
Fuente: https://gcc.gnu.org