GCC 12.1 telah pun dikeluarkan, ketahui beritanya dan ulang tahunnya yang ke-35

Logo GNU GCC

Pelancaran versi baharu pengkompil GCC (Koleksi Penyusun GNU) 12.1 telah dikeluarkan dan seperti semua keluaran utama GCC, keluaran ini akan membawa banyak penambahan, penambahbaikan, pembetulan pepijat dan ciri baharu, serta bulan ini (23 Mei), projek itu akan meraikan 35 tahun sejak pembentukan keluaran pertama.

GCC 12 sudah pun menjadi pengkompil sistem untuk Fedora 36, ​​​​dan GCC 12 juga akan tersedia pada Red Hat Enterprise Linux dalam Red Hat Developer Toolset (versi 7) atau Red Hat GCC Toolset (versi 8 dan 9).

Pembangun GCC dengan bangganya mengumumkan satu lagi keluaran utama GCC, 12.1.

Tahun ini kami meraikan ulang tahun ke-35 versi beta pertama GCC
Dan bulan ini kita akan menyambut 35 tahun sejak keluaran GCC 1.0!

Keluaran ini menggugurkan sokongan untuk format nyahpepijat STABS dan
memperkenalkan sokongan untuk format penyahpepijatan CTF [1]. C dan C++
antara muka terus maju dengan sokongan yang diperluaskan untuk ciri
dalam piawaian C2X dan C++23 yang akan datang dan Perpustakaan Standard C++
meningkatkan sokongan untuk bahagian percubaan C++20 dan C++23.
Antara muka Fortran kini mematuhi sepenuhnya TS 29113 untuk saling kendali dengan C.

Apakah yang baharu dalam GCC 12.1?

Dalam versi baru ini Beberapa cadangan telah dilaksanakan, seperti untuk bahasa C dan C++, ditambah fungsi terbina dalam __builtin_dynamic_object_size untuk menentukan saiz objek, serasi dengan fungsi Clang yang serupa.

Ditambah sokongan untuk atribut "tidak tersedia" untuk bahasa C dan C++ (contohnya, anda boleh menandakan fungsi yang akan mengakibatkan ralat apabila digunakan), serta menambah sokongan untuk arahan prapemprosesan "#elifdef" dan "#elifndef" untuk bahasa C dan C++.

Juga diperhatikan bahawa Benderakan "-Wbidi-chars" untuk memberi amaran jika aksara UTF-8 disalahgunakan, menukar susunan paparan teks dwiarah, serta bendera "-Warray-compare" untuk mengeluarkan amaran apabila cuba membandingkan dua operan yang merujuk kepada tatasusunan.

Selain itu, iPelaksanaan piawaian OpenMP 5.0 dan 5.1 (Pemprosesan Berbilang Terbuka), yang mentakrifkan API dan kaedah untuk menggunakan kaedah pengaturcaraan selari pada sistem berbilang teras dan hibrid (CPU + GPU / DSP) dengan memori kongsi dan unit vektorisasi (SIMD), diteruskan.

Juga pelaksanaan yang lebih baik bagi spesifikasi pengaturcaraan selari OpenACC 2.6, mentakrifkan cara untuk memunggah operasi pada GPU dan pemproses khusus seperti NVIDIA PTX; dan menambah sokongan untuk arahan lanjutan Intel AVX512-FP16 dan jenis _Float16 ke bahagian belakang penjanaan kod x86.

Bahagian hadapan Fortran menyediakan sokongan penuh untuk spesifikasi TS 29113, yang menerangkan kemungkinan untuk memastikan mudah alih antara kod Fortran dan C.

Sokongan yang ditamatkan untuk format storan maklumat penyahpepijatan "STABS" yang dibuat pada tahun 1980-an.

Sokongan tambahan untuk sambungan __builtin_shufflevector(vec1, vec2, index1, index2, …) yang sebelum ini ditambahkan pada Clang, yang menyediakan satu panggilan untuk melaksanakan operasi shuffle dan shuffle vektor biasa.

Apabila menggunakan tahap pengoptimuman "-O2", vektorisasi didayakan secara lalai (mod -ftree-vectorize dan -fvect-cost-model=very-cheap didayakan). Model "sangat murah" membenarkan pengvektoran hanya jika kod vektor boleh menggantikan kod skalar boleh vektor sepenuhnya.

Menambah mod "-ftrivial-auto-var-init". untuk membolehkan permulaan pembolehubah eksplisit pada tindanan untuk menjejaki isu dan menyekat kelemahan yang berkaitan dengan penggunaan pembolehubah yang tidak dimulakan.

Menambahkan pelaksanaan fungsi C terbina dalam pengkompil (Intrinsik) untuk pemuatan atom dan penyimpanan data dalam ingatan, berdasarkan penggunaan arahan ARM lanjutan (ls64). Menambah sokongan untuk mempercepatkan fungsi memcpy, memmove dan memset menggunakan sambungan ARM mopoption.

Ditambah mod pengesahan baharu "-fsanitize=shadow-call-stack" ( ShadowCallStack ), yang pada masa ini hanya tersedia untuk seni bina AArch64 dan berfungsi apabila menyusun kod dengan pilihan "-fixed-r18". Mod memberikan perlindungan daripada menulis semula alamat pemulangan fungsi sekiranya berlaku limpahan penimbal tindanan. Intipati perlindungan adalah untuk menyimpan alamat pemulangan dalam timbunan "bayangan" yang berasingan selepas pemindahan kawalan ke fungsi dan untuk mendapatkan semula alamat ini sebelum keluar dari fungsi.

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


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.