Nix Milan | 123 Members | |
| https://milano.nix.pizza/ | 10 Servers |
| Sender | Message | Time |
|---|---|---|
| 1 Apr 2026 | ||
IFD sta per "import from derivation" e le hai quando scrivi derivazioni nix che producono in output codice nix che poi viene valutato. Per esempio nel caso di haskell.nix, la valutazione del codice nix viene interrotta ad un certo punto, poi viene buildata una derivazione che chiama dei tool custom che scimmiottano la risoluzione delle dipendenze che farebbe cabal e producono in output del codice nix con le versioni e gli hash delle dipendenze del plan, a quel punto la valutazione del codice nix prosegue importando ("import from derivation" per questo) questo codice nix autogenerato | 11:15:46 | |
| L'alternativa e' fare questo passaggio prima a parte e committare il codice nix autogenerato nel tuo repo. Pero' e' "meno elegante" perche' hai 2 "source of truth" per le versioni e devi ricordarti te a mano di tenere aggiornato questo secondo lockfile | 11:16:50 | |
| Aha | 11:17:25 | |
Tra l'altro haskell.nix ha una meccanismo che chiama "materialization" che ti permette proprio di committare questo codice autogenerato evitando le IFD volendo | 11:17:35 | |
| Mai riuscito a farlo funzionare... | 11:18:13 | |
| * Mai riuscito a farlo funzionare... Mi sa che c'è pure una issiue | 11:18:51 | |
Comunque in realta' io in roba personale io sto usando callCabal2Nix di nixpkgs che puo' essere usato anche con le IFD (nonostante sia in nixpkgs e quando usato in nixpkgs tu non possa introdurre IFD per policy) | 11:19:49 | |
| Non l'ho mai usato nemmeno io | 11:19:58 | |
| Usavo anche io callCabal2nix con ghcWithPackages di 25.11 per le dipendenze. Poi ho avuto bisogno di una libreria up to date, e quella richiede altre dipendenze, che non ci sono su 25.11 🙂, e poi avanti col spettacolo per trovare come pinnare le versioni e prendere versioni fresche di tutto | 11:30:16 | |
| Non AWS, ma sì. Ma poi ci son altri bug a caso, boh. | 12:20:21 | |
altre dipendenze haskell o di altro tipo? In teoria callCabal2Nix dovrebbe farti usare le versioni esatte delle dipenze | 13:13:05 | |
| Ah! Si, di Haskell. Allora la mia interpretazione di cosa succedeva non era buona, devo rivisitare, grazie! | 14:38:45 | |
| * Ah! Si, di Haskell. Allora la mia interpretazione di cosa succedeva non era buona, pensavo che usava solo le versioni pinnate da pkgs 25.11… devo rivisitare, grazie! | 14:56:02 | |
| Ah no, ecco: “callCabal2Nix uses the package versions fixed by your nixpkgs, specifically the haskellPackages you are using) not the versions resolved by cabal-install | 14:59:08 | |
| * Ah no, ecco: “callCabal2Nix uses the package versions fixed by your nixpkgs, specifically the haskellPackages you are using) not the versions resolved by cabal-install” | 14:59:15 | |
| 2 Apr 2026 | ||
Hai ragione, e' diverso da come pensavo.Questa e' l'IFD che fa callCabal2Nix, pero' se guardi come funziona cabal2nix (https://github.com/NixOS/cabal2nix) in realta' sputa fuori semplicemente un file nix con i nomi dei pacchetti, senza le versioni. Quindi puo quando nix builda la derivazione ottenuta tramtie IFD cabal verifica che le disponibili nel set haskellPackages della tua versioni di nixpkgs soddisfino i constraint di versione nel file cabal. Infatti in nixpkgs c'e' il fileone con tutti gli override di versione per i vari pacchetti haskell: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/configuration-common.nixQuesto fa si che quei progetti pero' non usino piu' le versioni delle dipendenze che dovrebbero essere risolte secondo i constraint nel loro cabal. | 08:26:07 | |
Quindi haskell2nix rimane comuque superiore da questo punto di vista perche' ti da le versioni esattamente come te le darebbe cabal. Infatti ora che ci penso in haskell.nix puoi variare la data dello snapshot di hackage e questo varia la risoluzione e quindi le versioni finali che vengono usate. | 08:27:25 | |
* Hai ragione, e' diverso da come pensavo.Questa e' l'IFD che fa callCabal2Nix, pero' se guardi come funziona cabal2nix (https://github.com/NixOS/cabal2nix) in realta' sputa fuori semplicemente un file nix con i nomi dei pacchetti, senza le versioni. Quindi poi quando nix builda la derivazione ottenuta tramtie IFD cabal verifica che le disponibili nel set haskellPackages della tua versioni di nixpkgs soddisfino i constraint di versione nel file cabal. Infatti in nixpkgs c'e' il fileone con tutti gli override di versione per i vari pacchetti haskell: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/configuration-common.nixQuesto fa si che quei progetti pero' non usino piu' le versioni delle dipendenze che dovrebbero essere risolte secondo i constraint nel loro cabal. | 08:29:52 | |
| 3 Apr 2026 | ||
| 09:48:07 | ||
| 5 Apr 2026 | ||
Ho un sistema pulito senza channel (container nixos/nix). Quando faccio nix profile add nixpkgs#htop, come fa lui a sapere a cosa corrisponde nixpkgs? | 09:44:19 | |
| https://nix.dev/manual/nix/2.18/command-ref/new-cli/nix3-registry | 09:45:03 | |
| Thanks | 09:47:48 | |
tra l'altro questo e' un flake valido dove puoi fare nix build | 09:55:30 | |
| 09:55:35 | |
| 7 Apr 2026 | ||
| Ciao a tutti! Domanda. Qualcuno di voi usa Niri? | 09:38:58 | |
| Io sì | 09:39:31 | |
| Io uso hyprland ma sto sentendo che niri è veramente una buona alternativa. | 09:41:09 | |
| Come ti trovi? Lo consigli? | 09:41:39 | |
| Sì anch'io usavo hyprland ma mi sto trovando meglio con Niri | 09:42:20 | |
| Non mi piace tanto avere troppi workspace da gestire quindi avere tutto su uno o due workspace scrollabili per me è comodissimo | 09:45:39 | |