| app | ||
| lib | ||
| test | ||
| .gitignore | ||
| cabal.project | ||
| cabal.project.freeze | ||
| CHANGELOG.md | ||
| ghcup.cabal | ||
| LICENSE | ||
| README.md | ||
| Setup.hs | ||
| update-index-state.sh | ||
ghcup
A rewrite of ghcup in haskell.
TODO
- create static ghcup binaries
- adjust url in GHCupDownloads
- add print-system-reqs command
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