| 15 Jun 2026 |
Luca | Gli hash sono gestiti separati. Nix ha il suo hash della derivazione intera (file sorgente + compilatore + ...), mentre ccache ha gli hash dei singoli file sorgente quindi li riusa se non cambi i file di libone | 06:28:57 |
Luca | Se non ti funziona la cache per qualche file leggi https://ccache.dev/manual/4.7.4.html#:~:text=sloppiness
Tipo se hai usato __DATE__ nel codice allora l'hash di quell'artefatto cambierà ogni giorno, e ccache lo può evitare usando sempre lo stesso seed | 06:37:06 |
Luca | Ultima cosa: mozilla ha anche https://github.com/mozilla/sccache per avere cache distribuite su network | 06:42:57 |
gecko | CCache approaccia il problema ad un altro livello e ti aiuta solo in parte, devi comunque ri-linkare tutto, ri-runnare la fase di configure. Non sono veramente "build incrementali". | 07:38:13 |
gecko | Also, funziona solo con C/C | 07:38:40 |
gecko | * Also, funziona solo con C/C++, non funziona con progetti Python/TypeScript ad esempio | 07:38:54 |
gecko | * CCache approccia il problema ad un altro livello e ti aiuta solo in parte, devi comunque ri-linkare tutto, ri-runnare la fase di configure. Non sono veramente "build incrementali". | 08:06:06 |
Luca | Già già | 10:19:23 |
Luca | Grazie, su questo ci devo pensare. Mi fido, ma non so risponderti | 10:19:48 |
Luca | La fase di configure è gestita da cmake giusto? quindi con il tuo metodo si salvano anche gli artifatti che genera lui e velocizzi il configure.
Il linking è così lento? Forse se hai tante compilation unit inizia a pesare? | 10:25:28 |
gecko | Se fai build incrementali rebuildi il minimo necessario a seguito di un cambiamento nel sorgente. Quindi se non cambi CMakeLists.txt, cmake non gira. A volte lo è, soprattutto su progetti grossi (tipo LLVM). Ma overall fare una builda pulita ogni volta è sbatti: CMake + script non ccachabili + linking. A meno che ci sia un blocker insormontabile vorrei le build incrementali Vere™. | 11:15:57 |
Luca | https://github.com/pdtpartners/nix-ninja (?) | 11:36:40 |
Luca | Dubito sia meglio di come hai fatto tu comunque | 11:37:35 |
gecko | > Parses ninja.build files and generates a derivation per compilation unit.
Aggressivo. Però non risolverebbe il mio problema, io voglio sostanzialmente impurità. Ovvero poter cambiare una dipendenza upstream senza necessariamente ricompilare downstream. | 17:19:14 |
gecko | Però interessante | 17:19:17 |
| 17 Jun 2026 |
gecko |  Download image.png | 07:51:44 |
Nonno Felice | Siamo già arrivati alla AGI | 07:59:01 |
Alessandro 🤔➖☀️🖌 | SLOP | 10:59:00 |