GCC 12.1 đã được phát hành, hãy biết tin tức của nó và kỷ niệm 35 năm thành lập

Biểu trưng GNU GCC

Sự ra mắt của phiên bản mới của trình biên dịch GCC (Bộ sưu tập trình biên dịch GNU) 12.1 đã được phát hành và giống như tất cả các bản phát hành chính của GCC, bản phát hành này sẽ mang đến nhiều bổ sung, cải tiến, sửa lỗi và các tính năng mới, ngoài ra trong tháng này (23 tháng 35), dự án sẽ kỷ niệm XNUMX năm kể từ khi hình thành bản phát hành đầu tiên.

GCC 12 đã là trình biên dịch hệ thống cho Fedora 36 và GCC 12 cũng sẽ có sẵn trên Red Hat Enterprise Linux trong Red Hat Developer Toolset (phiên bản 7) hoặc Red Hat GCC Toolset (phiên bản 8 và 9).

Các nhà phát triển GCC tự hào thông báo một bản phát hành chính khác của GCC, 12.1.

Năm nay, chúng tôi kỷ niệm 35 năm ra mắt phiên bản beta đầu tiên của GCC
Và tháng này, chúng ta sẽ kỷ niệm 35 năm kể từ khi phát hành GCC 1.0!

Bản phát hành này không hỗ trợ cho định dạng gỡ lỗi STABS và
giới thiệu hỗ trợ cho định dạng gỡ lỗi CTF [1]. C và C ++
giao diện tiếp tục phát triển với sự hỗ trợ mở rộng cho các tính năng
trong tiêu chuẩn C2X và C ++ 23 sắp tới và Thư viện tiêu chuẩn C ++
cải thiện hỗ trợ cho các phần thử nghiệm của C ++ 20 và C ++ 23.
Giao diện Fortran hiện hoàn toàn tương thích với TS 29113 về khả năng tương tác với C.

GCC 12.1 có gì mới?

Trong phiên bản mới này Một số đề xuất đã được thực hiện, chẳng hạn như cho các ngôn ngữ C và C ++, đã thêm một hàm tích hợp __builtin_dynamic_object_size để xác định kích thước của một đối tượng, tương thích với một chức năng tương tự của Clang.

Thêm hỗ trợ thuộc tính "không khả dụng" cho ngôn ngữ C và C ++ (ví dụ: bạn có thể đánh dấu các hàm sẽ dẫn đến lỗi khi sử dụng), cũng như hỗ trợ thêm cho chỉ thị tiền xử lý "#elifdef" và "#elifndef" cho ngôn ngữ C và C ++.

Nó cũng được lưu ý rằng Cờ "-Wbidi-chars" để cảnh báo nếu các ký tự UTF-8 bị sử dụng sai, thay đổi thứ tự hiển thị văn bản hai chiều, cũng như cờ "-Warray-so sánh" để đưa ra cảnh báo khi cố gắng so sánh hai toán hạng tham chiếu đến mảng.

Ngoài ra, tôiThực hiện các tiêu chuẩn OpenMP 5.0 và 5.1 (Open Multi-Processing), xác định các API và phương pháp áp dụng phương pháp lập trình song song trên các hệ thống đa lõi và kết hợp (CPU + GPU / DSP) với bộ nhớ dùng chung và đơn vị vectơ hóa (SIMD), đã được tiếp tục.

Ngoài ra cải thiện việc triển khai đặc tả lập trình song song OpenACC 2.6, xác định các phương tiện để giảm tải các hoạt động trên GPU và bộ xử lý chuyên dụng như NVIDIA PTX; đồng thời bổ sung hỗ trợ cho các lệnh mở rộng Intel AVX512-FP16 và loại _Float16 cho chương trình phụ trợ tạo mã x86.

Giao diện người dùng của Fortran cung cấp hỗ trợ đầy đủ cho đặc điểm kỹ thuật TS 29113, mô tả các khả năng đảm bảo tính di động giữa mã Fortran và C.

Không còn hỗ trợ định dạng lưu trữ thông tin gỡ lỗi "STABS" được tạo vào những năm 1980.

Đã thêm hỗ trợ cho phần mở rộng __builtin_shufflevector (vec1, vec2, index1, index2,…) trước đó đã được thêm vào Clang, cung cấp một lệnh gọi duy nhất để thực hiện các hoạt động trộn và trộn véc tơ thông thường.

Khi sử dụng mức tối ưu hóa "-O2", vector hóa được bật theo mặc định (chế độ -ftree-vectorize và -fvect-cost-model = rất rẻ được bật). Mô hình "rất rẻ" cho phép vectơ hóa chỉ khi mã vectơ có thể thay thế hoàn toàn mã vô hướng vectơ.

Đã thêm chế độ "-ftrivial-auto-var-init" cho phép khởi tạo biến rõ ràng trên ngăn xếp để theo dõi các vấn đề và chặn các lỗ hổng liên quan đến việc sử dụng các biến chưa được khởi tạo.

Đã thêm thực hiện các chức năng C được tích hợp trong trình biên dịch (Intrinsics) để tải nguyên tử và lưu trữ dữ liệu trong bộ nhớ, dựa trên việc sử dụng các lệnh ARM mở rộng (ls64). Đã thêm hỗ trợ để tăng tốc các chức năng memcpy, memmove và memset bằng cách sử dụng tiện ích mở rộng mopoption ARM.

Thêm chế độ xác minh mới "-fsanifying = shadow-call-stack" (ShadowCallStack), hiện chỉ có sẵn cho kiến ​​trúc AArch64 và hoạt động khi biên dịch mã với tùy chọn "-fixed-r18". Chế độ này cung cấp khả năng bảo vệ chống lại việc ghi lại địa chỉ trả về của hàm trong trường hợp tràn bộ đệm ngăn xếp. Bản chất của bảo vệ là lưu địa chỉ trả về trong một ngăn xếp "bóng tối" riêng biệt sau khi chuyển quyền điều khiển cho hàm và truy xuất địa chỉ này trước khi thoát khỏi hàm.

Fuente: https://gcc.gnu.org/pipermail


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.