deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

C++26, ISO DIS oylamasını geçemedi; reportedly SC22 dil standartları arasında ilki

C++26'nın DIS oylaması iki onay eşiğini de geçemedi; dokuz ulusal organ, reportedly contracts gerekçesiyle karşı oy verdi. Reflection, std::execution ve library hardening artık onaylanmamış bir taslakta sıkışıp kaldı.

C++26, ISO DIS oylamasını geçemedi; reportedly SC22 dil standartları arasında ilki

Ne oldu

C++26 taslak standardı, 23 Ekim 2026'da kapanan Draft International Standard (DIS) oylamasını geçemedi. ISO C komitesinin başkanı (convenor) Robert Seacord, sonucu ertesi gün LinkedIn'de yayımladı. train-it.eu'daki ayrıntılı yazıya göre, bu aşamada başarısız olan ilk C++ taslağı. Seacord, programlama dillerinden sorumlu ISO alt komitesi SC22'den herhangi bir dil standardının daha önce oylamasını kaybettiğine inanmadığını yazdı; WG21 Direction Group üyesi Daveed Vandevoorde ise daha önce hiçbir C++ taslağının tek bir karşı oy bile almadığına dikkat çekti.

Pratik sonucu şu: reflection, std::execution, library hardening ve contracts'ın tümü ISO'nun onaylamadığı bir taslakta bekliyor ve gecikmenin ne kadar süreceğini kimse bilmiyor.

Oy sayımı

Bir DIS'nin iki eşiği geçmesi gerekiyor ve train-it.eu yazısı her ikisi için de sayıları veriyor. Taslak, oy kullanan P-üyeleri arasında en az üçte iki onay almalıydı: 20 oydan 12'sini, yani yüzde 60'ını aldı; oysa 14 oy gerekiyordu. Ayrıca tüm oy kullanan organlardan gelen karşı oyların yüzde 25'te veya altında kalması gerekiyordu: 22 oydan 9'u, kabaca yüzde 41'i, karşı çıktı; buna yalnızca beş oy izin verilmişti. Bu iki başarısızlıktan tek başına herhangi biri bile oylamayı batırmaya yeterdi.

Dokuz ulusal organ karşı oy verdi: Danimarka, Finlandiya, İran, İtalya, Japonya, Lüksemburg, Romanya, İspanya ve İsveç. Fransa ve İrlanda çekimser kaldı ama yorum gönderdi; böylece yorum yapan ülke sayısı 11'e ulaştı. Polonya ve Amerika Birleşik Devletleri yorum yapmadan çekimser kaldı. Yorumların kendileri henüz yayımlanmadı; ISO/IEC direktifleri, her yorumun metnini de içeren tam bir raporun oylamanın kapanışından itibaren 12 hafta içinde sunulmasını şart koşuyor ki bu da son tarihi Ocak 2027'nin ortasına denk getiriyor.

Anlaşmazlığın merkezinde contracts

Polonya ulusal organının bir üyesi olan blogun yazarına göre karşı oylar contracts yüzündendi: geliştiricilerin ön koşulları, son koşulları ve runtime doğrulamalarını doğrudan fonksiyon imzalarında yazmasını sağlayan özellik. Muhalefet oylamadan önce de belliydi: C++26'yı oylamaya gönderen Croydon toplantısında dile getirilen her iki itiraz da contracts ile ilgiliydi, önceki komite taslağına gelen birçok ulusal organ yorumu bunların çıkarılmasını istedi ve P4238R1 numaralı belge, ulusal organlara contracts tasarımı ve komiteden geçiş biçimi nedeniyle karşı oy vermelerini açıkça tavsiye ediyordu.

Tartışmanın büyük bölümü semantik üzerine. Taslak, contract doğrulamaları için dört değerlendirme modu tanımlıyor — ignore, observe, enforce ve quick-enforce — ve varsayılan seçimi uygulamaya bırakıyor; GCC 16 ise bu seçimi bir compiler bayrağıyla sunuyor. Temel anlaşmazlık şu: bir contract doğrulaması, build'in atlayabileceği bir kontrol mü yoksa programın güvenebileceği bir garanti mi?

Sırada ne var

ISO direktifleri, başarısız bir DIS'nin ardından dört yol sunuyor: revize edilmiş bir enquiry taslağını sekiz haftalık oylamaya sunmak, revize edilmiş bir komite taslağını yorumlara açmak, çalışmayı taslak teknik şartname olarak yayımlamak ya da projeyi iptal etmek. İlk üçü arasından seçimi, SC22 başkanı sekretarya ve WG21 Başkanı ile iş birliği içinde yapar; yalnızca iptal, SC22'nin bütün olarak kararı gerektirir. WG21'in görevi yorumları ele almak ve bir yol önermek. Yazının kaleme alındığı sırada hiçbir karar duyurusu yapılmamıştı.

16–21 Kasım 2026 tarihlerinde Brezilya'nın Búzios kentinde yapılacak sonraki WG21 toplantısı, sonuçtan bu yana ilk tam komite buluşması olacak ve görüşler bölünmüş durumda. P4433R0 numaralı belge, contracts'a hiç dokunmadan yeni bir oylama aramayı, yeni teknik bilgi getirmeyen çıkarma taleplerini ise reddetmeyi öneriyor. P4238R1'in ortak yazarlarından J. Daniel Garcia'ya göre kısa vadeli çözüm, tartışmalı olan tek özelliği bırakıp standardın geri kalanının büyük olasılıkla onay almasını sağlamak. Vandevoorde'nin önerisi ise library hardening'ı koruyacak metin düzenlemeleri yaparak contracts'ı taslaktan çıkarmak.

Neden önemli

Haberler doğruysa, bir SC22 dil standardı ilk kez oylamada reddedilmiş demek — üç yıllık düzenli bir döngüyle yeni bir standardı piyasaya süren bir dil için gerçek anlamda kurumsal bir şok. C++26'nın tüm gözde özellikleri artık tek bir olanak üzerine süren bir süreç anlaşmazlığının rehinesi ve çözüm için bir zaman çizelgesi yok. WG21'in Búzios'da vereceği karar teknoloji kadar yönetişimle ilgili: Değişiklik yapmadan yeniden sunmak, ulusal organların bir tasarımı iki kez engelleyip engelleyemeyeceğini test edecek; contracts'ı çıkarmak ise gelecekteki muhaliflere koordineli bir karşı oyun işe yaradığını söyleyecek. Bu arada, GCC 16 dahil, C++26 contracts'a göre geliştirmeye başlamış implementasyon ekipleri, eğitimciler ve kütüphaneler, daha önce hiç bu sonucu üretmemiş bir ISO sürecini beklemek zorunda.

  • #cpp
  • #iso
  • #standards
  • #contracts
  • #programming-languages