Migliora il tempo di collegamento della ruggine con lld

Migliora il tempo di collegamento della ruggine con lld

Oggi inizio a sperimentare con l'API WebGPU e scelgo di utilizzare l'implementazione wgpu-rs in Rust. Sono soddisfatto dell'esperienza nel complesso, ma una difficoltà che ho incontrato è il lungo tempo di compilazione iterativo:

Per alcune applicazioni, un tempo di compilazione lento va bene. La codifica di alcuni algoritmi complessi richiede una riflessione approfondita e se compilano e superano i test unitari, probabilmente sono corretti.

Al contrario, per la grafica e la programmazione di giochi, il tempo di iterazione è fondamentale. Molte volte non ci sono risposte giuste o sbagliate a un problema, invece, abbiamo bisogno di fare molte piccole modifiche.

Fortunatamente, una persona (l'utente Rukai) sulla Discord di programmazione grafica fornisce una soluzione.

Quello che devo fare è creare un file di configurazione ~/.cargo/config come

[build]
rustflags = [
  "-C", "link-arg=-fuse-ld=lld",
]

Questo flag imposta lld al linker, che è molto più veloce del linker predefinito di Rust. E devo anche installare lld sul mio computer.

E questo semplice cambiamento rende magicamente il mio tempo di compilazione iterativo sotto i 3 secondi. Non è ancora l'ideale dal mio punto di vista, ma almeno posso divertirmi a fare di nuovo questo progetto.