1.7 KiB
1.7 KiB
% GHCup % Julian Ospald % June 07, 2024
GHCup
Intro
What is GHCup?
curl -s -L 'https://downloads.haskell.org/~ghc/9.6.5/ghc-9.6.5-x86_64-fedora33-linux.tar.xz' |
tar -xJ -C /tmp &&
cd /tmp/ghc-9.6.5-x86_64-unknown-linux/ &&
./configure --prefix="$HOME/.local" &&
make install &&
rm -rf /tmp/ghc-9.6.5-x86_64-unknown-linux/
How it started
- 🤹 small team at work on different platforms
- 🧑💻 SHELL + POSIX
- 🦾 first version was 165 LOC
- 🙏 only installer at that time was stack
Goals
- ☮️ unification
- unix principles
- 🛠️ do one thing and do it well
- ⚗️ pipes, compose stdout and stdin
- 🎁 good re-distribution
- 🛣️ user experience (get out of the way)
To install or not install
Concerns
- {#id .class width=32 height=32px} installer
- {#id .class width=32 height=32px} distribution channel
- {#id .class width=32 height=32px} feedback channel
- {#id .class width=32 height=32px} testing/QA
- {#id .class width=32 height=32px} deciding on defaults (e.g. "recommended" GHC version)
- {#id .class width=32 height=32px} holistic toolchain experience
- stack integration
- VSCode integration
- cabal-install integration
- {#id .class width=32 height=32px} CI (e.g. github actions)