Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→
Page 1 .. 794 795 796 797 798 799 800 801 802 803 804 .. 18022
1,802,186 events total
2021-07-05 11:16:28 <int-e> Hecate: fair enough
2021-07-05 11:17:02 <hseg> trying to understand the code, don't see the problem
2021-07-05 11:18:06 <hseg> ... wait, how is it even syntactically correct?
2021-07-05 11:18:07 <int-e> (I'd actually be more worried about silently chaning from GND to stock derivations)
2021-07-05 11:18:19 <hseg> Foo and Bar share constructors?
2021-07-05 11:18:39 <int-e> oh, hah
2021-07-05 11:19:11 <hseg> so mod s/Foo/Bar on that RHS...
2021-07-05 11:19:45 <hseg> so we have Foo :: Type -> Type sending \(a :: Type) -> Maybe (Last a)
2021-07-05 11:19:46 × lep quits (~lep@94.31.86.183) (Ping timeout: 258 seconds)
2021-07-05 11:19:51 <int-e> (I didn't notice. But the compiler would complain.)
2021-07-05 11:20:22 <hseg> and Bar :: Maybe (First Type) -> Type sending \(a :: Maybe (First Type)) -> Maybe (First a) ?
2021-07-05 11:21:46 <hseg> ... still don't see how derivingvia is better here?
2021-07-05 11:22:35 <hseg> unless Hecate, you mean that the redundancy of newtype N = N T deriving C via T makes GHC complain if you change one of the T's without the other?
2021-07-05 11:22:54 <int-e> hseg: AIUI, Hecate wants to force themselves to think about the instances when they change the type's representation.
2021-07-05 11:22:55 <hseg> and that's better than GND's silent acceptance of the new representation?
2021-07-05 11:23:14 <int-e> And if deriving via helps with that (and I see how it could)... just go for it...
2021-07-05 11:23:25 <int-e> I've shelved it under "idiosyncratic" :-P
2021-07-05 11:23:33 <hseg> :P
2021-07-05 11:23:56 lep joins (~lep@94.31.86.183)
2021-07-05 11:24:36 <hseg> I use deriving via over stock deriving bc except in a couple of cases, it allows me not to think too much
2021-07-05 11:24:40 <Hecate> yes the pop-up would be good actually int-e :)
2021-07-05 11:25:04 <Hecate> hseg: ah, that's funny I usually don't replace stock by via
2021-07-05 11:25:05 <hseg> and combine the stock-derivable classes with the rest in the deriving clause
2021-07-05 11:25:31 <hseg> the only case that really needs stock instead of via is Show/Read
2021-07-05 11:25:46 <hseg> Eq, Ord, ... work perfectly with via
2021-07-05 11:26:06 <hseg> and if you don
2021-07-05 11:26:21 <hseg> 't care about the newtype wrapper missing, Show/Read also works
2021-07-05 11:26:36 <haskl> how do haskell releases work if i wanna make a package for debian, for example?
2021-07-05 11:26:48 <haskl> but i don't think it'd be appropriate for hackage or whatever
2021-07-05 11:27:37 <haskl> should i just be including the source and telling the debian package to compile it? or... dynamically linked binaries... and... something?
2021-07-05 11:28:37 <__monty__> haskl: Whether or not to link dynamically is a topic with divided opinions, so I wouldn't call static linking "bad practice" outright. Haskell doesn't really benefit from the advantages of dynamic linking anyway, with some exceptions like glibc.
2021-07-05 11:28:39 <int-e> I'm really wondering about the premise... why would it be appropriate for Debian but not for hackage?
2021-07-05 11:29:39 <__monty__> End-user applications may not get a ton of value out of being on hackage. I'd say it's a choice.
2021-07-05 11:29:45 <hseg> the only real benefit I've heard for dynamic linking that applies to haskell is the "patch once to fix vulnerability" one
2021-07-05 11:30:17 lep is now known as test
2021-07-05 11:30:34 <__monty__> Does that apply though? Don't haskell libraries still have to be built for each dependent because of all the inlining GHC does?
2021-07-05 11:30:36 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-07-05 11:30:46 <hseg> which while true, is asking for a large cost in the good case to avoid (what intuitively seem to me to be) small costs in the bad cases
2021-07-05 11:30:47 test is now known as Guest5325
2021-07-05 11:30:48 dragestil joins (~quassel@user/dragestil)
2021-07-05 11:31:01 <hseg> __monty__: not if libraries are built statically
2021-07-05 11:32:04 <__monty__> Wait, if libraries are built statically they don't have to be rebuilt for each dependent? But you said that's the one advantage dynamic linking has for haskell?
2021-07-05 11:32:08 Guest5325 is now known as lep
2021-07-05 11:32:19 <hseg> oops s/static/dynamic
2021-07-05 11:32:25 <hseg> brain fart, sorry
2021-07-05 11:32:36 <int-e> hseg: Except that there's cross-package inlining by default in Haskell... also ABIs tend to change when recompiling. (Though work on stable ABIs exists... I should look at that in more detail some day.)
2021-07-05 11:32:52 <hseg> even when building dynamically?
2021-07-05 11:33:26 <int-e> when doing w worker/wrapper split, the worker is exposed in the ABI.
2021-07-05 11:33:37 <int-e> changing the code may result in different splits
2021-07-05 11:34:14 <__monty__> hseg: I think so. Isn't that why the Arch Haskell situation is so bad? They insist on dynamic linking but it has almost no benefit whatsoever and the GHC they provide still links statically by default?
2021-07-05 11:34:22 <int-e> So actually the "A" in "ABI" is *not* applicable.
2021-07-05 11:34:36 <hseg> ah... you mean that the patched lib would have a different ABI, which means you'd need to recompile dependents anyway?
2021-07-05 11:35:24 <int-e> hseg: That can easily happen, yes. And broken code may be inlined in the application (or another library).
2021-07-05 11:36:44 <hseg> ah, so a) can't hotpatch dlls and b) bad dlls can infect dependent apps by inlining, so can't only fix dll?
2021-07-05 11:36:53 <int-e> Probably the main benefit of shared libraries is a much faster ghci. Executables get smaller, but disk space is so cheap... it hardly matters.
2021-07-05 11:37:13 <hseg> yeah, in that case I can see why ghc goes for static
2021-07-05 11:38:36 × dunkeln quits (~dunkeln@188.71.194.238) (Ping timeout: 252 seconds)
2021-07-05 11:38:47 <haskl> int-e, i was told if i'm just making an end-user application, like a command line tool (say a static site builder), to not release it on hackage or the like
2021-07-05 11:39:30 <haskl> hseg, yes i heard the security one and also i heard that distro maintainers hat eyou for doign static linking frmo the musl people
2021-07-05 11:39:57 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-07-05 11:42:05 <__monty__> haskl: I doubt they care about the haskell dependencies though. Since dynamic linking doesn't buy you anything there. GlibC is dynamically linked by default.
2021-07-05 11:42:17 <__monty__> And I think libgmp as well, not sure though.
2021-07-05 11:43:13 <hseg> haskl: oh? what's this from musl?
2021-07-05 11:44:41 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 258 seconds)
2021-07-05 11:45:56 <haskl> well i'm building static binaries with alpine and depends from apk or whatever its package manager is called
2021-07-05 11:46:03 <haskl> here's what i wrote to manage releases:
2021-07-05 11:46:21 <haskl> https://github.com/hyperrealgopher/burrow/blob/master/.github/workflows/release.yml
2021-07-05 11:46:41 dunkeln joins (~dunkeln@188.71.194.238)
2021-07-05 11:47:26 × Franciman quits (~francesco@openglass.it) (Quit: WeeChat 2.3)
2021-07-05 11:50:51 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-05 11:51:47 × Vajb quits (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Quit: Quit)
2021-07-05 11:51:58 Vajb joins (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-05 11:53:51 × o1lo01ol1o quits (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Remote host closed the connection)
2021-07-05 11:55:07 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:5061:15ea:118b:e58d) (Remote host closed the connection)
2021-07-05 11:55:08 fendor_ joins (~fendor@178.165.131.8.wireless.dyn.drei.com)
2021-07-05 11:55:30 argento joins (~argent0@168-227-96-53.ptr.westnet.com.ar)
2021-07-05 11:56:08 favonia joins (~favonia@user/favonia)
2021-07-05 11:57:53 o1lo01ol1o joins (~o1lo01ol1@bl7-89-228.dsl.telepac.pt)
2021-07-05 11:59:04 × maf654321 quits (~maf654321@user/maf654321) (Quit: Textual IRC Client: www.textualapp.com)
2021-07-05 11:59:47 × o1lo01ol1o quits (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Remote host closed the connection)
2021-07-05 12:00:13 o1lo01ol1o joins (~o1lo01ol1@bl7-89-228.dsl.telepac.pt)
2021-07-05 12:01:24 GIANTWORLDKEEPER joins (~pjetcetal@128-71-13-182.broadband.corbina.ru)
2021-07-05 12:03:41 Chobbes joins (~Chobbes@user/chobbes)
2021-07-05 12:04:22 × o1lo01ol1o quits (~o1lo01ol1@bl7-89-228.dsl.telepac.pt) (Ping timeout: 246 seconds)
2021-07-05 12:04:40 o1lo01ol1o joins (~o1lo01ol1@bl7-89-228.dsl.telepac.pt)
2021-07-05 12:07:07 Pickchea joins (~private@user/pickchea)
2021-07-05 12:10:36 GIANTWORLDKEEPR_ joins (~pjetcetal@128-71-13-182.broadband.corbina.ru)
2021-07-05 12:10:39 × GIANTWORLDKEEPER quits (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Quit: EXIT)
2021-07-05 12:11:05 lortabac joins (~lortabac@95.138.56.124)
2021-07-05 12:12:27 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-05 12:12:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-05 12:13:18 neo joins (~neo3@136.144.35.153)
2021-07-05 12:15:44 Feuermagier joins (~Feuermagi@user/feuermagier)
2021-07-05 12:15:55 × neo1 quits (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 246 seconds)
2021-07-05 12:16:34 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-07-05 12:16:58 × Feuermagier_ quits (~Feuermagi@154.28.188.87) (Ping timeout: 246 seconds)
2021-07-05 12:17:34 zeenk joins (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3)
2021-07-05 12:18:18 stefan-_ joins (~cri@42dots.de)
2021-07-05 12:19:02 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 272 seconds)
2021-07-05 12:19:32 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)

All times are in UTC.