Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,804,013 events total
2025-09-23 09:55:23 <haskellbridge> <Morj> Are we talking about flakes or the nix way in general, that makes security updates unforsable?
2025-09-23 09:55:35 <dminuoso> But the second you want any other package you like, you have to wire things together, and just pray that the entire transitive dependency closure does so as well.
2025-09-23 09:55:36 <haskellbridge> <Morj> *not feasible to force-update
2025-09-23 09:55:40 <dminuoso> Morj: Yes, both.
2025-09-23 09:55:54 <dminuoso> Outside flakes its completely impossible since there's just hardwired buittins.fetchXXX things.
2025-09-23 09:56:00 <dminuoso> With flakes its also fairly impossible
2025-09-23 09:56:35 <haskellbridge> <magic_rb> dminuoso no, again, wrong. If you use nix-darwin it doesnt matter what its nixpkgs input is. Since nix-darwin, like home-manager or nixng exposes a function which takes a instance of pkgs and builds your system from that
2025-09-23 09:56:38 <haskellbridge> <Morj> Outside flakes you get a giant blob where everything relies on everything. So if you do a security update you need to rebuild the world. I'm not too familiar with how flakes change this
2025-09-23 09:56:44 × mange quits (~mange@user/mange) (Quit: Zzz...)
2025-09-23 09:56:49 <haskellbridge> <Morj> But I want to say that a giant blob is not a bad thing
2025-09-23 09:57:15 <haskellbridge> <magic_rb> They dont, thats a fundamental nix thing, everything is content addressed/input addressed. If you patch glibc you have to rebuild, thats just a fact
2025-09-23 09:57:27 <dminuoso> magic_rb: No thats still wrong. Here's why: flakes generally dont expose callPackage pattern!
2025-09-23 09:57:36 <dminuoso> They expose fully ready derivations based on pinned nixpkgs.
2025-09-23 09:57:48 <dminuoso> So if you want to include "fancy-program" into your nix-darwin installation..
2025-09-23 09:57:58 <dminuoso> You have to make sure that fancy-program uses your nixpkgs, and not its own.
2025-09-23 09:58:02 <dminuoso> What about fancy-programs dependencies?
2025-09-23 09:58:04 <dminuoso> Who knwos.
2025-09-23 09:58:07 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds)
2025-09-23 09:58:23 <dminuoso> Which is why a single package can easily drag 5-6 different nixpkgs instanations with it.
2025-09-23 09:58:29 <dminuoso> Outside of nixpkgs at least.
2025-09-23 09:58:43 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 250 seconds)
2025-09-23 09:59:21 <haskellbridge> <Morj> That's the part I also don't understood about flakes. I suppose there should be a way to deduplicate or override deps? Would be crazy if there isn't
2025-09-23 09:59:33 <dminuoso> Morj: There is, you have to do it manually for each input.
2025-09-23 09:59:36 merijn joins (~merijn@77.242.116.146)
2025-09-23 09:59:43 <haskellbridge> <Morj> On the other hand, flakes CLI has some other crazy things like that interaction with git
2025-09-23 09:59:43 <dminuoso> So its a contract that everyone should obey.
2025-09-23 10:00:08 <dminuoso> So you write `inputs.foo.nixpkgs.follows = "nixpkgs";` in your flake
2025-09-23 10:00:16 <dminuoso> People generally dont.
2025-09-23 10:00:55 <dminuoso> The flaw here is that packages are solved based on hardwired references, not on resolvable labels.
2025-09-23 10:00:57 <haskellbridge> <Morj> Unfortunate. Seems like you can copy a flake description and patch it at least
2025-09-23 10:01:37 <dminuoso> Morj: Heh, funny story about that: Nix updates that lock file for you without even asking for confirmation in a few different circumstances.
2025-09-23 10:01:42 <haskellbridge> <Morj> Sometimes the hardwired references are good actually. But I should say they should be guarded with «syntactic salt» and not advertized in the tutorial
2025-09-23 10:01:54 <haskellbridge> <Morj> Wtf
2025-09-23 10:02:01 <haskellbridge> <Morj> Did nodejs devs write this
2025-09-23 10:02:40 <dminuoso> The way cabal packages do it is fairly good already. You talk about flags and versions (i.e. constraints)
2025-09-23 10:02:42 <dminuoso> Its lockable
2025-09-23 10:02:46 <dminuoso> But overridable.
2025-09-23 10:02:46 arandombit joins (~arandombi@2603:7000:4600:ffbe:7054:843b:4b80:a9d)
2025-09-23 10:02:46 × arandombit quits (~arandombi@2603:7000:4600:ffbe:7054:843b:4b80:a9d) (Changing host)
2025-09-23 10:02:46 arandombit joins (~arandombi@user/arandombit)
2025-09-23 10:03:01 <dminuoso> So you get tractability, reproducability and ability to specify what it is you need exactly.
2025-09-23 10:03:32 <jackdk> Ideally the flake providing the package should provide an overlay to splice it into your config how you wish, but that's very rare. Agree that the inputs.foo.nixpkgs.follows is the "standard" but sadly less common than it should be
2025-09-23 10:05:46 <dminuoso> Here I have 22 nixpkgs instantiations in my store for just 4 NixOS deployments. :-)
2025-09-23 10:07:25 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2025-09-23 10:12:09 lxsameer joins (~lxsameer@Serene/lxsameer)
2025-09-23 10:12:40 <lxsameer> hey folks, is it possible to ask GHC to emit llvm ir and not actually compile that IR to machine code?
2025-09-23 10:14:48 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 258 seconds)
2025-09-23 10:22:43 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
2025-09-23 10:26:15 dhil joins (~dhil@5.151.29.138)
2025-09-23 10:27:26 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-09-23 10:28:03 merijn joins (~merijn@77.242.116.146)
2025-09-23 10:28:35 Square joins (~Square4@user/square)
2025-09-23 10:28:52 Square2 joins (~Square@user/square)
2025-09-23 10:29:03 arandombit joins (~arandombi@2603:7000:4600:ffbe:7054:843b:4b80:a9d)
2025-09-23 10:29:04 × arandombit quits (~arandombi@2603:7000:4600:ffbe:7054:843b:4b80:a9d) (Changing host)
2025-09-23 10:29:04 arandombit joins (~arandombi@user/arandombit)
2025-09-23 10:33:15 × Square2 quits (~Square@user/square) (Ping timeout: 244 seconds)
2025-09-23 10:34:02 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 248 seconds)
2025-09-23 10:34:44 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 258 seconds)
2025-09-23 10:34:51 Googulator91 is now known as Googulator
2025-09-23 10:36:21 merijn joins (~merijn@77.242.116.146)
2025-09-23 10:38:01 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
2025-09-23 10:45:14 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2025-09-23 10:46:22 arandombit joins (~arandombi@2603:7000:4600:ffbe:7054:843b:4b80:a9d)
2025-09-23 10:46:22 × arandombit quits (~arandombi@2603:7000:4600:ffbe:7054:843b:4b80:a9d) (Changing host)
2025-09-23 10:46:22 arandombit joins (~arandombi@user/arandombit)
2025-09-23 10:47:50 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-09-23 10:48:10 × aplainzetakind quits (~aplainzet@37.155.33.61) (Remote host closed the connection)
2025-09-23 10:49:01 __monty__ joins (~toonn@user/toonn)
2025-09-23 10:50:49 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2025-09-23 10:52:04 merijn joins (~merijn@77.242.116.146)
2025-09-23 10:53:46 × sprotte24 quits (~sprotte24@p200300d16f27a10059569454f9dec65c.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2025-09-23 10:54:32 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2025-09-23 10:54:57 × trickard quits (~trickard@cpe-49-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
2025-09-23 10:55:22 trickard_ joins (~trickard@cpe-49-98-47-163.wireline.com.au)
2025-09-23 10:58:21 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
2025-09-23 10:58:34 karenw_ joins (~karenw@user/karenw)
2025-09-23 10:58:34 wootehfoot joins (~wootehfoo@user/wootehfoot)
2025-09-23 11:00:05 × caconym74787 quits (~caconym@user/caconym) (Quit: bye)
2025-09-23 11:02:01 × trickard_ quits (~trickard@cpe-49-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-09-23 11:02:11 caconym74787 joins (~caconym@user/caconym)
2025-09-23 11:02:44 arandombit joins (~arandombi@user/arandombit)
2025-09-23 11:05:44 Googulator68 joins (~Googulato@2a01-036d-0106-0744-4151-2ee3-78cb-4ad2.pool6.digikabel.hu)
2025-09-23 11:05:48 × Googulator quits (~Googulato@80-95-93-255.pool.digikabel.hu) (Quit: Client closed)
2025-09-23 11:05:58 trickard_ joins (~trickard@cpe-49-98-47-163.wireline.com.au)
2025-09-23 11:08:30 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 256 seconds)
2025-09-23 11:20:58 <tomsmeding> lxsameer: `ghc -fllvm -S`?
2025-09-23 11:21:42 <tomsmeding> ah no
2025-09-23 11:22:34 <tomsmeding> it seems not
2025-09-23 11:22:55 <tomsmeding> lxsameer: https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Driver/Phases.hs#L60
2025-09-23 11:23:05 trickard_ is now known as trickard
2025-09-23 11:23:53 <tomsmeding> `ghc -fllvm -ddump-llvm` dumps LLVM IR, but also proceeds with compilation; you can make it stop at assembly with -S, but not earlier it seems (except for -E, which is too early)
2025-09-23 11:25:35 × Googulator68 quits (~Googulato@2a01-036d-0106-0744-4151-2ee3-78cb-4ad2.pool6.digikabel.hu) (Quit: Client closed)
2025-09-23 11:25:38 Googulator90 joins (~Googulato@2a01-036d-0106-0744-4151-2ee3-78cb-4ad2.pool6.digikabel.hu)
2025-09-23 11:27:30 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Ping timeout: 244 seconds)
2025-09-23 11:30:33 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2025-09-23 11:30:39 × Googulator90 quits (~Googulato@2a01-036d-0106-0744-4151-2ee3-78cb-4ad2.pool6.digikabel.hu) (Quit: Client closed)
2025-09-23 11:30:48 Googulator90 joins (~Googulato@2a01-036d-0106-0744-4151-2ee3-78cb-4ad2.pool6.digikabel.hu)
2025-09-23 11:30:56 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
2025-09-23 11:31:32 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds)

All times are in UTC.