Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,803,238 events total
2025-10-23 16:35:46 Googulator27 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-23 16:39:23 Zemy_ joins (~Zemy@mobile-107-80-206-40.mycingular.net)
2025-10-23 16:40:21 Pozyomka joins (~pyon@user/pyon)
2025-10-23 16:40:45 Core9574 joins (~Zemy@2600:100c:b0a1:2d3a:2c76:e6ff:fe8d:547c)
2025-10-23 16:40:58 × Zemy quits (~Zemy@2600:100c:b0a1:2d3a:e430:6dff:fedb:39b4) (Read error: Connection reset by peer)
2025-10-23 16:43:38 × Zemy_ quits (~Zemy@mobile-107-80-206-40.mycingular.net) (Ping timeout: 248 seconds)
2025-10-23 16:44:38 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-23 16:48:26 × gustrb quits (~gustrb@191.243.134.87) (Ping timeout: 248 seconds)
2025-10-23 16:49:12 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-23 16:50:25 gustrb joins (~gustrb@191.243.134.87)
2025-10-23 16:50:36 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 256 seconds)
2025-10-23 16:51:27 × YoungFrog quits (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2025-10-23 16:51:58 Zemy joins (~Zemy@72.178.108.235)
2025-10-23 16:52:43 YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:3c4e:fa7a:e07a:5a51)
2025-10-23 16:54:18 × Core9574 quits (~Zemy@2600:100c:b0a1:2d3a:2c76:e6ff:fe8d:547c) (Ping timeout: 256 seconds)
2025-10-23 16:56:31 humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-10-23 16:57:20 Pozyomka joins (~pyon@user/pyon)
2025-10-23 16:58:16 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 256 seconds)
2025-10-23 17:00:02 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-23 17:01:24 humasect_ is now known as numberella
2025-10-23 17:04:13 × gustrb quits (~gustrb@191.243.134.87) (Ping timeout: 264 seconds)
2025-10-23 17:04:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-10-23 17:05:16 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2025-10-23 17:06:46 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 256 seconds)
2025-10-23 17:11:28 gustrb joins (~gustrb@191.243.134.87)
2025-10-23 17:13:33 × itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 256 seconds)
2025-10-23 17:15:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-23 17:16:53 Pozyomka joins (~pyon@user/pyon)
2025-10-23 17:19:13 × APic quits (apic@apic.name) (Ping timeout: 264 seconds)
2025-10-23 17:20:56 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-23 17:24:53 Tuplanolla joins (~Tuplanoll@91-159-187-167.elisa-laajakaista.fi)
2025-10-23 17:25:27 <chromoblob> so. i want to develop Linux apps in Haskell. if i use GHC, how do i distribute my app (e.g. what are dependencies)?
2025-10-23 17:27:07 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
2025-10-23 17:30:50 APic joins (~apic@apic.name)
2025-10-23 17:31:09 <haskellbridge> <Morj> It's about the same as C++: there are multiple options. If a distro packages your program, they choose one for you
2025-10-23 17:31:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-23 17:31:48 <haskellbridge> <Morj> For example, arch linux has a policy of dynamically linking even the haskell deps themselves. While I distribute either nix derivations, or completely statically linked binaries
2025-10-23 17:32:31 <chromoblob> ok, i want to have a fully static binary. how to?
2025-10-23 17:33:43 <EvanR> that's been the default in ghc for a long time
2025-10-23 17:34:04 <EvanR> build your haskell program and check the linkage of the resulting binary
2025-10-23 17:34:23 <chromoblob> okay, thanks
2025-10-23 17:35:39 <chromoblob> i don't have Linux at the moment. does it even not depend on libc?
2025-10-23 17:35:51 <haskellbridge> <Morj> That still links libc and gmp afaik, no?
2025-10-23 17:36:35 <haskellbridge> <Morj> To statically link system libraries themselves it was somewhat more involved, and I've lost an example >_>
2025-10-23 17:36:44 <EvanR> yeah it does
2025-10-23 17:36:47 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-23 17:37:03 <EvanR> though I'm not sure the wisdom of attempting to static link your own libc
2025-10-23 17:37:23 <EvanR> in the case of gmp you could avoid it by using the haskell version of the Integer implementation
2025-10-23 17:37:25 <chromoblob> philosophical reasons...
2025-10-23 17:37:45 <EvanR> the compiled libc is usually highly dependent on the OS
2025-10-23 17:38:04 <EvanR> it's the mediator between normal C code and the kernel
2025-10-23 17:38:10 AlexNoo_ is now known as AlexNoo
2025-10-23 17:38:21 <haskellbridge> <Morj> If you're just targeting linux and don't dlopen, you can linux musl and be happy, no?
2025-10-23 17:38:27 <chromoblob> i thought Linux had a standard ABI
2025-10-23 17:38:39 <EvanR> yes if you cross your fingers correctly
2025-10-23 17:38:53 <chromoblob> omg...
2025-10-23 17:38:53 × gustrb quits (~gustrb@191.243.134.87) (Quit: gustrb)
2025-10-23 17:38:57 <EvanR> binary distribution on linux is a hope and pray
2025-10-23 17:39:05 <haskellbridge> <Morj> Linux has a stable abi. The problem is your deps
2025-10-23 17:39:23 <EvanR> C standard library is also a stable API
2025-10-23 17:39:28 <EvanR> but here we are
2025-10-23 17:39:42 <chromoblob> note, A*B*I
2025-10-23 17:39:47 <haskellbridge> <Morj> Yeah, except for little unstable parts that someone will surely get their little library fingers in =)
2025-10-23 17:39:56 <EvanR> you traded "philosophical problems" for actual problems
2025-10-23 17:40:21 <haskellbridge> <Morj> In theory if everyone was a good citizen, you could dynamically link to glibc and have no problems
2025-10-23 17:40:38 <haskellbridge> <Morj> I think on BSDs they do just that, except it's another libc
2025-10-23 17:40:41 <EvanR> that's usually how I've seen it done
2025-10-23 17:40:45 <chromoblob> no, glibc is not Linux, it is GNU
2025-10-23 17:41:07 <chromoblob> if only Linux shipped a standard libc...
2025-10-23 17:41:29 <haskellbridge> <Morj> As I say, the syscalls are incredibly stable. You won't see a breakage in /them/
2025-10-23 17:41:31 <EvanR> there's a reason there's a standard API, so it should work with any implementation
2025-10-23 17:42:13 <EvanR> alternative libc implementations seem to be about memory usage, but you're on some random persons linux with a spinning cube desktop
2025-10-23 17:42:43 <haskellbridge> <Morj> If you write from scratch targeting linux without libc, you can fear no breakage. Unfortunately, you 1) usually don't have enough time for that, 2) want to integrate with the system, and some integrations require using shared libraries. One example of that is DNS resolution
2025-10-23 17:42:58 <EvanR> and it's a pain in the ass
2025-10-23 17:43:10 <EvanR> it's the ultimate form of "never use dependencies"
2025-10-23 17:43:26 <haskellbridge> <Morj> Go world went with rewriting the world, and it sort-of works for them. They produce completely static binaries, and it's very convenient to use
2025-10-23 17:43:59 <EvanR> they can just recompile if things change
2025-10-23 17:44:08 <EvanR> and redistribute
2025-10-23 17:44:20 <haskellbridge> <Morj> Anyway, to the original question of statically linking: I don't have a complete answer, but look into the docs of ghc options «-static -optl-static -staticlib»
2025-10-23 17:47:18 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-23 17:51:44 jmcantrell_ joins (~weechat@user/jmcantrell)
2025-10-23 17:51:44 × deptype_ quits (~deptype@124.123.188.12) (Remote host closed the connection)
2025-10-23 17:51:55 <EvanR> I'm also linked against the vdso
2025-10-23 17:52:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-23 18:01:20 × williu5 quits (~williu5@user/williu5) (Quit: WeeChat 4.1.1)
2025-10-23 18:02:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-23 18:04:47 ft joins (~ft@p4fc2aaeb.dip0.t-ipconnect.de)
2025-10-23 18:09:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-10-23 18:10:51 target_i joins (~target_i@user/target-i/x-6023099)
2025-10-23 18:11:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-23 18:11:51 lill joins (~lill@bras-base-gmlyon2002w-grc-37-74-12-9-150.dsl.bell.ca)
2025-10-23 18:15:58 × Googulator27 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-23 18:16:13 Googulator27 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-23 18:16:28 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-23 18:17:45 × tromp quits (~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-10-23 18:17:58 LainIwakura joins (~LainIwaku@user/LainIwakura)
2025-10-23 18:18:16 × lill quits (~lill@bras-base-gmlyon2002w-grc-37-74-12-9-150.dsl.bell.ca) (Quit: leaving)
2025-10-23 18:19:07 lill joins (~lill@bras-base-gmlyon2002w-grc-37-74-12-9-150.dsl.bell.ca)
2025-10-23 18:21:38 × arandombit quits (~arandombi@user/arandombit) (Remote host closed the connection)
2025-10-23 18:24:16 arandombit joins (~arandombi@user/arandombit)

All times are in UTC.