Post AOF4AkLVUILJwV8GbQ by xerz@fedi.xerz.one
 (DIR) More posts by xerz@fedi.xerz.one
 (DIR) Post #AOEiHiGnPGR4XVqUFs by xerz@fedi.xerz.one
       2022-10-04T21:35:20.510374Z
       
       1 likes, 0 repeats
       
       Oh, so you like Haskell? Name all language extensions
       
 (DIR) Post #AOEl6X8kkJLWhMRc36 by xerz@fedi.xerz.one
       2022-10-04T22:06:56.037500Z
       
       0 likes, 0 repeats
       
       on a different note, I’m trying to learn ghcup Stack properly now, and first thing I notice is that extra-deps is considered deprecated and I should be using Pantry instead#ahttps://docs.haskellstack.org/en/stable/yaml_configuration/#packages
       
 (DIR) Post #AOEm7hWDkCw989XeIy by xerz@fedi.xerz.one
       2022-10-04T22:18:20.409394Z
       
       0 likes, 0 repeats
       
       On a different note, I should probably write a Haskell setup tutorial, because nobody seems to explain the GHCup/Stack/Cabal mess these daystl;dr:to install Haskell you use GHCup, you can check available versions with ghcup listit also installs Stack, which is Haskell’s NPM/Cargo/pipStack installs per-project versions of Haskell called “resolvers” aka “snapshots”, you can check them with stack ls snapshots [--lts] remoteStack projects are defined with a stack.yaml file, remote dependencies go at extra-deps and their versions must be specifiedStack has a global project used every time you run stack ghci outside a project, it is defined at ~/.stack/global-project/stack.yamlCabal is seen more and more as legacy, usually if you see cabal install you can just do stack install instead…this is all a bit redundant
       
 (DIR) Post #AOEmKZhq6QO8fH7CCm by xerz@fedi.xerz.one
       2022-10-04T22:20:41.789151Z
       
       0 likes, 0 repeats
       
       …and I still don’t know how to add packages to IHaskell…
       
 (DIR) Post #AOEr4Y1B6vQaZCKzke by xerz@fedi.xerz.one
       2022-10-04T23:13:47.801864Z
       
       0 likes, 0 repeats
       
       …if this is it then massive yikes https://macbookandheels.com/tutorial/2017/04/15/dataviz-with-ihaskell-notebook/#ihaskell-configs
       
 (DIR) Post #AOEsoG7S5eOgKUdIfY by xerz@fedi.xerz.one
       2022-10-04T23:33:16.549916Z
       
       0 likes, 0 repeats
       
       OK I found the issuethe ihaskell package in the Arch repo is broken :blobcatrainbow: …maybe this can help?
       
 (DIR) Post #AOEsuvEq7ghhb0GX1U by xerz@fedi.xerz.one
       2022-10-04T23:34:29.979599Z
       
       0 likes, 0 repeats
       
       ye this should do the trick? https://github.com/IHaskell/IHaskell/#where-are-my-packages-ihaskell–stack
       
 (DIR) Post #AOEsxnKJziqxvYCQHQ by xerz@fedi.xerz.one
       2022-10-04T23:35:01.425819Z
       
       0 likes, 0 repeats
       
       ok it does seem to require modifying IHaskell’s stack.yaml, ugh https://github.com/IHaskell/IHaskell/#where-are-my-packages-ihaskell–stack
       
 (DIR) Post #AOEzZRZjugEXCCkMRE by mathew@mastodon.social
       2022-10-05T00:13:22Z
       
       1 likes, 0 repeats
       
       @xerz If you routinely need per-project versions of your programming language, that's a warning sign right there. Ditto requiring that humans edit YAML.The sense I'm getting is that Haskell is the Python of functional programming, only less usable.
       
 (DIR) Post #AOEzZSHhHFOZOXJSxE by xerz@fedi.xerz.one
       2022-10-05T00:48:59.946860Z
       
       0 likes, 0 repeats
       
       @mathew GHCup is a direct copy of Rustup, yet no one has concluded it to be a failure – quite the oppositeMy hypothesis here is that Haskell was going into uncharted territories (deterministic builds instead of merely ensuring backwards compatibility) and Cabal wasn't up to the task, so users made Stack in a way which enforced every requirement as needed.Then they found out they liked Rust's way more just as Cabal has improved and it's now all quite messy :blobcatderpy:
       
 (DIR) Post #AOEzafK6Hisi7i0wc4 by xerz@fedi.xerz.one
       2022-10-05T00:49:16.767575Z
       
       0 likes, 0 repeats
       
       @mathew GHCup is a direct fork of Rustup, yet no one has concluded it to be a failure – quite the opposite.My hypothesis here is that Haskell was going into uncharted territories (deterministic builds instead of merely ensuring backwards compatibility) and Cabal wasn't up to the task, so users made Stack in a way which enforced every requirement as needed.Then they found out they liked Rust's way more just as Cabal has improved and it's now all quite messy :blobcatderpy:
       
 (DIR) Post #AOEzdZtmuQNgAW5zEG by alcinnz@floss.social
       2022-10-05T00:30:21Z
       
       1 likes, 0 repeats
       
       @mathew @xerz My impression is that the issue's more with module packaging than the language itself, I don't like that I'm asked to depend upon specific versions of the standard library which in turn tightly bind to specific compiler versions.I don't really know what I'm doing when adding version bounds!I love Haskell (I disagree its less usable), but why isn't there a decent module repository for seemingly any language?
       
 (DIR) Post #AOF27xe9NbO4PuOemW by xerz@fedi.xerz.one
       2022-10-05T01:17:36.754146Z
       
       0 likes, 0 repeats
       
       Back to the topic of Haskell version management, I like this comparison https://github.com/haskell-infra/www.haskell.org/issues/191#issuecomment-1186253209
       
 (DIR) Post #AOF2peDuxJ2mv1xSUq by xerz@fedi.xerz.one
       2022-10-05T01:25:34.650381Z
       
       0 likes, 0 repeats
       
       It's good to see Stack seems to have merged an option to install GHC builds with GHCup! That means now that the overlap issue is mainly between Stack and Cabal…
       
 (DIR) Post #AOF49BSvgbe1TQrKCm by xerz@fedi.xerz.one
       2022-10-05T01:40:11.466171Z
       
       0 likes, 0 repeats
       
       While Cabal lacks these sorts of hooks, it seems we might be stuck with this duplicity, as Stack just makes choosing the right GHC version easier for the users… and that seems like the only big difference between these two“There is of course ghcup, which makes it easy to obtain a specific version of GHC, but I must then maintain human-readable documentation on how to do so (and my users must manually keep track of when it changes). In contrast, stack build will automatically work the same for my users as for me, which means I will likely notice any problems quickly.“ https://sigkill.dk/blog/2019-10-17-haskell-build-systems-for-non-haskellers.html
       
 (DIR) Post #AOF4AkLVUILJwV8GbQ by xerz@fedi.xerz.one
       2022-10-05T01:40:36.758194Z
       
       0 likes, 0 repeats
       
       While Cabal lacks these sorts of hooks, it seems we might be stuck with this duplicity, as Stack just makes choosing the right GHC version easier for the users… and that seems like the only big difference between these two“There is of course ghcup, which makes it easy to obtain a specific version of GHC, but I must then maintain human-readable documentation on how to do so (and my users must manually keep track of when it changes). In contrast, stack build will automatically work the same for my users as for me, which means I will likely notice any problems quickly.“https://sigkill.dk/blog/2019-10-17-haskell-build-systems-for-non-haskellers.html
       
 (DIR) Post #AOGjCf9R4dmjXl4CzQ by mathew@mastodon.social
       2022-10-05T20:16:16Z
       
       0 likes, 0 repeats
       
       @xerz 2haskells1ghcup
       
 (DIR) Post #AOGjCgdxWdnMAiM6Cm by xerz@fedi.xerz.one
       2022-10-05T20:55:04.050271Z
       
       0 likes, 0 repeats
       
       @mathew …no, nope, no, don’t, no, stop, no, get out, no, not even once, no no no :real_gun::blobcat: