Lajme

Lançimi i WASI 0.3.0 me async të integruar në komponentë

Grupi i punës WASI ka miratuar zyrtarisht versionin 0.3.0, duke e vendosur atë në bazën e modelit të komponentëve të WebAssembly‑it me primitive asinkrone. Kjo do të thotë se funksionet asinkrone tani janë pjesë natyrale e ekosistemit, pa nevojën për “akrobaci” që kërkohej në versionin 0.2.

Ndryshimet kryesore janë kryesisht mekanike. Skedarët e ndërfaqeve (stdin.wit, stdout.wit, stderr.wit, run.wit, exit.wit, terminal.wit, environment.wit) mbeten të njëjtë, por pjesa e stdio ka pësuar një riorganizim të rëndësishëm: në vend të një rrjedhe dalëse që shkruhet në mënyrë imperativë, WASI 0.3 kërkon një stream dhe kthen një future që përfundon kur shkrimi përfundohet. Një ndërfaqe e re, wasi:cli/types, sjell një variant të përbashkët për kodet e gabimeve (io, illegal-byte-sequence, pipe).

Burimi i rrjetit është hequr krejtësisht. Ndërsa në versionin 0.2 rrjeti trajtohej si një kapacitet i transmetuar në çdo thirrje bind/connect/lookup, në 0.3 ai merret përmes importimeve të botës. Funksioni connect tani nuk kthen asgjë të veçantë; operacionet e I/O-së bëhen përmes metodave të rrjedhës së burimit të socket-it. Njësoj trajtohen edhe UDP‑ja, me dërgim dhe marrje asinkrone të thjeshtë, dhe kodet e gabimeve për TCP, UDP dhe kërkime emri janë unifikuar në një variant të vetëm, me raste të reja si connection-broken dhe një opsion të hapur për gabime të tjera.

Numri i burimeve është reduktuar nga 8 në 2. Në vend të matricës komplekse të burimeve për hyrje/dalje dhe kërkesë/përgjigje, WASI 0.3 përdor vetëm request dhe response, ku trupat përfaqësohen si stream dhe trailer‑at si future, error-code>>. Funksioni i trajtuesit tani është plotësisht asinkron, pa nevojën për parametra “outparam” si në versionin e mëparshëm. Botë të reja për middleware zëvendësojnë botën e vjetër proxy, duke lejuar komponentë që veprojnë si pjesë e një rrugë kërkese.

Ndryshimet në pjesën e orëve janë kryesisht rinomime: “wall-clock” u ndryshua në “system-clock”, dhe “datetime” në “instant”, për të qenë në përputhje me standardet POSIX, Rust dhe sistemet e tjera. Këto ndryshime kërkojnë kryesisht zëvendësime automatike në kodin e testimeve, siç tregohet në përditësimin e WebAssembly/wasi-testsuite@f13976f.


Leave a Reply

Your email address will not be published. Required fields are marked *