!OHimLTKAXNbFrEoogf:matrix.org

Nix Milan

126 Members
https://milano.nix.pizza/10 Servers

Load older messages


SenderMessageTime
15 Jun 2026
@telegram_5487741145:t2bot.ioLuca Penso che configuri il servizio su nixos o darwin etc (ccache.enable più il resto tipo la directory della cache e i permessi) e poi
libone = pkgs.libone.override { stdenv = pkgs.ccacheStdenv; };
libtwo = pkgs.libtwo.override { stdenv = pkgs.ccacheStdenv; };
Se ha funzionato puoi fare ccache --show-stats
Come bonus lo puoi usare anche per la configurazione, tipo per packages unfree non presenti nei substituter che devi sempre compilare oppure quando applichi patch con gli overlay
06:24:01
@telegram_5487741145:t2bot.ioLuca 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
@telegram_5487741145:t2bot.ioLuca 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
@telegram_5487741145:t2bot.ioLuca Ultima cosa: mozilla ha anche https://github.com/mozilla/sccache per avere cache distribuite su network 06:42:57
@telegram_7189191315:t2bot.iogeckoCCache 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
@telegram_7189191315:t2bot.iogeckoAlso, funziona solo con C/C07:38:40
@telegram_7189191315:t2bot.iogecko* Also, funziona solo con C/C++, non funziona con progetti Python/TypeScript ad esempio07:38:54
@telegram_7189191315:t2bot.iogecko* 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
@telegram_5487741145:t2bot.ioLucaGià già10:19:23
@telegram_5487741145:t2bot.ioLucaGrazie, su questo ci devo pensare. Mi fido, ma non so risponderti10:19:48
@telegram_5487741145:t2bot.ioLucaLa 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
@telegram_7189191315:t2bot.iogecko 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
@telegram_5487741145:t2bot.ioLuca https://github.com/pdtpartners/nix-ninja (?) 11:36:40
@telegram_5487741145:t2bot.ioLucaDubito sia meglio di come hai fatto tu comunque11:37:35
@telegram_7189191315:t2bot.iogecko > 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
@telegram_7189191315:t2bot.iogeckoPerò interessante17:19:17
17 Jun 2026
@telegram_7189191315:t2bot.iogeckoimage.png
Download image.png
07:51:44
@telegram_165995843:t2bot.ioNonno FeliceSiamo già arrivati alla AGI07:59:01
@telegram_98204228:t2bot.ioAlessandro 🤔➖☀️🖌SLOP10:59:00

There are no newer messages yet.


Back to Room ListRoom Version: 10