Logs: liberachat/#haskell
| 2021-05-21 11:15:35 | <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 11:15:40 | <prop> | i'm confused sorry |
| 2021-05-21 11:15:41 | <dminuoso> | and in fact, nixpkgs is closely aligned with stack resolvers, so depending on your needs that might be too tight. |
| 2021-05-21 11:15:44 | <prop> | like text and stuff |
| 2021-05-21 11:16:12 | <Hecate> | dminuoso: https://paste.tomsmeding.com/hV3B01OO |
| 2021-05-21 11:16:19 | × | fendor_ quits (~fendor@178.115.59.240.wireless.dyn.drei.com) (Quit: Leaving) |
| 2021-05-21 11:16:19 | → | Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi) |
| 2021-05-21 11:16:27 | <Hecate> | See the difference? :-P |
| 2021-05-21 11:16:36 | ← | Putonlalla parts (~sapekiis@it-cyan.it.jyu.fi) () |
| 2021-05-21 11:17:03 | <__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 11:18:09 | <Hecate> | dminuoso: I realise I must have been confused by https://en.wikipedia.org/wiki/Continuation-passing_style#CPS_in_Haskell |
| 2021-05-21 11:18:22 | → | Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi) |
| 2021-05-21 11:18:24 | <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 11:18:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 2021-05-21 11:18:43 | × | Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (Client Quit) |
| 2021-05-21 11:19:01 | → | Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi) |
| 2021-05-21 11:19:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-05-21 11:19:58 | <dminuoso> | prop: If you just want to cross compile for a single target, its not an issue though. |
| 2021-05-21 11:20:12 | <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 11:20:42 | <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 11:21:09 | <dminuoso> | say you want to ship a binary for various combiations of os/arch/flags |
| 2021-05-21 11:21:30 | <dminuoso> | See https://input-output-hk.github.io/haskell.nix/motivation/ |
| 2021-05-21 11:21:41 | <__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 11:21:56 | <dminuoso> | personally Im quite happy with callCabal2nix so far. |
| 2021-05-21 11:22:19 | <dminuoso> | but my packages happen to compile with stackage resolver versions.. |
| 2021-05-21 11:22:32 | <dminuoso> | And I dont mind the other issues that spawned haskell.nix, so.. |
| 2021-05-21 11:24:48 | <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 11:24:54 | <prop> | sorry if it is a bad question |
| 2021-05-21 11:25:07 | <__monty__> | With Nixpkgs infra packages are built. |
| 2021-05-21 11:25:22 | <__monty__> | With haskell.nix you get less caching. |
| 2021-05-21 11:27:27 | × | samhh quits (~samhh@90.252.103.244) (Quit: samhh) |
| 2021-05-21 11:27:34 | × | mike999999x quits (~mike99999@85.132.254.158) (Remote host closed the connection) |
| 2021-05-21 11:27:40 | → | samhh joins (~samhh@90.252.103.244) |
| 2021-05-21 11:27:41 | petersen | is now known as juhp |
| 2021-05-21 11:27:42 | × | samhh quits (~samhh@90.252.103.244) (Client Quit) |
| 2021-05-21 11:27:54 | <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 11:28:03 | juhp | is now known as petersen |
| 2021-05-21 11:28:33 | <__monty__> | No. |
| 2021-05-21 11:28:36 | → | samhh joins (~samhh@90.252.103.244) |
| 2021-05-21 11:29:16 | petersen | is now known as juhp |
| 2021-05-21 11:29:32 | <__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 11:29:52 | × | exzeta quits (~exzeta@client-8-84.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 2021-05-21 11:30:08 | → | exzeta joins (~exzeta@client-8-84.eduroam.oxuni.org.uk) |
| 2021-05-21 11:30:27 | <dminuoso> | prop: Roughly, cabal2nix turns a single cabal file straight into a nix derivation |
| 2021-05-21 11:30:31 | × | samhh quits (~samhh@90.252.103.244) (Client Quit) |
| 2021-05-21 11:30:41 | <dminuoso> | prop: haskell.nix however, rather turns a cabal build plan into a nix derivation, amongst other things. |
| 2021-05-21 11:31:43 | <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 11:32:06 | <__monty__> | Reason I switched to haskell.nix is I got tired of manually overriding package versions and the like. |
| 2021-05-21 11:32:19 | <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 11:32:28 | <__monty__> | Exactly. |
| 2021-05-21 11:33:00 | <__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 11:33:16 | → | malvo joins (~malvo@malvo.org) |
| 2021-05-21 11:34:15 | <prop> | hmm, it sounds pretty complex thanks. i think i'll go with haskell.nix so i can fiddle |
| 2021-05-21 11:34:43 | → | Pseudonym joins (~Pseudonym@118.211.96.219) |
| 2021-05-21 11:35:06 | <dminuoso> | __monty__: Here's my favourite issue: https://github.com/NixOS/nixpkgs/issues/26561 |
| 2021-05-21 11:35:08 | <dminuoso> | :P |
| 2021-05-21 11:37:51 | <maerwald> | that sums up nix overall |
| 2021-05-21 11:38:04 | <maerwald> | rabbit holes of complexity |
| 2021-05-21 11:38:29 | <dminuoso> | Yeah, it is quite representative for nix. |
| 2021-05-21 11:38:46 | → | samhh joins (~samhh@90.252.103.244) |
| 2021-05-21 11:41:23 | × | samhh quits (~samhh@90.252.103.244) (Client Quit) |
| 2021-05-21 11:42:26 | × | python476 quits (~user@88.160.31.174) (Ping timeout: 245 seconds) |
| 2021-05-21 11:44:39 | → | Guest78 joins (Guest78@107.161.19.109) |
| 2021-05-21 11:47:03 | <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 11:47:11 | <prop> | it seems like a lot of effort though :| |
| 2021-05-21 11:48:47 | × | geekosaur quits (~allbery_b@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
| 2021-05-21 11:48:53 | × | irc_user quits (uid423822@id-423822.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
| 2021-05-21 11:49:08 | → | geekosaur joins (~allbery_b@069-135-003-034.biz.spectrum.com) |
| 2021-05-21 11:52:11 | × | juhp quits (~juhp@128.106.188.199) (Quit: juhp) |
| 2021-05-21 11:52:24 | → | juhp joins (~juhp@128.106.188.199) |
| 2021-05-21 11:53:09 | → | Raito_Bezarius joins (~Raito@2a01:e0a:5f9:9681:a0a0:bb76:611f:9da7) |
| 2021-05-21 11:57:06 | <merijn> | prop: Metadata is serialised already |
| 2021-05-21 11:57:20 | <merijn> | prop: Or you meant *inside* Nix? |
| 2021-05-21 11:57:41 | → | alexander joins (~alexander@user/alexander) |
| 2021-05-21 11:58:33 | × | Raito_Bezarius quits (~Raito@2a01:e0a:5f9:9681:a0a0:bb76:611f:9da7) (Changing host) |
| 2021-05-21 11:58:33 | → | Raito_Bezarius joins (~Raito@user/raito-bezarius/x-8759638) |
| 2021-05-21 11:59:07 | <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 11:59:22 | <prop> | don't worry i'll look it up |
| 2021-05-21 11:59:26 | <prop> | i'm sure the internet has answers |
| 2021-05-21 12:00:06 | <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 12:00:29 | <prop> | thank you :))) |
| 2021-05-21 12:00:32 | × | prop quits (hugh@107.161.19.109) (Quit: Connection closed) |
| 2021-05-21 12:00:33 | <merijn> | prop: For inlinable functions it also has preprocessed source to implement inlining while compiling other packages |
| 2021-05-21 12:01:46 | → | shiraeeshi joins (~shiraeesh@46.34.207.108) |
| 2021-05-21 12:03:53 | × | malvo quits (~malvo@malvo.org) (Ping timeout: 252 seconds) |
| 2021-05-21 12:04:36 | → | malvo joins (~malvo@malvo.org) |
| 2021-05-21 12:06:58 | → | xwx joins (~george@user/george) |
| 2021-05-21 12:09:16 | → | nsilv joins (~nsilv@212.103.198.210) |
| 2021-05-21 12:10:50 | × | nsilv quits (~nsilv@212.103.198.210) (Client Quit) |
| 2021-05-21 12:11:04 | → | nsilv joins (~nsilv@212.103.198.210) |
| 2021-05-21 12:11:08 | × | Guest78 quits (Guest78@107.161.19.109) (Quit: Connection closed) |
| 2021-05-21 12:12:59 | → | azeem34 joins (azeem@107.161.19.109) |
| 2021-05-21 12:17:23 | → | python476 joins (~user@88.160.31.174) |
| 2021-05-21 12:18:50 | × | alloca quits (~suppi@141.226.14.43) (Quit: WeeChat 2.8) |
| 2021-05-21 12:19:05 | → | alloca joins (~suppi@141.226.14.43) |
| 2021-05-21 12:19:45 | azeem34 | is now known as azeem |
| 2021-05-21 12:20:14 | × | alloca quits (~suppi@141.226.14.43) (Client Quit) |
| 2021-05-21 12:20:58 | → | ddellacosta joins (~ddellacos@86.106.121.32) |
| 2021-05-21 12:22:00 | → | heath joins (~heath@68.68.64.38) |
| 2021-05-21 12:22:57 | → | lbseale joins (~lbseale@ip72-194-54-201.sb.sd.cox.net) |
All times are in UTC.