Go 1.26, Şubat 2026'da yayınlandı. Dil değişiklikleri, performans iyileştirmeleri, yeni paketler ve araç güncellemeleri içeriyor.
new(expr):newartık sadece tip değil, expression da kabul ediyor — pointer oluşturmak tek satıra indi- Recursive Type Constraints: Generic tipler artık kendi tip parametre listelerinde kendilerine referans verebiliyor
errors.AsType:errors.As'ın generic, type-safe ve 3x daha hızlı versiyonuslog.MultiHandler: Aynı log'u birden fazla hedefe (stdout, dosya, vb.) yazma desteğibytes.Buffer.Peek: Buffer'dan pozisyonu ilerletmeden veri okumareflectIterators:Type.Fields(),Type.Methods(),Value.Fields()gibi iterator metodlarınetip.Prefix.Compare: IP subnet'leri kolayca sıralama
go fixModernizers: Tamamen yeniden yazıldı, 20+ modernizer ile kodunuzu güncel idiomlara dönüştürün- Test Artifacts:
T.ArtifactDir()ile test çıktı dosyalarını organize edin
- Green Tea GC: Go 1.25'te deneysel olan yeni garbage collector artık varsayılan — %10-40 GC overhead azalması
- Faster cgo: cgo çağrılarında ~%30 overhead azalması
- Faster Memory Allocation: Küçük objeler (1-512 byte) için ~%30 daha hızlı bellek tahsisi
io.ReadAllOptimizasyonu: ~2x daha hızlı, yarı bellek kullanımıfmt.ErrorfOptimizasyonu: Düz stringlerdeerrors.Newile aynı performans
- Goroutine Leak Profile:
runtime/pprofile sızan goroutine'leri tespit edin (GOEXPERIMENT=goroutineleakprofile) - SIMD Operations:
simd/archsimdpaketi ile vektörel işlemler (GOEXPERIMENT=simd) runtime/secret: Kriptografik anahtarları bellekten güvenle temizleme (GOEXPERIMENT=runtimesecret)
crypto/hpke: Hybrid Public Key Encryption (RFC 9180) — post-quantum desteğisignal.NotifyContext: Cause olarak hangi sinyalin alındığını raporluyornet.DialerContext-aware:DialTCP,DialUDP,DialIP,DialUnixartık context destekliyorhttptest.Server.Client:example.comistekleri otomatik olarak test sunucusuna yönlendiriliyor- Heap Base Address Randomization: 64-bit platformlarda güvenlik iyileştirmesi
- Reader-less Cryptography: Çoğu crypto API artık
io.Readerparametresini yok sayıyor
| Dosya | Konu |
|---|---|
01_new_expr.go |
new(expr) — pointer oluşturma kolaylığı |
02_recursive_type_constraints.go |
Recursive generic type constraints |
03_errors_astype.go |
errors.AsType — type-safe error checking |
04_slog_multihandler.go |
slog.MultiHandler — çoklu log hedefi |
05_bytes_peek.go |
bytes.Buffer.Peek — non-advancing read |
06_reflect_iterators.go |
reflect iterator metodları |
07_netip_compare.go |
netip.Prefix.Compare — IP sıralama |
08_gofix_demo.go |
go fix modernizer örnekleri |
tests/09_artifacts_test.go |
Test artifact dizini (T.ArtifactDir()) |
tests/10_goroutine_leak_test.go |
Goroutine leak profili (deneysel) |
# Tek bir örneği çalıştırma
go run 01_new_expr.go
# Testleri çalıştırma
go test -v ./tests/
# Test artifacts ile çalıştırma
go test -v -artifacts -outputdir=/tmp/test-output ./tests/
# Goroutine leak profili (deneysel)
GOEXPERIMENT=goroutineleakprofile go test -v ./tests/ -run TestGoroutineLeak
# go fix modernizer'ları uygulama
go fix .
go fix -diff . # sadece farkları göster- %10-40 GC overhead azalması (gerçek dünya programlarında)
- Yeni amd64 CPU'larda (Ice Lake / Zen 4+) ek %10 iyileştirme (vektörel talimatlar)
- Devre dışı bırakma:
GOEXPERIMENT=nogreenteagc
CgoCall ~30% daha hızlı (43ns → 35ns)
Syscall ~9% daha hızlı (195ns → 178ns)
Alloc1 ~19% daha hızlı
Alloc128 ~69% daha hızlı
Alloc512 ~32% daha hızlı
sec/op ~50% daha hızlı
B/op ~50% daha az bellek
Eski: 2 alloc/op, ~64 ns/op
Yeni: 0-1 alloc/op, ~5-25 ns/op
- Presenter: Uğurcan Erdoğan
- Contact: ugurcanerdogan3306@gmail.com