deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

ISO Ulusal Kurulları Contracts yüzünden C++26'yı reddetti, C++ tarihindeki ilk başarısız DIS

C++26 Draft International Standard, Ulusal Kurulların Contracts özelliğine itiraz etmesinin ardından ISO oylamasını geçemedi; standardın gecikmesine yol açtı ve C++29 çalışmalarını belirsizliğe itti.

ISO Ulusal Kurulları Contracts yüzünden C++26'yı reddetti, C++ tarihindeki ilk başarısız DIS

Rutin bir oylama tarihe geçiyor

ISO Ulusal Kurulları, on iki haftalık oylama sürecinin ardından 23 Ekim 2026'da C++26 Draft International Standard'ı (DIS) reddetti. Hacker News ana sayfasına taşıyan bir blog yazısında sonucu aktaran C++ Standardizasyon Komitesi üyesi Andreas Fertig'e göre oylama, ISO'nun bu aşamada gerektirdiği üçte iki çoğunluğa ulaşamadı. Bildiği kadarıyla bu, bir C++ DIS oylamasının ilk kez başarısız olması; 1998'den bu yana bu adım sessizce bir formalite olarak işliyordu. Almanya'nın oyu temsil eden ekipte yer alan Fertig, ISO kurallarının ayrıntılı dökümü yayımlamasını yasakladığını da ekliyor.

Oylamayı Contracts batırdı

Ulusal Kurulların sunduğu yorumlar tek bir özelliğe işaret ediyor: contracts. Birkaç NB, özelliğin yayınlanmaya hazır olmadığı sonucuna vardı. Contracts'ın dilde uzun ve yıpratıcı bir geçmişi var. Fertig, 2019'da Köln'de önceki tasarımın C++20'ye oylandığı odada bulunmuştu ve aynı toplantıda C++20'den çıkarıldığı anda da aynı odadaydı. Ardından adanmış bir çalışma grubu 2020'den 2024'e kadar konuyu işledi ve önerilerini Evolution Working Group'ye iletti; bu grup da özelliği çoğunluk oyuyla C++26'ya taşıdı. Mart 2026'da C++ Standardizasyon Komitesi olan WG21, contracts dahil tam C++26 taslağını büyük çoğunlukla, ama itirazsız değil, onayladı.\nFertig'e göre değişen şey, NB düzeyindeki yazılı olmayan bir norm: ulusal kurullar daha önce bir standardı yalnızca gerçekten yeni bilgi ortaya çıktığında ya da bir süreç kusuru bulunduğunda reddediyordu. Burada bunun yaşandığını kabul etmiyor; yeni bir belgede yeniden ifade edilen mevcut itirazların yeni bilgi sayılamayacağını savunuyor.

Nadir bir emsal

Fertig, ISO kayıtlarında onaylanmayan yalnızca bir DIS daha bulabildi: 11 Ağustos 2006 tarihli, C++/CLI Dil Spesifikasyonu olan ISO/IEC DIS 26926. O proje sonunda terk edildi; Fertig bu emsali, şimdi tehlikede olabilecek şeyleri vurgulamak için ortaya koyuyor.

Dört çıkış yolu, hepsi yavaş

ISO kuralları, başarısız bir DIS oylamasının ardından birkaç yol sunuyor: revize bir taslağı yeni bir DIS oylamasına sunmak, revize taslağı komite aşamasına geri göndermek, taslağı Technical Specification olarak yayımlamak ya da projeyi iptal etmek. Her seçenek bir sonraki C++ standardını geciktiriyor; hâlâ C++26 diye anılıp anılmayacağı bile artık belirsiz.

Sorun şu ki, her yol WG21 içinde bir çoğunluk gerektiriyor; üstelik aynı komite, C++26'yı contracts ile birlikte oylama aşamasına taşımak için gerekli üçte ikiden fazla oy kullanmıştı. Fertig, bu grubun defalarca onay alan yıllık çalışmayı çöpe atmasını hayal etmeyi zor buluyor; ama contracts taslakta kaldığı sürece itiraz eden kampın pozisyon değiştirmesini de aynı derecede zor buluyor.

İptal en keskin seçenek. Fertig'in anladığı kadarıyla bu, C++23'e geri dönüp doğrudan C++29'a geçmek anlamına gelir ve C++26'ya zaten kabul edilmiş özelliklerin ayrı ayrı belgelerle yeniden sunulmasını gerektirir. İlgili belgeyi destekleyen kişinin zamanı ya da motivasyonu yoksa, özellikler ardıl standarttan sessizce düşebilir.

Sonraki adımlar

WG21, 16 Kasım 2026'da toplanıyor ve gündeminin başında çıkmazı kırmak var. Fertig yankıların C++29'a da ulaşmasını bekliyor ve durum çözülene kadar o hat üzerinde çalışmaya devam etmek için şu an bir neden olmadığını söylüyor.

Neden önemli

C++'ın şu anda bir sonraki standarda giden net bir yolu yok; derleyici üreticileri, kütüphane yazarları ve araç zinciri ekipleri yönlerini sabitleyecekleri sağlam bir hedeften yoksun. Takvimin ötesinde Fertig, başarısız oylamayı kurumsal bir zarar olarak çerçeveliyor: bir ISO standardı bir uzlaşılar bütünüdür ve ona göre contracts tartışmasının kaybeden tarafı kaybını kabul etmeyi reddederek, uzlaşıya dayalı standardizasyonun güvendiği güveni sarsmıştır. Bulabildiği tek benzer başarısızlık olan 2006'daki C++/CLI, projenin durdurulmasıyla sonuçlandı. C++26'nın aynı kaderi paylaşması, yeni bir oylamaya dönmesi ya da bir Technical Specification olarak ortaya çıkması, 16 Kasım toplantısından sonra netleşmeli.

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