Zig si Rinnova: 30k Linee di Codice e un Compilatore che Finalmente Capisce le Tue Cose

Zig si Rinnova: 30k Linee di Codice e un Compilatore che Finalmente Capisce le Tue Cose

Siete pronti per un cambiamento epico nel mondo di Zig? Un pull request da 30.000 linee di codice (sì, avete letto bene) ha appena rivoluzionato il compilatore, e le novità sono così succose che anche il vostro Arduino potrebbe invidiarle.

Matthew Lugg, l’autore di questa impresa, ha passato mesi a riorganizzare il motore di risoluzione dei tipi, e il risultato è una serie di miglioramenti che faranno la felicità di tutti noi che passiamo le notti a smanettare con strutture complesse e compilazioni che sembrano un labirinto.

La novità più ghiotta? Il compilatore ora è più “pigro” (nel senso migliore del termine). Se un tipo non viene mai inizializzato, Zig non si preoccupa più di analizzarlo. Questo significa che quando usi std.Io.Writer, non ti ritroverai più con un mucchio di codice inutile di std.Io che ti rallenta la vita. Un esempio lampante:

const Foo = struct {
bad_field: @compileError(“i am an evil field, muahaha”),
const something = 123;
};

comptime {
_ = Foo.something;
}

Prima questa roba ti sputava un errore di compilazione. Ora? Zig se ne frega allegramente, perché non gliene può fregare di meno.

E poi c’è la questione dei loop di dipendenze, quel flagello che ha fatto piangere intere generazioni di sviluppatori Zig. Ora gli errori sono finalmente comprensibili, con messaggi dettagliati che ti dicono esattamente dove si è incasinato il tutto.

Ma la ciliegina sulla torta? Le performance di compilazione incrementale! Se prima il tuo progetto era lento come un modem 56k, ora dovrebbe volare come un Raspberry Pi su caffè.

Cosa significa per noi? Finalmente possiamo scrivere codice complesso senza dover interpretare geroglifici per capire perché il compilatore ci odia. E se anche voi avete un progetto Zig in ballo, è il momento perfetto per aggiornare e godersi questi miglioramenti.

E ora, mentre Zig diventa più intelligente, noi possiamo tornare a fare quello che ci piace di più: smontare, smanettare e far esplodere (metaforicamente) i nostri progetti.

Source: Zig – Type Resolution Redesign and Language Changes

Lascia un commento