Pada 3 Mei, keluaran awam pertama versi kesembilan GCC telah berlangsung: GCC 9.1.
Ia mengandungi banyak penambahbaikan dan penambahan yang ketara berbanding dengan yang kelapan
versi.
Perubahan umum
Pilihan
- Perintah yang menerima saiz kini menyokong nilai 64-bit dan akhiran untuk menentukan saiz;
- Pilihan tambahan -tampalan hidup,untuk mengawal pengoptimuman yang berpotensi merosakkan penggantian kod dinamik;
- Menambah pilihan --completion untuk menyokong auto-completion dalam shell arahan;
- Diagnostik pengkompil kini termasuk nombor baris (-fno-diagnostik-tunjukkan-nombor talian) Dan
taip maklumat (fno-diagnostics-show-labels); - Pilihan tambahan -fdiagnostics-format=json untuk mengeluarkan diagnostik dalam format JSON;
- Pilihan untuk menentukan penjajaran (-Falign-fungsi, sebagai contoh) kini boleh menerima beberapa pilihan penjajaran;
- Pilihan tambahan untuk menapis senarai fail (-fprofile-filter-files, -fprofile-exclude-files), yang diperalatkan oleh profiler;
- AddressSanitizer kini menggunakan penjajaran yang lebih padat untuk menangkap akses tidak sah kepada pembolehubah pada tindanan;
- Banyak penambahbaikan keluaran -fopt-info;
- Pilihan tambahan -fsimpan-pengoptimuman-rekod untuk menyimpan laporan pengoptimuman ke fail;
- Pilihan tambahan -fipa-stack-alignment ΠΈ -fipa-rujukan-boleh ditangani.
Ciri terbina dalam baharu
Atribut baharu
Lain-lain
Banyak peningkatan penjanaan kod yang berkaitan dengan:
- penjanaan binaan suis;
- pengoptimuman antara prosedur;
- pengoptimuman berdasarkan maklumat pemprofilan;
- pengoptimuman pada peringkat pemasangan (LTO);
Juga format dalaman gcov kini ialah JSON, dan pilihan baharu --guna-warna-panas melibatkan mewarna garis kod berdasarkan kekerapan ia digunakan.
Bahasa
Kualiti dan kesempurnaan pelaksanaan OpenACC bahasa C, C++, dan Fortran terus bertambah baik.
Bahasa seperti C
- Sokongan separa untuk OpenMP 5.0 telah dilaksanakan;
- Fungsi tambahan __builtin_convertvector;
- Ditambah amaran -Waddress-of-pack-member;
- Penambahbaikan kepada beberapa amaran sedia ada;
- Teks ralat apabila menghantar bilangan argumen yang salah kepada makro kini termasuk pengisytiharan makro itu sendiri;
- Penambahbaikan kepada cadangan pembetulan kesilapan taip.
C
- Sokong _Static_assert dengan satu hujah untuk -std=c2x (standard C masa hadapan);
- Amaran baharu -Nilai-Wabsolut, yang menangkap jenis hujah yang salah untuk fungsi seperti abs().
C + +
- Amaran baharu: -Wdeprecated-copy,
-Winit-senarai-seumur hidup,
-Pergerakan yang membosankan,
-Wpessimizing-move,
-Wclass-penukaran; - Kerja sedang dijalankan untuk melaksanakan ciri baharu daripada standard masa hadapan C++2a;
- Bahagian hadapan kini menyimpan maklumat yang lebih tepat tentang beberapa elemen kod sumber, yang membolehkan anda memaparkan maklumat yang lebih terperinci dalam diagnostik;
- Diagnostik yang dipertingkatkan untuk fungsi terlampau beban, pengendali binari, panggilan fungsi dan rentetan format;
- Menambahkan pembetulan automatik yang disokong oleh beberapa persekitaran pembangunan untuk beberapa ralat popular (tanda kurungan hilang, ruang nama, kesilapan menaip, dsb.).
libstdc++
- Pelaksanaan C++17 bukan lagi percubaan;
- Ditambah algoritma selari, , , A tidak lagi memerlukan -lstdc++fs;
- Sokongan percubaan yang lebih baik untuk C++2a ( , , std::bind_front, dsb.);
- Sokongan untuk membuka aliran fail pada Windows yang laluannya mengandungi aksara bukan aksara;
- Sokongan awal pada Windows;
- Sokongan awal untuk Rangkaian TS.
D
Versi bahasa D 2.076 disertakan dalam GCC.
Fortran
- Sokongan penuh untuk I/O tak segerak;
- Melaksanakan hujah BACK untuk MINLOC dan MAXLOC;
- Melaksanakan fungsi FINDLOC dan IS_CONTIGOUS;
- Sintaks untuk mengakses komponen nombor kompleks telah dilaksanakan: c%re dan c%im;
- Sintaks str%len dan a%kind dilaksanakan;
- Deskriptor C yang dilaksanakan dan pengepala ISO_Fortran_binding.h;
- Keperluan santai untuk hasil fungsi MAX dan MIN apabila salah satu argumen ialah NaN;
- Pilihan tambahan -fdec-termasuk;
- Arahan ditambah BUILTIN.
libgccjit
- Fungsi tambahan gcc_jit_context_add_driver_option.
Lain-lain
Banyak perubahan seni bina dan khusus OS.
Sumber: linux.org.ru