| 9 Feb 2026 |
Marco Turchetto | Tipo per una config di nixos, le due config vengono unite in una. Per una lista, vengono concatenate. Le stringhe invece hai diversi tipi di merge tra cui scegliere in case a cosa ti serve. | 11:58:58 |
Marco Turchetto | * Tipo per una config di nixos, le due config vengono unite in una. Per una lista, vengono concatenate. Le stringhe invece hai diversi tipi di merge tra cui scegliere in base a cosa ti serve. | 11:59:16 |
Tonio | No flakes here :D | 12:01:14 |
Tonio | Cmq ho capito, di fatto scrivi una cosa e il suo semigruppo | 12:01:59 |
Tonio | Ha senso | 12:02:02 |
Andrea Ciceri | Intendeva "della tua config" probabilmente, i flake non c'entrano qui. | 12:02:55 |
Tonio | Sì sì, facevo solo quello che sta in una nicchia e ci tiene a specificarlo | 12:03:20 |
Tonio | "I don't use flakes btw" | 12:03:36 |
Tonio | No flakes is the new arch | 12:03:45 |
Tonio | 😇 | 12:03:56 |
Andrea Ciceri | questa affermazione ha appena avuto questo effetto su di me: https://xkcd.com/356/ | 12:03:57 |
Tonio | Hai googlato semigruppo? 😂 | 12:04:17 |
Andrea Ciceri | no no ho presente ma non avevo mai pensato a formalizzare il module system con qualche struttura algebrica. E ora ci sto pensando. | 12:05:25 |
Tonio | Credo peraltro si possa scrivere un monoide visto che ha senso definire un modulo vuoto | 12:06:00 |
Tonio | No, i booleani non hanno un mempty, come non detto | 12:06:38 |
Andrea Ciceri | Cosa sarebbe un elemento di questo semigruppo? Una opzione o un modulo? | 12:07:15 |
Andrea Ciceri | Non credo funzioni con le opzioni | 12:08:07 |
Tonio | Domanda interessante. Direi che se un modulo ha un'opzione e un modulo un'altra, la somma dei due dovrebbe essere un modulo con ambo le opzioni | 12:08:52 |
Tonio | ma cmq non funziona, sicuramente per colpa dei booleani, poi magari esistono altri ostacoli | 12:09:17 |
Tonio | se un modulo fissa x = true e un modulo x = false, non esiste un combinatore che vada bene di default, visto che || e && danno risultati opposti | 12:10:03 |
Andrea Ciceri | esatto, stavo scrivendolo or ora | 12:10:33 |
Tonio | ma anche le opzioni numeriche, metti che hai un verbose level che ha 0,1,2 come valori possibili. Sommarli e ottenere un numero >2 non ha senso | 12:11:15 |
Tonio | ecco la ragione per cui bisogna specificare una strategia di merge | 12:11:29 |
Tonio | cmq nerd sniped anche io ora, grazie @amerocu :D | 12:11:48 |
Tonio | Guarderò le repo meglio | 12:12:01 |
Andrea Ciceri | in generale tutte le opzioni che hanno tipi che possono non mergiare. per esempio le liste mergiano sempre ma i booleani no (devi specificare la priorita con mkOverride) | 12:12:07 |
Tonio | Cmq a questo punto mi chiedo come fanno i moduli, posto che so che esistono lib.mkAfter e altro, di default immagino sostituiscano | 12:12:46 |
Tonio | magari sulla base dell'import order | 12:12:53 |
Marco Turchetto | Sorry, ho presupposto il tuo sistema di pinning 🙈 | 13:21:13 |
Marco Turchetto | Quando dichiari una opzione, puoi impostare un valore di default | 13:22:08 |