app | ||
lib | ||
test | ||
.gitignore | ||
cabal.project | ||
cabal.project.freeze | ||
CHANGELOG.md | ||
ghcup.cabal | ||
LICENSE | ||
README.md | ||
Setup.hs | ||
TODO.md | ||
update-index-state.sh |
ghcup
A rewrite of ghcup in haskell.
Motivation
Maintenance problems:
- platform incompatibilities regularly causing breaking bugs:
- refactoring being difficult due to POSIX sh
Benefits of a rewrite:
- Features such as installing release candidates or HEAD builds can be more conveniently implemented in a rewrite
- Refactoring will be easier
- Better tool support (such as linting the downloads file)
- saner downloads file format (such as JSON)
Downsides:
- building static binaries for all platforms (and possibly causing SSL/DNS problems)
- still bootstrapping those binaries via a POSIX sh script
Goals
- Correct low-level code
- Good exception handling
- Cleaner user interface