GCC 12.1 ได้รับการเผยแพร่แล้วและนี่คือข่าวของมัน

หลังจากปีของการพัฒนา GCC 12.1 แพ็คเกจบิวด์เปิดตัว การเปิดตัวครั้งสำคัญครั้งแรกในสาขา GCC 12.x ใหม่

ภายใต้รูปแบบการกำหนดหมายเลขเวอร์ชันใหม่ เวอร์ชัน 12.0 ถูกใช้ในระหว่างการพัฒนา และก่อนการเปิดตัว GCC 12.1 ไม่นาน จะมีการแยกสาขา GCC 13.0 แล้ว ซึ่งจะมีการสร้าง GCC 13.1 เวอร์ชันหลักถัดไปขึ้น

GCC 12.1 คุณสมบัติใหม่หลัก

ในเวอร์ชั่นใหม่ที่นำเสนอนี้ขอเน้นว่าe เพิ่มการรองรับรูปแบบการดีบัก CTF ซึ่งให้การจัดเก็บข้อมูลแบบกะทัดรัดเกี่ยวกับประเภท C ความสัมพันธ์ระหว่างฟังก์ชัน และสัญลักษณ์การดีบัก เมื่อฝังอยู่ในวัตถุ ELF รูปแบบนี้อนุญาตให้ใช้ตารางสัญลักษณ์ EFL เพื่อหลีกเลี่ยงความซ้ำซ้อนของข้อมูล

นอกจากนี้ ยังมีข้อสังเกตอีกว่า งานยังคงขยายการสนับสนุนมาตรฐาน C2X และ C++23 ในอนาคตสำหรับ C และ C++ และนั่นก็เช่นกัน เข้ากันได้กับ ส่วนทดลองของมาตรฐาน C++20 และ C++23 ได้รับการปรับปรุง ในไลบรารีมาตรฐาน C++

สำหรับสถาปัตยกรรม x86 เพิ่มการป้องกันเพิ่มเติมสำหรับช่องโหว่ของโปรเซสเซอร์ที่เกิดจากการดำเนินการเก็งกำไร ของคำสั่งหลังการดำเนินการกระโดดไปข้างหน้าโดยไม่มีเงื่อนไข ปัญหาเกิดขึ้นจากการประมวลผลคำสั่งเสียก่อนทันทีหลังจากคำสั่งกระโดดในหน่วยความจำ (SLS, การเก็งกำไรแบบเส้นตรง) แนะนำให้ใช้ตัวเลือก "-mharden-sls" เพื่อเปิดใช้งานการป้องกัน

นอกจากนี้ยังมีการเน้นย้ำว่า เพิ่มคำจำกัดความสำหรับการใช้ตัวแปรที่ไม่ได้กำหนดค่าเริ่มต้น ไปยังเครื่องวิเคราะห์สถิตทดลอง เพิ่มการรองรับเบื้องต้นสำหรับการแยกวิเคราะห์รหัสแอสเซมบลีบนส่วนแทรกแบบอินไลน์ ปรับปรุงการติดตามหน่วยความจำ เขียนโค้ดใหม่เพื่อรองรับนิพจน์การเปลี่ยนแปลง

ถูกเพิ่มเข้ามา 30 สายใหม่มาที่ libgccjitซึ่งเป็นไลบรารีที่ใช้ร่วมกันสำหรับการฝังตัวสร้างโค้ดลงในกระบวนการอื่นๆ และใช้สำหรับ JIT bytecode เพื่อคอมไพล์โค้ดแบบเนทีฟ

ในทางกลับกัน เน้นว่า รองรับกลไก CO-RE (คอมไพล์ครั้งเดียว - รันทุกที่) ไปที่แบ็กเอนด์เพื่อสร้าง BPF bytecode ซึ่ง อนุญาตให้รวบรวมรหัสของโปรแกรม eBPF สำหรับเคอร์เนล ลินุกซ์ แค่ครั้งเดียว และใช้ตัวโหลดสากลพิเศษที่ปรับโปรแกรมที่โหลดให้เข้ากับเคอร์เนลปัจจุบันและประเภท BTF (รูปแบบประเภท BPF) CO-RE แก้ปัญหาด้วยการพกพาของโปรแกรม eBPF ที่คอมไพล์แล้ว ซึ่งก่อนหน้านี้สามารถใช้ได้เฉพาะในเวอร์ชันเคอร์เนลที่สร้างขึ้นเท่านั้น เนื่องจากตำแหน่งขององค์ประกอบในโครงสร้างข้อมูลจะแตกต่างกันไปในแต่ละเวอร์ชัน

ได้ถูกเพิ่มไปยัง รองรับแบ็กเอนด์ RISC-V สำหรับส่วนขยายสถาปัตยกรรมใหม่ ของชุดคำสั่ง zba, zbb, zbc และ zbs ตลอดจนส่วนขยาย ISA สำหรับการดำเนินการเข้ารหัสเวกเตอร์และสเกลาร์ รองรับข้อกำหนด RISC-V ISA 20191213 เป็นค่าเริ่มต้น เพิ่มแฟล็ก -mtune=thead-c906 เพื่อเปิดใช้งานการปรับให้เหมาะสมสำหรับเคอร์เนล T-HEAD c906

เพิ่มแล้ว รองรับประเภท __int128_t/integer(kind=16) ไปยังแบ็กเอนด์การสร้างโค้ด สำหรับ AMD GPU ตามสถาปัตยกรรมไมโคร GCN สามารถใช้ได้สูงสุด 40 กลุ่มงานต่อหน่วยคำนวณ (CU) และ 16 หน้าคำสั่ง (wavefront ชุดของเธรดที่ดำเนินการแบบขนานโดย SIMD Engine) ต่อกลุ่ม ก่อนหน้านี้ อนุญาตให้ใช้ขอบคำสั่งเดียวเท่านั้นต่อ CU

ตัวชี้วัด เพิ่ม "-march", "-mptx" และ "-march-map" ในแบ็กเอนด์ NVPTXออกแบบมาสำหรับการสร้างโค้ดโดยใช้สถาปัตยกรรมชุดคำสั่ง NVIDIA PTX (Parallel Thread Execution) ดำเนินการสนับสนุนสำหรับ PTX ISA sm_53, sm_70, sm_75 และ sm_80 สถาปัตยกรรมเริ่มต้นคือ sm_30

นอกจากนี้ ยังเน้นย้ำว่า แก้ไขปัญหาที่คอมไพเลอร์จะทำการค้นหาอย่างไม่มีเงื่อนไข ของนิพจน์โอเปอเรเตอร์ที่ขึ้นต่อกัน ณ เวลากำหนดเทมเพลต แทนที่จะเป็นเวลาการสร้างอินสแตนซ์ โซลูชันนี้ตรงกับลักษณะการทำงานที่มีอยู่สำหรับนิพจน์การเรียกที่ขึ้นต่อกัน

เป็นมูลค่าการกล่าวขวัญว่าในวันที่ 23 พฤษภาคม โครงการนี้จะฉลองครบรอบ 35 ปีนับตั้งแต่การเปิดตัว GCC ครั้งแรก ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา