@@ -85,12 +85,26 @@ supported syntaxes for targets are:
85
85
of the test suite and benchmark components, respectively, are selected to be
86
86
built.
87
87
88
- Stackage snapshots do not include directly GHC boot packages (packages that
89
- come with GHC and are included in GHC's global package database). For
90
- example, if ` Cabal ` is not a local package or an extra dep, then
91
- ` stack build Cabal ` will specify the latest version of that package in the
88
+ If * package* is a GHC boot package (packages that come with GHC and are
89
+ included in GHC's global package database), the behaviour can be complex.
90
+ If the boot package has not been 'replaced', then ` stack build ` will,
91
+ effectively, do nothing. However, if the boot package has been 'replaced'
92
+ then ` stack build ` will specify the latest version of that package in the
92
93
package index, which may differ from the version provided by the version of
93
- GHC specified by the snapshot.
94
+ GHC specified by the snapshot. A boot package will be treated as 'replaced'
95
+ if the package is included directly in the Stackage snapshot or it depends
96
+ on a package included directly in the snapshot. Stackage snapshots do not
97
+ include directly most boot packages but some snapshots may include directly
98
+ some boot packages. In particular, some snapshots include directly ` Win32 `
99
+ (which is a boot package on Windows) while others do not. For example, if
100
+ ` Cabal ` (a boot package) is not a local package or an extra dep, then
101
+ ` stack build Cabal ` with Stackage snapshot LTS Haskell 19.25 will:
102
+
103
+ * on Windows, try to build the latest version of ` Cabal ` in the package
104
+ index (because that snapshot includes ` Win32 ` directly, and ` Cabal `
105
+ depends on ` Win32 ` and so is treated as 'replaced'); and
106
+ * on non-Windows, effectively, do nothing (because ` Cabal ` is not
107
+ 'replaced').
94
108
95
109
* * package identifier* , e.g. ` stack build foobar-1.2.3 ` , is usually used to
96
110
include specific package versions from the package index.
0 commit comments