2026/02/05

Newest at the top

2026-02-05 22:29:33 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-05 22:29:02 +0100ringo_(~ringo@157.230.117.128) ringo_
2026-02-05 22:25:14 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-02-05 22:23:55 +0100pavonia(~user@user/siracusa) siracusa
2026-02-05 22:22:03 +0100ringo_(~ringo@157.230.117.128) (Ping timeout: 244 seconds)
2026-02-05 22:20:04 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds)
2026-02-05 22:19:06 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-02-05 22:16:33 +0100 <tomsmeding> which is why cabal sometimes takes a while doing it :p
2026-02-05 22:15:05 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-02-05 22:13:46 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-05 22:13:38 +0100 <tomsmeding> if he's talking about version resolution, yes, that's constraint solving on a language expressive enough to easily encode SAT
2026-02-05 22:12:24 +0100 <EvanR> "
2026-02-05 22:12:23 +0100 <EvanR> "The problem minimal version selection solves is NL-complete
2026-02-05 22:11:59 +0100 <EvanR> though this random article about the theory seems interesting for its own sake https://research.swtch.com/vgo-mvs
2026-02-05 22:10:34 +0100 <EvanR> \o/
2026-02-05 22:10:30 +0100 <tomsmeding> luckily I don't write go :)
2026-02-05 22:10:24 +0100 <tomsmeding> ah
2026-02-05 22:10:22 +0100 <EvanR> influencing the result
2026-02-05 22:10:15 +0100 <EvanR> pkg-config giving different results for stuff not written in go
2026-02-05 22:10:14 +0100 <tomsmeding> my use cases?
2026-02-05 22:09:55 +0100 <EvanR> apparently go has a minimal version selection algorithm instead of a freeze file, and I'm not sure this is enough to deal with some of your use cases
2026-02-05 22:06:16 +0100jmcantrell_jmcantrell
2026-02-05 22:03:02 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-02-05 22:02:46 +0100 <mauke> (or a snapshot file in carton)
2026-02-05 22:02:36 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-02-05 22:00:49 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 260 seconds)
2026-02-05 22:00:00 +0100 <tomsmeding> (this idea of a "freeze file" is also called a "lock file" in different ecosystems; see also: package-lock.json, Cargo.lock, perhaps go.sum but I'm not sure I recall correctly there)
2026-02-05 21:58:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-05 21:57:44 +0100wickedjargon(~user@2605:8d80:5430:4910:f62b:7e78:f176:a13) wickedjargon
2026-02-05 21:57:06 +0100 <tomsmeding> well this was your idea :p
2026-02-05 21:56:57 +0100 <EvanR> you keep coming up with the best ideas!
2026-02-05 21:56:39 +0100 <EvanR> yeah
2026-02-05 21:56:34 +0100 <tomsmeding> and do that in Setup.hs, and change dependencies based on it?
2026-02-05 21:56:11 +0100 <EvanR> get the phase of the moon as a bespoke sum type, or a float
2026-02-05 21:55:21 +0100 <EvanR> wait that needs to be an acme package
2026-02-05 21:55:19 +0100 <tomsmeding> or because system libraries changed and some pkg-config dependencies are now available or not available, different flags/packages are selected
2026-02-05 21:54:55 +0100 <tomsmeding> :)
2026-02-05 21:54:53 +0100 <tomsmeding> well, if one does `cabal update`, cabal may select newer versions
2026-02-05 21:54:43 +0100 <EvanR> it checks the phase of the moon
2026-02-05 21:54:26 +0100 <EvanR> I see, because without a freeze file cabal might come up with a different solution set in a different circumstances?
2026-02-05 21:47:44 +0100yin(~zero@user/zero) zero
2026-02-05 21:46:56 +0100merijn(~merijn@62.45.136.136) (Ping timeout: 240 seconds)
2026-02-05 21:42:53 +0100 <tomsmeding> `cabal freeze` emits a "freeze file" with such constraints for everything (to make the build deterministic), and it emits any. constraints
2026-02-05 21:42:29 +0100 <tomsmeding> writing `constraints: foo >= 2` constrains the main dependency tree only; writing `constraints: any.foo >= 2` also constrains build tool dependencies
2026-02-05 21:42:19 +0100merijn(~merijn@62.45.136.136) merijn
2026-02-05 21:42:06 +0100 <tomsmeding> it's part of the syntax of a `constraints:` block in a cabal.project file
2026-02-05 21:41:54 +0100 <tomsmeding> (`cabal freeze`)
2026-02-05 21:41:51 +0100 <tomsmeding> ah, then that was not a helpful reference
2026-02-05 21:41:39 +0100 <EvanR> I'll have to read up on this freeze file you speak of
2026-02-05 21:41:05 +0100 <tomsmeding> (I learned this the hard way)