ghcup-talk/GHCup.md
2024-05-19 01:05:57 +08:00

1.7 KiB

% GHCup % Julian Ospald % June 07, 2024

GHCup

Intro

Haskell Survey 2022

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)