Bir yıllık yoğun bir geliştirmenin ardından, «GCC 15.1»in yeni sürümünün yayımlandığı duyuruldu, Bu popüler açık kaynaklı derleyici paketinin yeni 15.x dalındaki ilk kararlı sürüm olarak konumlandırılmıştır.
Bu sürüm yalnızca yeni GCC 15 serisini resmi olarak başlatmakla kalmıyor, aynı zamanda GCC 16 geliştirmeye yönelik hazırlıkların da başlangıcını işaret ediyor, çünkü 16.0 dalı paralel olarak çatallandı ve bir sonraki büyük sürüm olan GCC 16.1 için temel oluşturacak.
GCC 15.1 Ana Yeni Özellikler
Bu yeni sürümdeki en dikkat çekici değişikliklerden biri GCC 15.1'in C23 standardını benimser C kodunu derlemek için varsayılan olarak, -std=gnu23 seçeneğini kullanarak. Bu güncelleme, varsayılan olarak kullanılan önceki standart olan C17'nin (-std=gnu17) yerini alıyor ve yeni standardın bir dizi yeni özelliğini sunuyor. Bunların arasında; sabit nullptr, _BitInt(n) türü ve bool, true ve false anahtar sözcükleriBu durum eski koddaki mevcut tanımlayıcılarla çakışmalara neden olabilir.
GCC 15.1'in içerdiği bir diğer yeni özellik ise İkili verileri gömmek için #embed yönergesi, ve sıralanmamış ve tekrarlanabilir gibi nitelikler, yürütme sırası ve tutarlı sonuçların belirlenmesi üzerinde daha fazla kontrol sağlar. Ayrıca, if koşulları içinde bildirilen değişkenler, case ifadelerindeki değer aralıkları, hayali i ve j ekleri ve karmaşık sayılara uygulanan ++ ve — operatörlerine destek gibi gelecekteki C2Y standardının unsurları da uygulandı.
C++'daki gelişmeler ve gelecekteki C++26
C++ dilinin durumunda, yeni sürüm GCC 15.1, C++26 standardı için tartışılan özellikleri uygular. "friend" operatörü, yeni operatörün varyantlarıyla constexpr kullanımı ve garantili kuyruk yinelemesi için musttail gibi yapılandırılmış bağlantılar ve öznitelikler için sözdiziminde iyileştirmeler gibi yeni özellikler tanıtıldıkça.
C++23 desteği de genişletildi libstdc++'da ihracat kullanımına ilişkin yeni kurallar, geçici nesnelerin işlenmesinde iyileştirmeler ve std ve std.compat modüllerinin deneysel uygulamasıyla. Ayrıca, daha verimli bir şablon karma sistemi sayesinde birleşme başlatma için güvenlik güçlendirildi ve kod derlemesi iyileştirildi.
Statik analizde yeni uyarılar ve iyileştirmeler
Sistem Statik analiz görsel olarak yeniden tasarlandı sorunları semboller aracılığıyla vurgulayan, C23'e geçiş için ipuçları ve yeni bir libgdiagnostics kütüphanesi Bu da tanılama mantığının diğer projelerde yeniden kullanılmasına olanak tanır. Ayrıca, SARIF formatında rapor oluşturma desteği de getirilerek, modern kod analiz araçlarıyla entegrasyon kolaylaştırılmıştır.
at Mevcut uyarılar yenilerine ekleniyor, gibi -Wanalyzer-tanımsız-davranış-ptrdiff İlgisiz işaretçiler arasındaki çıkarmaları tespit etmek için, –Wtrailing-whitespace ve -Wleading-whitespace gereksiz boşlukları belirtmek için ve –Bıyıklı-koruyucu Başlık ekleme korumalarındaki hataları tespit etmek için.
Optimizasyonlar ve destek
Dikkat çeken iyileştirmeler arasında; LTO için artımlı bir derleme modu dahil edilmiştir (Bağlantı Süresi Optimizasyonu), değişikliklerin minimum düzeyde olduğu durumlarda yeniden derlemelerin hızlandırılması için tasarlanmıştır. Ayrıca döngü vektörizasyonu geliştirildi, derleme zamanında dizilerin boyutunun bilinmediği durumlarda bile, çok büyük dosyaların derlenmesinin hızını artırır.
Destek tarafında AArch64'e ARMv8 uzantıları eklendi, Apple M3 gibi yeni CPU'lar için destek, Cortex-X925 ve NVIDIA Grace, MinGW platformunu genişletiyor. AMD Radeon GPU'ları için kod üretimi şu şekilde güçlendirildi: Yeni GFX9, GFX10.3 ve GFX11 serileri için deneysel destek. x86 mimarisi için AVX10.2 ve yeni AMX komutları desteği etkinleştirildi, Xeon Phi Knights desteği ise sonlandırıldı.
Buna ek olarak, GCC 15.1 COBOL için bir derleyici sunuyor (gcobol), x86-64 ve AArch64 mimarilerini destekler ve D dilinin güncellenmiş bir uygulamasıdır (sürüm 2.111.0). Fortran'da işaretsiz tamsayılar için destek eklendi ve GPU'larda birlikte çalışabilirlik iyileştirmeleri ve birleştirilmiş bellek kullanımı da dahil olmak üzere OpenMP 5.0'dan 6.0'a geçiş geliştirildi.