You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 7, 2020. It is now read-only.
Copy file name to clipboardExpand all lines: docs/Build.md
+5-3Lines changed: 5 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,9 @@ The design of the build system has the following main goals:
14
14
-`git`
15
15
* is completely functional right after a simple `git clone` and after every `git pull`
16
16
* one-stop-shop for building and naming all executables required for using `hie` in IDEs.
17
-
* fails with meaningful error messages in known circumstances
17
+
* prevents certain build failures by either identifying a failed precondition (such as wrong `stack` version) or by performing the necessary steps so users can't forget them (such as invoking `git` to update submodules)
18
+
19
+
18
20
* is able to modify the environment such that `hie` can be run
19
21
- setup `hoogle` database
20
22
- setup `hlint` data-files
@@ -30,7 +32,7 @@ The build script `install.hs` defines several targets using the `shake` build sy
30
32
*`build-doc`: builds the hoogle-db required by `hie`
31
33
*`cabal-*`: execute the same task as the original target, but with `cabal` instead of `stack`
32
34
33
-
Each `stack-*.yaml` contains references to packages in the submodules. Calling `stack` with one of those causes the build to fail if the submodules have not been initialized already. The file `shake.yaml` solves this issue. Moreover, it specifies the correct version of `shake` and is used for installing all run-time dependencies such as `cabal` and `hoogle` if necessary.
35
+
Each `stack-*.yaml` contains references to packages in the submodules. Calling `stack` with one of those causes the build to fail if the submodules have not been initialized already. The file `shake.yaml` solves this issue invoking the `git` binary itself to update the submodules. Moreover, it specifies the correct version of `shake` and is used for installing all run-time dependencies such as `cabal` and `hoogle` if necessary.
34
36
35
37
### Run-time dependencies
36
38
@@ -57,7 +59,7 @@ This ensures that a complete install is always possible after each `git pull` or
57
59
The `install.hs` script performs some checks to ensure that a correct installation is possible and provide meaningful error messages for known issues.
58
60
59
61
*`stack` needs to be up-to-date. Version `1.9.3` is required
60
-
*`ghc-8.6.3`does not work in windows. Trying to install `hie-8.6.3` on windows is not possible
62
+
*`ghc-8.6.3`is broken on windows. Trying to install `hie-8.6.3` on windows is not possible.
61
63
*`cabal new-build` does not work on windows at the moment. All `cabal-*` targets exit with an error message about that.
62
64
* When the build fails, an error message, that suggests to remove `.stack-work` directory, is displayed.
0 commit comments