2021-05-21 13:15:35 +0200 <prop> i often run out of memory compiling dependencies on other machines, does this mean i don't have to recompile dependencies?
2021-05-21 13:15:40 +0200 <prop> i'm confused sorry
2021-05-21 13:15:41 +0200 <dminuoso> and in fact, nixpkgs is closely aligned with stack resolvers, so depending on your needs that might be too tight.
2021-05-21 13:15:44 +0200 <prop> like text and stuff
2021-05-21 13:16:12 +0200 <Hecate> dminuoso: https://paste.tomsmeding.com/hV3B01OO
2021-05-21 13:16:19 +0200fendor_(~fendor@178.115.59.240.wireless.dyn.drei.com) (Quit: Leaving)
2021-05-21 13:16:19 +0200Putonlalla(~sapekiis@it-cyan.it.jyu.fi)
2021-05-21 13:16:27 +0200 <Hecate> See the difference? :-P
2021-05-21 13:16:36 +0200Putonlalla(~sapekiis@it-cyan.it.jyu.fi) ()
2021-05-21 13:17:03 +0200 <__monty__> prop: Fwiw, I don't think haskell.nix has good (any?) UI around providing external deps yet. The question has come up a bunch recently.
2021-05-21 13:18:09 +0200 <Hecate> dminuoso: I realise I must have been confused by https://en.wikipedia.org/wiki/Continuation-passing_style#CPS_in_Haskell
2021-05-21 13:18:22 +0200Putonlalla(~sapekiis@it-cyan.it.jyu.fi)
2021-05-21 13:18:24 +0200 <dminuoso> prop: and regarding cross compilation, this is one of the reasons haskell.nix exists in the first place. its an extreme PITA to do cross compilation with (call)cabal2nix
2021-05-21 13:18:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-05-21 13:18:43 +0200Putonlalla(~sapekiis@it-cyan.it.jyu.fi) (Client Quit)
2021-05-21 13:19:01 +0200Putonlalla(~sapekiis@it-cyan.it.jyu.fi)
2021-05-21 13:19:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-21 13:19:58 +0200 <dminuoso> prop: If you just want to cross compile for a single target, its not an issue though.
2021-05-21 13:20:12 +0200 <dminuoso> but if you want to have a matrix of targets, then you will want to start with haskell.nix right off the bat
2021-05-21 13:20:42 +0200 <prop> what do you mean by cross compile for a single target? i'd like it to run on mac os because my friend has that and also fedora because that's my laptop and ubuntu because that's my server
2021-05-21 13:21:09 +0200 <dminuoso> say you want to ship a binary for various combiations of os/arch/flags
2021-05-21 13:21:30 +0200 <dminuoso> See https://input-output-hk.github.io/haskell.nix/motivation/
2021-05-21 13:21:41 +0200 <__monty__> Tbh, I'd say go with haskell.nix from the start regardless. You do have to expect some learning curve though.
2021-05-21 13:21:56 +0200 <dminuoso> personally Im quite happy with callCabal2nix so far.
2021-05-21 13:22:19 +0200 <dminuoso> but my packages happen to compile with stackage resolver versions..
2021-05-21 13:22:32 +0200 <dminuoso> And I dont mind the other issues that spawned haskell.nix, so..
2021-05-21 13:24:48 +0200 <prop> what exactly is in the binary cache? is it just GHC or do i get the packages i rely upon built for free?
2021-05-21 13:24:54 +0200 <prop> sorry if it is a bad question
2021-05-21 13:25:07 +0200 <__monty__> With Nixpkgs infra packages are built.
2021-05-21 13:25:22 +0200 <__monty__> With haskell.nix you get less caching.
2021-05-21 13:27:27 +0200samhh(~samhh@90.252.103.244) (Quit: samhh)
2021-05-21 13:27:34 +0200mike999999x(~mike99999@85.132.254.158) (Remote host closed the connection)
2021-05-21 13:27:40 +0200samhh(~samhh@90.252.103.244)
2021-05-21 13:27:41 +0200petersenjuhp
2021-05-21 13:27:42 +0200samhh(~samhh@90.252.103.244) (Client Quit)
2021-05-21 13:27:54 +0200 <prop> ahh so haskell.nix is to make sure that you can actually build it across multiple platforms. then cabal2nix is for building the same package on the same linux distro, possibly speeding it up?
2021-05-21 13:28:03 +0200juhppetersen
2021-05-21 13:28:33 +0200 <__monty__> No.
2021-05-21 13:28:36 +0200samhh(~samhh@90.252.103.244)
2021-05-21 13:29:16 +0200petersenjuhp
2021-05-21 13:29:32 +0200 <__monty__> Nixpkgs builds a mix of stackage and hackage. Haskell.nix provides a lot more flexibility. Consequence of that is that it's easy to deviate from what's in the cache, which means you can end up building more stuff.
2021-05-21 13:29:52 +0200exzeta(~exzeta@client-8-84.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-05-21 13:30:08 +0200exzeta(~exzeta@client-8-84.eduroam.oxuni.org.uk)
2021-05-21 13:30:27 +0200 <dminuoso> prop: Roughly, cabal2nix turns a single cabal file straight into a nix derivation
2021-05-21 13:30:31 +0200samhh(~samhh@90.252.103.244) (Client Quit)
2021-05-21 13:30:41 +0200 <dminuoso> prop: haskell.nix however, rather turns a cabal build plan into a nix derivation, amongst other things.
2021-05-21 13:31:43 +0200 <dminuoso> The reason cabal2nix works at all this way, is because in nixpkgs you have - like in stackage resolvers - only one version for each package available in nixpkgs
2021-05-21 13:32:06 +0200 <__monty__> Reason I switched to haskell.nix is I got tired of manually overriding package versions and the like.
2021-05-21 13:32:19 +0200 <dminuoso> so if you want to fiddle with constraints, that means you start overlaying for each darn package, and that becomes a lot of work.
2021-05-21 13:32:28 +0200 <__monty__> Exactly.
2021-05-21 13:33:00 +0200 <__monty__> If you use a significant number of packages that aren't in stackage you run into that sooner rather than later.
2021-05-21 13:33:16 +0200malvo(~malvo@malvo.org)
2021-05-21 13:34:15 +0200 <prop> hmm, it sounds pretty complex thanks. i think i'll go with haskell.nix so i can fiddle
2021-05-21 13:34:43 +0200Pseudonym(~Pseudonym@118.211.96.219)
2021-05-21 13:35:06 +0200 <dminuoso> __monty__: Here's my favourite issue: https://github.com/NixOS/nixpkgs/issues/26561
2021-05-21 13:35:08 +0200 <dminuoso> :P
2021-05-21 13:37:51 +0200 <maerwald> that sums up nix overall
2021-05-21 13:38:04 +0200 <maerwald> rabbit holes of complexity
2021-05-21 13:38:29 +0200 <dminuoso> Yeah, it is quite representative for nix.
2021-05-21 13:38:46 +0200samhh(~samhh@90.252.103.244)
2021-05-21 13:41:23 +0200samhh(~samhh@90.252.103.244) (Client Quit)
2021-05-21 13:42:26 +0200python476(~user@88.160.31.174) (Ping timeout: 245 seconds)
2021-05-21 13:44:39 +0200Guest78(Guest78@107.161.19.109)
2021-05-21 13:47:03 +0200 <prop> could the compiler serialise modules and cache that? say you don't have to type check or anything, just do codegen and stuff
2021-05-21 13:47:11 +0200 <prop> it seems like a lot of effort though :|
2021-05-21 13:48:47 +0200geekosaur(~allbery_b@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2021-05-21 13:48:53 +0200irc_user(uid423822@id-423822.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-05-21 13:49:08 +0200geekosaur(~allbery_b@069-135-003-034.biz.spectrum.com)
2021-05-21 13:52:11 +0200juhp(~juhp@128.106.188.199) (Quit: juhp)
2021-05-21 13:52:24 +0200juhp(~juhp@128.106.188.199)
2021-05-21 13:53:09 +0200Raito_Bezarius(~Raito@2a01:e0a:5f9:9681:a0a0:bb76:611f:9da7)
2021-05-21 13:57:06 +0200 <merijn> prop: Metadata is serialised already
2021-05-21 13:57:20 +0200 <merijn> prop: Or you meant *inside* Nix?
2021-05-21 13:57:41 +0200alexander(~alexander@user/alexander)
2021-05-21 13:58:33 +0200Raito_Bezarius(~Raito@2a01:e0a:5f9:9681:a0a0:bb76:611f:9da7) (Changing host)
2021-05-21 13:58:33 +0200Raito_Bezarius(~Raito@user/raito-bezarius/x-8759638)
2021-05-21 13:59:07 +0200 <prop> it probably already does. i was wondering if you actually need to parse a package like text's source code and type check, desugar, or if you just get core with some metadata
2021-05-21 13:59:22 +0200 <prop> don't worry i'll look it up
2021-05-21 13:59:26 +0200 <prop> i'm sure the internet has answers
2021-05-21 14:00:06 +0200 <merijn> prop: GHC builds regular libraries (same you'd get from C/C++/etc.), but the package database also has metadata (module names, types of exported symbols, etc.)
2021-05-21 14:00:29 +0200 <prop> thank you :)))
2021-05-21 14:00:32 +0200prop(hugh@107.161.19.109) (Quit: Connection closed)
2021-05-21 14:00:33 +0200 <merijn> prop: For inlinable functions it also has preprocessed source to implement inlining while compiling other packages
2021-05-21 14:01:46 +0200shiraeeshi(~shiraeesh@46.34.207.108)
2021-05-21 14:03:53 +0200malvo(~malvo@malvo.org) (Ping timeout: 252 seconds)
2021-05-21 14:04:36 +0200malvo(~malvo@malvo.org)
2021-05-21 14:06:58 +0200xwx(~george@user/george)
2021-05-21 14:09:16 +0200nsilv(~nsilv@212.103.198.210)
2021-05-21 14:10:50 +0200nsilv(~nsilv@212.103.198.210) (Client Quit)
2021-05-21 14:11:04 +0200nsilv(~nsilv@212.103.198.210)
2021-05-21 14:11:08 +0200Guest78(Guest78@107.161.19.109) (Quit: Connection closed)
2021-05-21 14:12:59 +0200azeem34(azeem@107.161.19.109)
2021-05-21 14:17:23 +0200python476(~user@88.160.31.174)
2021-05-21 14:18:50 +0200alloca(~suppi@141.226.14.43) (Quit: WeeChat 2.8)
2021-05-21 14:19:05 +0200alloca(~suppi@141.226.14.43)
2021-05-21 14:19:45 +0200azeem34azeem
2021-05-21 14:20:14 +0200alloca(~suppi@141.226.14.43) (Client Quit)
2021-05-21 14:20:58 +0200ddellacosta(~ddellacos@86.106.121.32)
2021-05-21 14:22:00 +0200heath(~heath@68.68.64.38)
2021-05-21 14:22:57 +0200lbseale(~lbseale@ip72-194-54-201.sb.sd.cox.net)