Geri qayıt
Go 1.27 interaktiv turu: generik metodlar və postkvant imzalar
SiTech Team2 წთ. საკითხავი

Go 1.27 interaktiv turu: generik metodlar və postkvant imzalar

VictoriaMetrics Go 1.27 üçün praktik tur dərc edib: əsas yenilik generik metodlardır; həmçinin ölçüyə uyğunlaşdırılmış yaddaş ayrılması, ML-DSA kriptoqrafiyası, uuid paketi və standart JSON v2 gəlir.

Go 1.27-nin buraxılışı yaxınlaşır və VictoriaMetrics nələrin dəyişdiyi barədə, hər funksiya üçün işlədilə bilən nümunələrlə interaktiv tur dərc edib. 31 iyul tarixli yazının müəllifi Xesus Espinodur; yazı Anton Jijanovun başladığı seriyanı davam etdirir — o, Go 1.22-dən 1.26-dək hər buraxılış üçün tur yazıb və indi dayanmağa qərar verib.

Generik metodlar — buraxılışın başlığı

Əsas dəyişiklik tip sisteminə aiddir: metod bəyannaməsi artıq qəbuledicidən asılı olmayaraq öz tip parametrlərini elan edə bilər; beləliklə, tip üzərində generik əməliyyat paket səviyyəsində funksiya kimi deyil, həmin tipin metodu kimi yaşaya bilər. Turun nümunəsində Box konteyneri int qutusunu string qutusuna çevirən Map metodu alır. Bir məhdudiyyət qalır: interfeyslər hələ də tip parametrli metod elan edə bilmir və generik metodla interfeysi ödəmək mümkün deyil. Bununla yanaşı iki kiçik rahatlıq təkmilləşməsi gəlir: struct literalında açar artıq istənilən etibarlı sahə seçicisi ola bilər — yəni daxil edilmiş struct-dan yüksəldilmiş sahə birbaşa təyin olunur — və funksiya tipinin inferensi konversiyalara və kompozit literallara genişləndirilib.

Performans: yaddaş ayrılması, SIMD və kompilyator

Kompilyator artıq ölçüyə uyğunlaşdırılmış yaddaş ayırma rutinlərinə çağırış yaradır və 80 baytdan kiçik ayrılmaların xərcini 30%-ə qədər azaldır. Ayrılmalarla yüklü proqramlarda ümumi qazanc təxminən 1% gözlənilir; əvəzində binar fayl təqribən 60 KB böyüyür və bunu GOEXPERIMENT bayrağı ilə söndürmək olar. Eksperimental portativ SIMD paketi (GOEXPERIMENT=simd) vektor enindən asılı olmayan tiplər təqdim edir və standart kitabxana artıq ondan istifadə edir: Swiss Table əsaslı map tətbiqi hash funksiyalarını simd intrinsikləri üzərində yenidən qurub.

Təhlükəsizlik və standart kitabxana

Postkvant imzalar crypto/mldsa şəklində gəlir: FIPS 204 spesifikasiyasına uyğun ML-DSA, üç parametr dəsti ilə, həmçinin crypto/x509 və TLS 1.3 imza sxemlərinə çatır. Standart kitabxana RFC 9562 üzrə uuid paketi qazanır; NewV7 zamanla sıralanmış dəyərlər yaradır və verilənlər bazası açarları üçün əlverişlidir. Çoxdan gözlənilən encoding/json/v2 eksperiment mərhələsindən çıxır: o, build bayrağı olmadan mövcuddur, klassik encoding/json isə artıq altlıqda v2 tətbiqinə əsaslanır; köhnə davranışı qaytarmaq üçün GOEXPERIMENT var.strings və bytes CutLast alır, Unicode dəstəyi isə 15-ci versiyadan 17-yə keçir.

Alətlər və az görünən işlər

Alət dəyişikliklərindən: go test artıq standart olaraq stdversion vet yoxlamasını işlədir, go doc konkret modul versiyasının sənədlərini gətirə bilir, go fix isə yeni modernizers qazanır. Tur həm də asanlıqla gözdən qaçan işləri önə çıxarır: HTTP/2 nəhayət real paketdir və generasiya olunan 12 226 sətirlik fayl deyil; HTTP/3 infrastrukturu ixrac olunmayan formada əlavə edilib; icazəsiz //go:linkname istifadəsi isə çətinləşib.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.