Compare commits
	
		
			No commits in common. "master" and "issue-1040" have entirely different histories.
		
	
	
		
			master
			...
			issue-1040
		
	
		
							
								
								
									
										1
									
								
								docs/BUGS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docs/BUGS.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
# Known BUGS
 | 
			
		||||
							
								
								
									
										39
									
								
								docs/TODO.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								docs/TODO.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
# TODOs and Remarks
 | 
			
		||||
 | 
			
		||||
## Now
 | 
			
		||||
 | 
			
		||||
* ghcup init?
 | 
			
		||||
* merge two download files
 | 
			
		||||
* fetch/unpack functionality
 | 
			
		||||
* installing multiple versions of the same
 | 
			
		||||
* post-install
 | 
			
		||||
 | 
			
		||||
* proper test suite
 | 
			
		||||
 | 
			
		||||
* !! update of 0.1.5 must go in ghcup-0.0.1.json !!
 | 
			
		||||
 | 
			
		||||
* try to run exe before upgrade (backup to ~/.ghcup/bin/ghcup.old)
 | 
			
		||||
* stdout flushing?
 | 
			
		||||
* resume support (for make-install only)
 | 
			
		||||
 | 
			
		||||
## Maybe
 | 
			
		||||
 | 
			
		||||
* version ranges in json
 | 
			
		||||
* sign the JSON? (Or check gpg keys?)
 | 
			
		||||
* testing (especially distro detection -> unit tests)
 | 
			
		||||
 | 
			
		||||
## Later
 | 
			
		||||
 | 
			
		||||
* add support for RC/alpha/HEAD versions
 | 
			
		||||
 | 
			
		||||
## Cleanups
 | 
			
		||||
 | 
			
		||||
* avoid alternative for IO
 | 
			
		||||
* use plucky or oops instead of Excepts
 | 
			
		||||
 | 
			
		||||
## Questions
 | 
			
		||||
 | 
			
		||||
* move out GHCup.Version module, bc it's not library-ish?
 | 
			
		||||
* mirror support
 | 
			
		||||
* interactive handling when distro doesn't exist and we know the tarball is incompatible?
 | 
			
		||||
* ghcup-with wrapper to execute a command with a given ghc in PATH?
 | 
			
		||||
@ -187,7 +187,7 @@ cabal-install/HLS/stack are installed in `~/.ghcup/bin/<tool>-<ver>` and have un
 | 
			
		||||
### Custom ghc version names
 | 
			
		||||
 | 
			
		||||
When installing ghc bindists with custom version names as outlined in
 | 
			
		||||
[installing custom bindists](guide.md#installing-custom-bindists), then cabal might
 | 
			
		||||
[installing custom bindists](#installing-custom-bindists), then cabal might
 | 
			
		||||
be unable to find the correct `ghc-pkg` (also see [#73](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/73))
 | 
			
		||||
if you use `cabal build --with-compiler=ghc-foo`. Instead, point it to the full path, such as:
 | 
			
		||||
`cabal build --with-compiler=$HOME/.ghcup/ghc/<version-name>/bin/ghc` or set that GHC version
 | 
			
		||||
 | 
			
		||||
@ -146,16 +146,8 @@ a:hover {
 | 
			
		||||
  color: #996FC2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#toc-collapse a.nav-link {
 | 
			
		||||
  color: var(--link-pink);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#toc-collapse a:hover.nav-link {
 | 
			
		||||
  color: #996FC2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col-md-9 img.main-logo {
 | 
			
		||||
  border: 0px;
 | 
			
		||||
  border: 0px; 
 | 
			
		||||
  padding: 0px;
 | 
			
		||||
  margin: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -200,7 +200,7 @@ url-source:
 | 
			
		||||
  - https://mirror.sjtu.edu.cn/ghcup/yaml/ghcup/data/ghcup-0.0.6.yaml
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Note that later versions of GHCup allow more sophisticated mirror support, see [here](#mirrors-proper).
 | 
			
		||||
Note that later versions of GHCup allow more sophisticated mirror support, see [here](./#mirrors-proper).
 | 
			
		||||
 | 
			
		||||
#### Known mirrors
 | 
			
		||||
 | 
			
		||||
@ -559,24 +559,19 @@ The next sections explain how to install each cross bindist.
 | 
			
		||||
 | 
			
		||||
### GHC JS cross bindists (experimental)
 | 
			
		||||
 | 
			
		||||
You need the required emscripten JS toolchain. GHC JS cross bindists might require you to install a specific
 | 
			
		||||
version of emscripten. If that is the case, then ghcup will display the required emscripten version in the
 | 
			
		||||
pre install message. You can use the following commands to install the emscripten toolchain on your system,
 | 
			
		||||
substituting the required version for the bindist that you want to install.
 | 
			
		||||
(Cf. [GHC-MR 10918](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10918))
 | 
			
		||||
You need the required emscripten JS toolchain:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
git clone https://github.com/emscripten-core/emsdk.git
 | 
			
		||||
cd emsdk
 | 
			
		||||
./emsdk install VERSION
 | 
			
		||||
./emsdk activate VERSION
 | 
			
		||||
./emsdk install latest
 | 
			
		||||
./emsdk activate latest
 | 
			
		||||
source ./emsdk_env.sh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Instructions are also here: [Download and install — Emscripten documentation](https://emscripten.org/docs/getting_started/downloads.html).
 | 
			
		||||
Instructions are also here: [Download and install — Emscripten 3.1.43-git (dev) documentation](https://emscripten.org/docs/getting_started/downloads.html).
 | 
			
		||||
 | 
			
		||||
To install you can either use the tui interface by invoking `emconfigure ghcup tui` or
 | 
			
		||||
you can install directly like so:
 | 
			
		||||
To install we need to invoke ghcup like so:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
emconfigure ghcup install ghc --set javascript-unknown-ghcjs-9.6.2
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
# Installation
 | 
			
		||||
 | 
			
		||||
GHCup makes it easy to install specific versions of GHC on GNU/Linux,
 | 
			
		||||
macOS (aka Darwin), FreeBSD and Windows and can also bootstrap a fresh [Haskell developer environment](#supported-tools) from scratch.
 | 
			
		||||
macOS (aka Darwin), FreeBSD and Windows and can also bootstrap a fresh [Haskell developer environment](./#supported-tools) from scratch.
 | 
			
		||||
It follows the UNIX philosophy of [do one thing and do it well](https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well). Similar in scope to [rustup](https://github.com/rust-lang-nursery/rustup.rs), [pyenv](https://github.com/pyenv/pyenv) and [jenv](http://www.jenv.be).
 | 
			
		||||
 | 
			
		||||
## How to install
 | 
			
		||||
@ -32,7 +32,7 @@ GHCup has two main channels for every tool: **recommended** and **latest**. By d
 | 
			
		||||
 | 
			
		||||
*latest* follows the latest release of every tool, while *recommended* is at the discretion of the GHCup maintainers and based on community adoption (hackage libraries, tools like HLS, stackage support, etc.) and known bugs.
 | 
			
		||||
 | 
			
		||||
Also see [tags and shortcuts](guide.md#tags-and-shortcuts) for more information.
 | 
			
		||||
Also see [tags and shortcuts](../guide/#tags-and-shortcuts) for more information.
 | 
			
		||||
 | 
			
		||||
## System requirements
 | 
			
		||||
 | 
			
		||||
@ -121,9 +121,9 @@ On Windows, msys2 should already have been set up during the installation, so mo
 | 
			
		||||
 | 
			
		||||
## Next steps
 | 
			
		||||
 | 
			
		||||
1. Follow the [First steps guide](steps.md) on how to build a "Hello world" program, use `ghc`, run an interactive REPL and create a Haskell project
 | 
			
		||||
1. Follow the [First steps guide](../steps) on how to build a "Hello world" program, use `ghc`, run an interactive REPL and create a Haskell project
 | 
			
		||||
2. To understand the difference and overlap of `stack` and `cabal`, read on [here](https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07)
 | 
			
		||||
3. To learn Haskell proper check out the links at [How to learn Haskell proper](steps.md#how-to-learn-haskell-proper)
 | 
			
		||||
3. To learn Haskell proper check out the links at [How to learn Haskell proper](../steps#how-to-learn-haskell-proper)
 | 
			
		||||
4. To learn more about Haskell Toolchain management, check out the [ghcup user guide](./guide.md)
 | 
			
		||||
 | 
			
		||||
## Uninstallation
 | 
			
		||||
@ -382,7 +382,7 @@ All set. You can run `cabal init` now in an empty directory to start a project.
 | 
			
		||||
### Void Linux
 | 
			
		||||
 | 
			
		||||
Since void linux can be installed with glibc and musl, it's hard to support correctly with ghcup.
 | 
			
		||||
One way to make ghcup work on **Void Linux musl** is to follow the [Overriding distro detection](guide.md#overriding-distro-detection)
 | 
			
		||||
One way to make ghcup work on **Void Linux musl** is to follow the [Overriding distro detection](../guide/#overriding-distro-detection)
 | 
			
		||||
section and tell it to consider Alpine bindists only. E.g.:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ installed a Haskell toolchain:
 | 
			
		||||
The Glorious Glasgow Haskell Compilation System, version 8.10.7
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If this fails, consult [the Getting started page](install.md) for information on
 | 
			
		||||
If this fails, consult [the Getting started page](../install) for information on
 | 
			
		||||
how to install Haskell on your computer.
 | 
			
		||||
 | 
			
		||||
This guide is partly based on [Gil Mizrahi's blog](https://gilmi.me/blog/post/2021/08/14/hs-core-tools).
 | 
			
		||||
@ -44,7 +44,7 @@ follow the [GHC user guide](https://downloads.haskell.org/ghc/latest/docs/html/u
 | 
			
		||||
Now we run our program:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
➜ ./hello
 | 
			
		||||
➜ ./hello 
 | 
			
		||||
Hello, Haskell!
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -99,7 +99,7 @@ To enter the environment run the program `ghci`.
 | 
			
		||||
```sh
 | 
			
		||||
➜ ghci
 | 
			
		||||
GHCi, version 9.0.2: https://www.haskell.org/ghc/  :? for help
 | 
			
		||||
ghci>
 | 
			
		||||
ghci> 
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
It provides an interactive prompt where Haskell expressions can be written and
 | 
			
		||||
@ -199,7 +199,7 @@ And the modules of the relevant packages will be available for import:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
GHCi, version 9.0.1: https://www.haskell.org/ghc/  :? for help
 | 
			
		||||
ghci> import Control.Concurrent.Async
 | 
			
		||||
ghci> import Control.Concurrent.Async 
 | 
			
		||||
ghci> import Say
 | 
			
		||||
ghci> concurrently_ (sayString "Hello") (sayString "World")
 | 
			
		||||
Hello
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user