Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2020-11-24 19:22:44 <merijn> glguy: What's the benefit over shipping 100+ haskell library packages used by pandoc vs just shipping staticall linked pandoc?
2020-11-24 19:22:59 <Clint> we do ship statically linked pandoc
2020-11-24 19:23:00 <glguy> merijn: ideally the community could come up with two executables worth installing?
2020-11-24 19:23:03 <Clint> but we need the libraries to build them
2020-11-24 19:23:06 <merijn> glguy: It just pisses of users
2020-11-24 19:23:21 <merijn> glguy: Two executables that happen to share the exact transitive dependency resolution?
2020-11-24 19:23:36 <glguy> No, not exact, just overlapping
2020-11-24 19:23:43 <merijn> glguy: Because if they depend (transitively) on different versions of the same lib, you still gotta build things
2020-11-24 19:23:58 <Clint> that is why stackage makes things easier
2020-11-24 19:24:18 <merijn> glguy: The main advantage in the C world is that you can independently update libraries, but GHC doesn't allow that anyway
2020-11-24 19:24:23 kritzefitz joins (~kritzefit@212.86.56.80)
2020-11-24 19:24:57 <maerwald> Clint: ?
2020-11-24 19:25:21 <merijn> Clint: Stack makes things *simpler* (it's failure model for build plans is just "it works" or "it does not, tough shit") not *easier*.
2020-11-24 19:25:42 <merijn> And in the 2nd case, good luck ever fixing it to work
2020-11-24 19:25:49 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
2020-11-24 19:25:50 <glguy> It makes things easier for packagers if the developers are all targetting the same resolver, though
2020-11-24 19:25:56 <dminuoso> The only mentality where all of this works is nix.
2020-11-24 19:25:57 <ezzieyguywuf> maerwald: like I said, the ghc installation isn't really an issue, I can use portage to install the upstream binary
2020-11-24 19:25:59 <merijn> glguy: Sure
2020-11-24 19:26:17 <merijn> glguy: And if we all just use a single programming language and compiler for everything optimisation would be a breeze! :D
2020-11-24 19:26:18 <maerwald> I don't think gentoo ever followed stackage though
2020-11-24 19:26:28 <ezzieyguywuf> I guess it's the cabal-install that's an issue, since either (a) y'all don't provide a binary, or (b) gentoo doesn't provide an option to install said binary
2020-11-24 19:26:40 <merijn> dminuoso: s/where all of this works/where all of this works *in theory*
2020-11-24 19:26:43 <ezzieyguywuf> maerwald: what do you mean "followed stackage"?
2020-11-24 19:26:53 <maerwald> ezzieyguywuf: used the version defined in stackage
2020-11-24 19:26:56 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-24 19:26:57 × tom__ quits (~tom@2a00:23c8:970a:3501:38a6:4546:df42:c1cb) (Read error: Connection reset by peer)
2020-11-24 19:26:59 <dminuoso> merijn: well it works in practice too, largely. Of course its not perfect, but tell me one package manager that is.
2020-11-24 19:28:03 <ezzieyguywuf> you're right, it's getting its binary from https://slyfox.uni.cx for some reason...
2020-11-24 19:28:22 <maerwald> that's not what I meant, but anyway
2020-11-24 19:28:49 <ezzieyguywuf> oh wait nvm, it comes from downloads.haskel.org
2020-11-24 19:28:49 <maerwald> https://www.stackage.org/
2020-11-24 19:28:50 Franciman joins (~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-24 19:28:57 <maerwald> stackage is just a package set
2020-11-24 19:29:08 <maerwald> NixOS follows it
2020-11-24 19:29:17 <maerwald> most distros don't
2020-11-24 19:29:40 × Lycurgus quits (~niemand@98.4.114.74) (Ping timeout: 260 seconds)
2020-11-24 19:30:11 <Clint> Debian tries
2020-11-24 19:30:16 <Clint> but developers don't make that easy
2020-11-24 19:30:51 <maerwald> they start packaging libs too? *sigh*
2020-11-24 19:30:57 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
2020-11-24 19:31:08 <Clint> there's no other way to build haskell apps
2020-11-24 19:31:16 <maerwald> on linux there is
2020-11-24 19:31:22 <merijn> Clint: Sure there is. You just build the binary and ship it, done
2020-11-24 19:31:23 <maerwald> debian is not a source distro
2020-11-24 19:31:30 <maerwald> they don't need to mess with libs
2020-11-24 19:31:42 <sshine> maerwald, they've been doing that for a long time.
2020-11-24 19:31:49 <merijn> Clint: Why would you need to package each Haskell library independently?
2020-11-24 19:32:03 <sshine> merijn, so you don't need to compile them.
2020-11-24 19:32:10 <sshine> merijn, so they work together.
2020-11-24 19:32:15 <merijn> sshine: Distros *already* ship binaries
2020-11-24 19:32:21 <sshine> merijn, it's a binary snapshot :) that idea in itself isn't bad.
2020-11-24 19:32:31 <merijn> sshine: So why not ship the final executable and call it a day
2020-11-24 19:32:42 × knupfer quits (~Thunderbi@i59F7FF7E.versanet.de) (Ping timeout: 272 seconds)
2020-11-24 19:32:45 <sshine> merijn, aren't we talking libraries?
2020-11-24 19:32:52 <Clint> why would you hide all the libraries you've already packaged?
2020-11-24 19:33:05 <maerwald> hint: dynamic linking doesn't really work well in haskell and doesn't give you the same capabilities C does
2020-11-24 19:33:09 <sshine> Clint, who is hiding libraries?
2020-11-24 19:33:13 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-24 19:33:13 <merijn> sshine: Installing pandoc installs 100+ dependencies that all update super frequently
2020-11-24 19:33:18 <Clint> sshine: merijn is objecting to shipping libraries
2020-11-24 19:33:20 francesco_ joins (~francesco@host-82-54-193-143.retail.telecomitalia.it)
2020-11-24 19:33:28 <maerwald> *for haskell*
2020-11-24 19:33:45 × Franciman quits (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 240 seconds)
2020-11-24 19:33:46 <sshine> Clint, via debian/ubuntu's package manager?
2020-11-24 19:33:50 <sshine> Clint, yeah that's crazy. :P
2020-11-24 19:33:52 <merijn> sshine: It's causing *massive* amounts of frustration and pissing of Arch/etc. users and none of them blame their distro, they all blame Haskell
2020-11-24 19:34:09 <merijn> Clint: I'm objecting to shipping *haskell* libraries
2020-11-24 19:34:36 <merijn> It's dumb. There's 0 actual reuse happening, it triggers tons of cascade updates, pisses off users, and has no pragmatic benefits
2020-11-24 19:34:41 <Clint> right, so we would need to build them and then hide them to not ship them
2020-11-24 19:35:02 <Clint> which is absurd
2020-11-24 19:35:02 <sshine> merijn, I'm saying the intent is good. but I don't think that snapshot-based OS package managers are fit for frequent micro-updates. I think it creates an unnatural discrepancy between those who make libraries and those who use them via the OS.
2020-11-24 19:35:29 <merijn> Clint: No, why would you "need to hide them" just ship the final pandoc/whatever executable and don't ship any libraries at all, no need to hide them
2020-11-24 19:35:46 <glguy> libraries can do things like install supporting data files and such
2020-11-24 19:36:07 <glguy> it's not just a matter of copying an executable, right?
2020-11-24 19:36:29 <Clint> merijn: because you need the build dependencies packaged to build the final pandoc/whatever executable
2020-11-24 19:36:52 <merijn> glguy: 1) packagers already control where Cabal puts those files, so they just need to ship those too, which is the same like shipping anything else 2) we should fix cabal-install's prefix independence (which is on my to do list)
2020-11-24 19:37:37 <merijn> Clint: No you don't, you can just cabal build the pandoc executable without packaging dependencies. Just use a freeze file/local mirror of package versions if you care about auditing (not that anyone is auditing Haskell libs now)
2020-11-24 19:37:51 ClaudiusMaximus joins (~claude@198.123.199.146.dyn.plus.net)
2020-11-24 19:37:51 × ClaudiusMaximus quits (~claude@198.123.199.146.dyn.plus.net) (Changing host)
2020-11-24 19:37:51 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
2020-11-24 19:37:56 christo joins (~chris@81.96.113.213)
2020-11-24 19:38:27 <Clint> merijn: not in debian, you can't
2020-11-24 19:38:37 <merijn> Clint: Why not?
2020-11-24 19:38:44 chaosmasttter joins (~chaosmast@p200300c4a7107e01bc10c915608759f8.dip0.t-ipconnect.de)
2020-11-24 19:38:47 <Clint> because all build dependencies have to be packaged and reproducible
2020-11-24 19:38:58 <Clint> and buildable without network
2020-11-24 19:38:59 <merijn> That's not "can't" that's "won't" and that's on them
2020-11-24 19:39:07 <merijn> Clint: You can build without network fine
2020-11-24 19:39:22 <merijn> cabal-install doesn't need a network
2020-11-24 19:39:26 <Clint> right, i can do whatever i want if i don't care about distribution rules
2020-11-24 19:39:43 <Clint> but you're all outraged because people are following the rules you don't care about
2020-11-24 19:40:00 × conal quits (~conal@66.115.157.138) (Quit: Computer has gone to sleep.)
2020-11-24 19:40:19 <merijn> Clint: If people self-impose dumb restrictions they don't get to bitch about the effect of those restrictions
2020-11-24 19:40:23 <merijn> It's one or the other
2020-11-24 19:40:24 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-11-24 19:40:34 <glguy> This feels like a more hostile conversation than it needs to be
2020-11-24 19:40:47 <Clint> that's true
2020-11-24 19:40:54 <Clint> i will abscond
2020-11-24 19:41:17 <sshine> can't have that self-imposed dumb bitching. ;)

All times are in UTC.