Skip to content

cabal install rebuilds all dependencies after a cabal build #7745

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jneira opened this issue Oct 13, 2021 · 18 comments
Closed

cabal install rebuilds all dependencies after a cabal build #7745

jneira opened this issue Oct 13, 2021 · 18 comments

Comments

@jneira
Copy link
Member

jneira commented Oct 13, 2021

Describe the bug

cabal install rebuilds all dependencies after a cabal build in windows

To Reproduce
Steps to reproduce the behavior:

  • A simple cabal project with only one dependency say
  • First we build the project using a fresh store dir and print the store contents and the cabal-plan fingerprint
D:\ws\haskell\cabal-test>cabal clean

D:\ws\haskell\cabal-test>rmdir sr /s /q

D:\ws\haskell\cabal-test>cabal --store-dir .\sr build
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - cabal-test-0.1.0.0 (lib) (first run)
 - cabal-test-0.1.0.0 (exe:cabal-test) (first run)
Configuring library for say-0.1.0.1..
Preprocessing library for say-0.1.0.1..
Building library for say-0.1.0.1..
.....................
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13304\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
Configuring library for cabal-test-0.1.0.0..
Preprocessing library for cabal-test-0.1.0.0..
Building library for cabal-test-0.1.0.0..
............
Configuring executable 'cabal-test' for cabal-test-0.1.0.0..
Preprocessing executable 'cabal-test' for cabal-test-0.1.0.0..
Building executable 'cabal-test' for cabal-test-0.1.0.0..
.......................
Linking D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test.exe ...

D:\ws\haskell\cabal-test>dir sr\ghc-8.6.5 /b
incoming
package.db
say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4

D:\ws\haskell\cabal-test>cabal-plan fingerprint
________________________________________________________________ B array-0.5.3.0
________________________________________________________________ B base-4.12.0.0
________________________________________________________________ B binary-0.8.6.0
________________________________________________________________ B bytestring-0.10.8.2
________________________________________________________________ L cabal-test-0.1.0.0
________________________________________________________________ B containers-0.6.0.1
________________________________________________________________ B deepseq-1.4.4.0
________________________________________________________________ B ghc-prim-0.5.3
________________________________________________________________ B integer-gmp-1.0.2.0
________________________________________________________________ B rts-1.0
f639656fc21925c45f3f55769b9fb7a90699e943376a725e215a5deea473b3e4 G say-0.1.0.1
________________________________________________________________ B text-1.2.3.1
________________________________________________________________ B transformers-0.5.6.2
  • Then we install the project using the same store dir
    • Another bug: you can set a relative dir for the store using cabal build but no using cabal install
D:\ws\haskell\cabal-test>cabal --store-dir .\sr install --builddir dist2
Wrote tarball sdist to
D:\ws\haskell\cabal-test\dist2\sdist\cabal-test-0.1.0.0.tar.gz
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - cabal-test-0.1.0.0 (lib) (requires build)
 - cabal-test-0.1.0.0 (exe:cabal-test) (requires build)
Configuring library for say-0.1.0.1..
cabal-3.6.2.0.exe: expected an absolute directory name for --prefix:
.\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47

cabal-3.6.2.0.exe: Failed to build say-0.1.0.1 (which is required by
exe:cabal-test from cabal-test-0.1.0.0). The failure occurred during the
configure step.

D:\ws\haskell\cabal-test>cabal --store-dir D:\ws\haskell\cabal-test\sr install -
-builddir dist2
Wrote tarball sdist to
D:\ws\haskell\cabal-test\dist2\sdist\cabal-test-0.1.0.0.tar.gz
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - cabal-test-0.1.0.0 (lib) (requires build)
 - cabal-test-0.1.0.0 (exe:cabal-test) (requires build)
Configuring library for say-0.1.0.1..
Preprocessing library for say-0.1.0.1..
Building library for say-0.1.0.1..
................
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-10896\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5
e3ea47\lib
Configuring library for cabal-test-0.1.0.0..
Preprocessing library for cabal-test-0.1.0.0..
Building library for cabal-test-0.1.0.0..
..............
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-10896\ws\haskell\cabal-test\sr\ghc-8.6.5\cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88\lib
Configuring executable 'cabal-test' for cabal-test-0.1.0.0..
Preprocessing executable 'cabal-test' for cabal-test-0.1.0.0..
Building executable 'cabal-test' for cabal-test-0.1.0.0..
...................
Linking dist\build\cabal-test\cabal-test.exe ...
Installing executable cabal-test in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-10896\ws\haskell\cabal-test\sr\ghc-8.6.5\cabal-test-0.1.0.0-9848e717cfed9
d05e08950e4e5de83d054a50961\bin
Warning: The directory
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-10896\ws\haskell\cabal-test\sr\ghc-8.6.5\cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961\bin
is not in the system search path.
Symlinking 'cabal-test.exe' to 'D:\cabal\bin\cabal-test.exe'

D:\ws\haskell\cabal-test>dir sr\ghc-8.6.5 /b
cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961
cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
incoming
package.db
say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47

D:\ws\haskell\cabal-test>cabal-plan fingerprint --builddir=dist2
________________________________________________________________ B array-0.5.3.0
________________________________________________________________ B base-4.12.0.0
________________________________________________________________ B binary-0.8.6.0
________________________________________________________________ B bytestring-0.10.8.2
________________________________________________________________ L cabal-test-0.1.0.0
________________________________________________________________ B containers-0.6.0.1
________________________________________________________________ B deepseq-1.4.4.0
________________________________________________________________ B ghc-prim-0.5.3
________________________________________________________________ B integer-gmp-1.0.2.0
________________________________________________________________ B rts-1.0
f639656fc21925c45f3f55769b9fb7a90699e943376a725e215a5deea473b3e4 G say-0.1.0.1
________________________________________________________________ B text-1.2.3.1
________________________________________________________________ B transformers-0.5.6.2

D:\ws\haskell\cabal-test>cabal-plan diff --builddir=dist-newstyle --builddir=dist2
(No output, lovely)
  • As you can check cabal-plan diff does not output anything, from other tests it seems it is broken in windows, including in the msys2 shell
  • After deleting the store we do the same in reverse order, this time preserving the temp build dir used by cabal install
    • There is no flag to preserve the directory, we have to copy the tmp dir quickly 🤦
D:\ws\haskell\cabal-test> rmdir sr /s /q

D:\ws\haskell\cabal-test>cabal --store-dir D:\ws\haskell\cabal-test\sr install -builddir dist2
Wrote tarball sdist to
D:\ws\haskell\cabal-test\dist2\sdist\cabal-test-0.1.0.0.tar.gz
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - cabal-test-0.1.0.0 (lib) (requires build)
 - cabal-test-0.1.0.0 (exe:cabal-test) (requires build)
Configuring library for say-0.1.0.1..
Preprocessing library for say-0.1.0.1..
Building library for say-0.1.0.1..
............................
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-10896\s\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7de3ea47\lib
Configuring library for cabal-test-0.1.0.0..
Preprocessing library for cabal-test-0.1.0.0..
Building library for cabal-test-0.1.0.0..
..................
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-10896\s\haskell\cabal-test\sr\ghc-8.6.5\cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce9bbdaaf168f88\lib
Configuring executable 'cabal-test' for cabal-test-0.1.0.0..
Preprocessing executable 'cabal-test' for cabal-test-0.1.0.0..
Building executable 'cabal-test' for cabal-test-0.1.0.0..
..................
Linking dist\build\cabal-test\cabal-test.exe ...
Installing executable cabal-test in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incomng\new-10896\ws\haskell\cabal-test\sr\ghc-8.6.5\cabal-test-0.1.0.0-9848e717cfedd05e08950e4e5de83d054a50961\bin
Warning: The directory
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-10896\ws\haskell\cabal-test\r\ghc-8.6.5\cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961\bin is not in the system search path.
Symlinking 'cabal-test.exe' to 'D:\cabal\bin\cabal-test.exe'
cabal-3.6.2.0.exe: Path 'D:\cabal\bin\cabal-test' already exists. Use --overwrite-policy=always to overwrite.


D:\ws\haskell\cabal-test>dir sr\ghc-8.6.5 /b
cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961
cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
incoming
package.db
say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
  • the fingerprint for say is the same in the temp build dir
D:\ws\haskell\cabal-test>cabal-plan fingerprint --builddir=tmp2\cabal-install.-1
0896\dist2
________________________________________________________________ B array-0.5.3.0
________________________________________________________________ B base-4.12.0.0
________________________________________________________________ B binary-0.8.6.0
________________________________________________________________ B bytestring-0.10.8.2
14aa96bfe9d34856cf85a09bc4b314aac137e5e325f3f4beeb77b70ebc57a4a6 G cabal-test-0.1.0.0
________________________________________________________________ B containers-0.6.0.1
________________________________________________________________ B deepseq-1.4.4.0
________________________________________________________________ B ghc-prim-0.5.3
________________________________________________________________ B integer-gmp-1.0.2.0
________________________________________________________________ B rts-1.0
f639656fc21925c45f3f55769b9fb7a90699e943376a725e215a5deea473b3e4 G say-0.1.0.1
________________________________________________________________ B text-1.2.3.1
________________________________________________________________ B transformers-0.5.6.2
  • we do the build after the install, deps are rebuilt again:
D:\ws\haskell\cabal-test>cabal --store-dir .\sr build
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - cabal-test-0.1.0.0 (lib) (dependency rebuilt)
 - cabal-test-0.1.0.0 (exe:cabal-test) (dependency rebuilt)
Configuring library for say-0.1.0.1..
Preprocessing library for say-0.1.0.1..
Building library for say-0.1.0.1..
[1 of 2] Compiling Paths_say        ( dist\build\autogen\Paths_say.hs, dist\buil
d\Paths_say.o )
[2 of 2] Compiling Say              ( src\Say.hs, dist\build\Say.o )
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-9200\ws
\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c
596e4\lib
Preprocessing library for cabal-test-0.1.0.0..
Building library for cabal-test-0.1.0.0..
Preprocessing executable 'cabal-test' for cabal-test-0.1.0.0..
Building executable 'cabal-test' for cabal-test-0.1.0.0..

D:\ws\haskell\cabal-test>dir sr\ghc-8.6.5 /b
cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961
cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
incoming
package.db
say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
  • output of cabal info for all the three build dirs involved:
cabal info
# cabal-plan info --builddir=dist-newstyle

Tree
~~~~

cabal-test-0.1.0.0
 [cabal-test-0.1.0.0:exe:"cabal-test"]
 ├─ base-4.12.0.0
 │  ├─ ghc-prim-0.5.3
 │  │  └─ rts-1.0
 │  ├─ integer-gmp-1.0.2.0
 │  │  └─ ghc-prim-0.5.3 ┄┄
 │  └─ rts-1.0 ┄┄
 ├─ bytestring-0.10.8.2
 │  ├─ base-4.12.0.0 ┄┄
 │  ├─ deepseq-1.4.4.0
 │  │  ├─ array-0.5.3.0
 │  │  │  └─ base-4.12.0.0 ┄┄
 │  │  └─ base-4.12.0.0 ┄┄
 │  ├─ ghc-prim-0.5.3 ┄┄
 │  └─ integer-gmp-1.0.2.0 ┄┄
 └─ cabal-test-0.1.0.0
    ├─ base-4.12.0.0 ┄┄
    ├─ bytestring-0.10.8.2 ┄┄
    ├─ say-0.1.0.1
    │  ├─ base-4.12.0.0 ┄┄
    │  ├─ bytestring-0.10.8.2 ┄┄
    │  ├─ text-1.2.3.1
    │  │  ├─ array-0.5.3.0 ┄┄
    │  │  ├─ base-4.12.0.0 ┄┄
    │  │  ├─ binary-0.8.6.0
    │  │  │  ├─ array-0.5.3.0 ┄┄
    │  │  │  ├─ base-4.12.0.0 ┄┄
    │  │  │  ├─ bytestring-0.10.8.2 ┄┄
    │  │  │  └─ containers-0.6.0.1
    │  │  │     ├─ array-0.5.3.0 ┄┄
    │  │  │     ├─ base-4.12.0.0 ┄┄
    │  │  │     ├─ deepseq-1.4.4.0 ┄┄
    │  │  │     └─ ghc-prim-0.5.3 ┄┄
    │  │  ├─ bytestring-0.10.8.2 ┄┄
    │  │  ├─ deepseq-1.4.4.0 ┄┄
    │  │  ├─ ghc-prim-0.5.3 ┄┄
    │  │  └─ integer-gmp-1.0.2.0 ┄┄
    │  └─ transformers-0.5.6.2
    │     └─ base-4.12.0.0 ┄┄
    └─ text-1.2.3.1 ┄┄

Top-sorted
~~~~~~~~~~

UnitId "rts"
UnitId "ghc-prim-0.5.3"
UnitId "integer-gmp-1.0.2.0"
UnitId "base-4.12.0.0"
UnitId "array-0.5.3.0"
UnitId "deepseq-1.4.4.0"
UnitId "bytestring-0.10.8.2"
UnitId "containers-0.6.0.1"
UnitId "binary-0.8.6.0"
UnitId "text-1.2.3.1"
UnitId "transformers-0.5.6.2"
UnitId "say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4"
UnitId "cabal-test-0.1.0.0-inplace"
UnitId "cabal-test-0.1.0.0-inplace-cabal-test"

Direct deps
~~~~~~~~~~~

PkgId (PkgName "cabal-test") (Ver [0,1,0,0])
CompNameLib
  base-4.12.0.0
  bytestring-0.10.8.2
  say-0.1.0.1
  text-1.2.3.1

PkgId (PkgName "cabal-test") (Ver [0,1,0,0])
CompNameExe "cabal-test"
  base-4.12.0.0
  bytestring-0.10.8.2
  cabal-test-0.1.0.0
# cabal-plan info --builddir=dist2

Tree
~~~~

cabal-test-0.1.0.0
 [cabal-test-0.1.0.0:exe:"cabal-test"]
 ├─ base-4.12.0.0
 │  ├─ ghc-prim-0.5.3
 │  │  └─ rts-1.0
 │  ├─ integer-gmp-1.0.2.0
 │  │  └─ ghc-prim-0.5.3 ┄┄
 │  └─ rts-1.0 ┄┄
 ├─ bytestring-0.10.8.2
 │  ├─ base-4.12.0.0 ┄┄
 │  ├─ deepseq-1.4.4.0
 │  │  ├─ array-0.5.3.0
 │  │  │  └─ base-4.12.0.0 ┄┄
 │  │  └─ base-4.12.0.0 ┄┄
 │  ├─ ghc-prim-0.5.3 ┄┄
 │  └─ integer-gmp-1.0.2.0 ┄┄
 └─ cabal-test-0.1.0.0
    ├─ base-4.12.0.0 ┄┄
    ├─ bytestring-0.10.8.2 ┄┄
    ├─ say-0.1.0.1
    │  ├─ base-4.12.0.0 ┄┄
    │  ├─ bytestring-0.10.8.2 ┄┄
    │  ├─ text-1.2.3.1
    │  │  ├─ array-0.5.3.0 ┄┄
    │  │  ├─ base-4.12.0.0 ┄┄
    │  │  ├─ binary-0.8.6.0
    │  │  │  ├─ array-0.5.3.0 ┄┄
    │  │  │  ├─ base-4.12.0.0 ┄┄
    │  │  │  ├─ bytestring-0.10.8.2 ┄┄
    │  │  │  └─ containers-0.6.0.1
    │  │  │     ├─ array-0.5.3.0 ┄┄
    │  │  │     ├─ base-4.12.0.0 ┄┄
    │  │  │     ├─ deepseq-1.4.4.0 ┄┄
    │  │  │     └─ ghc-prim-0.5.3 ┄┄
    │  │  ├─ bytestring-0.10.8.2 ┄┄
    │  │  ├─ deepseq-1.4.4.0 ┄┄
    │  │  ├─ ghc-prim-0.5.3 ┄┄
    │  │  └─ integer-gmp-1.0.2.0 ┄┄
    │  └─ transformers-0.5.6.2
    │     └─ base-4.12.0.0 ┄┄
    └─ text-1.2.3.1 ┄┄

Top-sorted
~~~~~~~~~~

UnitId "rts"
UnitId "ghc-prim-0.5.3"
UnitId "integer-gmp-1.0.2.0"
UnitId "base-4.12.0.0"
UnitId "array-0.5.3.0"
UnitId "deepseq-1.4.4.0"
UnitId "bytestring-0.10.8.2"
UnitId "containers-0.6.0.1"
UnitId "binary-0.8.6.0"
UnitId "text-1.2.3.1"
UnitId "transformers-0.5.6.2"
UnitId "say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4"
UnitId "cabal-test-0.1.0.0-inplace"
UnitId "cabal-test-0.1.0.0-inplace-cabal-test"

Direct deps
~~~~~~~~~~~

PkgId (PkgName "cabal-test") (Ver [0,1,0,0])
CompNameLib
  base-4.12.0.0
  bytestring-0.10.8.2
  say-0.1.0.1
  text-1.2.3.1

PkgId (PkgName "cabal-test") (Ver [0,1,0,0])
CompNameExe "cabal-test"
  base-4.12.0.0
  bytestring-0.10.8.2
  cabal-test-0.1.0.0
# cabal-plan info --builddir ./tmp2/cabal-install.-10896/dist2/

Tree
~~~~

cabal-test-0.1.0.0
 [cabal-test-0.1.0.0:exe:"cabal-test"]
 ├─ base-4.12.0.0
 │  ├─ ghc-prim-0.5.3
 │  │  └─ rts-1.0
 │  ├─ integer-gmp-1.0.2.0
 │  │  └─ ghc-prim-0.5.3 ┄┄
 │  └─ rts-1.0 ┄┄
 ├─ bytestring-0.10.8.2
 │  ├─ base-4.12.0.0 ┄┄
 │  ├─ deepseq-1.4.4.0
 │  │  ├─ array-0.5.3.0
 │  │  │  └─ base-4.12.0.0 ┄┄
 │  │  └─ base-4.12.0.0 ┄┄
 │  ├─ ghc-prim-0.5.3 ┄┄
 │  └─ integer-gmp-1.0.2.0 ┄┄
 └─ cabal-test-0.1.0.0
    ├─ base-4.12.0.0 ┄┄
    ├─ bytestring-0.10.8.2 ┄┄
    ├─ say-0.1.0.1
    │  ├─ base-4.12.0.0 ┄┄
    │  ├─ bytestring-0.10.8.2 ┄┄
    │  ├─ text-1.2.3.1
    │  │  ├─ array-0.5.3.0 ┄┄
    │  │  ├─ base-4.12.0.0 ┄┄
    │  │  ├─ binary-0.8.6.0
    │  │  │  ├─ array-0.5.3.0 ┄┄
    │  │  │  ├─ base-4.12.0.0 ┄┄
    │  │  │  ├─ bytestring-0.10.8.2 ┄┄
    │  │  │  └─ containers-0.6.0.1
    │  │  │     ├─ array-0.5.3.0 ┄┄
    │  │  │     ├─ base-4.12.0.0 ┄┄
    │  │  │     ├─ deepseq-1.4.4.0 ┄┄
    │  │  │     └─ ghc-prim-0.5.3 ┄┄
    │  │  ├─ bytestring-0.10.8.2 ┄┄
    │  │  ├─ deepseq-1.4.4.0 ┄┄
    │  │  ├─ ghc-prim-0.5.3 ┄┄
    │  │  └─ integer-gmp-1.0.2.0 ┄┄
    │  └─ transformers-0.5.6.2
    │     └─ base-4.12.0.0 ┄┄
    └─ text-1.2.3.1 ┄┄

Top-sorted
~~~~~~~~~~

UnitId "rts"
UnitId "ghc-prim-0.5.3"
UnitId "integer-gmp-1.0.2.0"
UnitId "base-4.12.0.0"
UnitId "array-0.5.3.0"
UnitId "deepseq-1.4.4.0"
UnitId "bytestring-0.10.8.2"
UnitId "containers-0.6.0.1"
UnitId "binary-0.8.6.0"
UnitId "text-1.2.3.1"
UnitId "transformers-0.5.6.2"
UnitId "say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47"
UnitId "cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88"
UnitId "cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961"

Direct deps
~~~~~~~~~~~
  • Summary: the unit id for say (f56dd8dcb828e676e2fe979752cedce7d5e3ea47 from the temp build dir is different from the other two (9d85f3e60b43742f757835053a7ea996c1c596e4). Both are installed in the store dir.

  • cabal-plan diff does not output anything (and afaik it should at least in the first case)

# cabal-plan diff --builddir=dist-newstyle --builddir ./tmp2/cabal-install.-10896/dist2

# cabal-plan diff --builddir=./dist-newstyle --builddir=./dist2

#

Expected behavior

cabal install should only rebuild local packages like in linux

System information

  • Operating system: windows 10 and 7
  • cabal: 3.6.2.0 but is reproduced for sure with 3.6.0.0 and 3.4.0.0 and afair with any cabal version i tried since 2.4.0.0
  • ghc versions: 8.6.5 and 8.10.7, but probably with any

Additional context

@fgaz @gbaz i hope there is enough info to at least demonstrate the behaviour, let me know if more info or tests are needed

@jneira
Copy link
Member Author

jneira commented Oct 13, 2021

More info:

output of `cabal --store-dir D:\ws\haskell\cabal-test\sr install say --lib --package-env . -v3` (it installs the lib with unit id f56dd8dcb828e676e2fe979752cedce7d5e3ea47)
D:\ws\haskell\cabal-test>cabal --store-dir D:\ws\haskell\cabal-test\sr install say --lib --package-env . -v3 > install-say.log 2>&1

File monitor 'config' unchanged.
this build was affected by the following (project) config files:
Reading available packages of hackage.haskell.org...
Using most recent state specified from most recent cabal update
index-state(hackage.haskell.org) = 2021-10-12T23:40:28Z
File monitor 'improved-plan' changed: monitor value changed
File monitor 'elaborated-plan' changed: monitor value changed
File monitor 'compiler' unchanged.
File monitor 'solver-plan' changed: monitor value changed
"D:\ghcup\bin\ghc.exe" "--print-global-package-db"
Reading installed packages...
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--global" "-v0"
"D:\ghcup\bin\ghc.exe" "--print-libdir"
Reading available packages of hackage.haskell.org...
Using most recent state specified from most recent cabal update
index-state(hackage.haskell.org) = 2021-10-12T23:40:28Z
Searching for pkg-config in path.
Cannot find pkg-config on the path
Searching for pkg-config in path.
Cannot find pkg-config on the path
Failed to query pkg-config, Cabal will continue without solving for pkg-config
constraints: Cannot find pkg-config program
Resolving dependencies...
targets: cabal-test
constraints: 
  any.base installed (non-upgradeable package)
  any.ghc-prim installed (non-upgradeable package)
  any.integer-gmp installed (non-upgradeable package)
  any.template-haskell installed (non-upgradeable package)
  setup.Cabal >=2.4 (minimum version of Cabal used by Setup.hs)
  setup.Cabal <3.8 (maximum version of Cabal used by Setup.hs)
  cabal-test.cabal-test ==0.1.0.0 (user target)
preferences: 
...............
strategy: PreferLatestForSelected
reorder goals: False
count conflicts: True
fine grained conflicts: True
minimize conflict set: False
independent goals: False
avoid reinstalls: False
shadow packages: False
strong flags: False
allow boot library installs: False
only constrained packages: OnlyConstrainedNone
max backjumps: 4000
[__0] trying: cabal-test-0.1.0.0 (user goal)
[__1] trying: base-4.12.0.0/installed-4.12.0.0 (dependency of cabal-test)
[__2] trying: rts-1.0/installedrts (dependency of base)
[__3] trying: integer-gmp-1.0.2.0/installed-1.0.2.0 (dependency of base)
[__4] trying: ghc-prim-0.5.3/installed-0.5.3 (dependency of base)
[__5] trying: text-1.2.3.1/installed-1.2.3.1 (dependency of cabal-test)
[__6] trying: deepseq-1.4.4.0/installed-1.4.4.0 (dependency of text)
[__7] trying: binary-0.8.6.0/installed-0.8.6.0 (dependency of text)
[__8] trying: containers-0.6.0.1/installed-0.6.0.1 (dependency of binary)
[__9] trying: array-0.5.3.0/installed-0.5.3.0 (dependency of text)
[_10] trying: say-0.1.0.1 (dependency of cabal-test)
[_11] trying: say:!bench
[_12] trying: say:!test
[_13] trying: transformers-0.5.6.2/installed-0.5.6.2 (dependency of say)
[_14] next goal: bytestring (dependency of cabal-test)
[_14] trying: bytestring-0.10.8.2/installed-0.10.8.2
[_15] done
Elaborating the install plan...
File monitor 'source-hashes' changed: first run
Component graph for say-0.1.0.1: component lib
component say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include text-1.2.3.1
    include transformers-0.5.6.2
unit say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include text-1.2.3.1
    include transformers-0.5.6.2
    Say=say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47:Say
Component graph for cabal-test-0.1.0.0:
    component lib
    component exe:cabal-test dependency lib
component cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
    include text-1.2.3.1
unit cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
    include text-1.2.3.1
    CabalTestLib=cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88:CabalTestLib,MyData=cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88:MyData
component cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
unit cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
PreExisting array-0.5.3.0 (array-0.5.3.0) base-4.12.0.0
PreExisting base-4.12.0.0 (base-4.12.0.0)
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
  rts
PreExisting binary-0.8.6.0 (binary-0.8.6.0)
  array-0.5.3.0
  base-4.12.0.0
  bytestring-0.10.8.2
  containers-0.6.0.1
PreExisting bytestring-0.10.8.2 (bytestring-0.10.8.2)
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961)
  base-4.12.0.0
  bytestring-0.10.8.2
  cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88)
  base-4.12.0.0
  bytestring-0.10.8.2
  say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
  text-1.2.3.1
PreExisting containers-0.6.0.1 (containers-0.6.0.1)
  array-0.5.3.0
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
PreExisting deepseq-1.4.4.0 (deepseq-1.4.4.0)
  array-0.5.3.0
  base-4.12.0.0
PreExisting ghc-prim-0.5.3 (ghc-prim-0.5.3) rts
PreExisting integer-gmp-1.0.2.0 (integer-gmp-1.0.2.0) ghc-prim-0.5.3
PreExisting rts-1.0 (rts)
Configured say-0.1.0.1 (say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47)
  base-4.12.0.0
  bytestring-0.10.8.2
  text-1.2.3.1
  transformers-0.5.6.2
PreExisting text-1.2.3.1 (text-1.2.3.1)
  array-0.5.3.0
  base-4.12.0.0
  binary-0.8.6.0
  bytestring-0.10.8.2
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
PreExisting transformers-0.5.6.2 (transformers-0.5.6.2) base-4.12.0.0
Updating plan.json
Improving the install plan...
PreExisting array-0.5.3.0 (array-0.5.3.0) base-4.12.0.0
PreExisting base-4.12.0.0 (base-4.12.0.0)
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
  rts
PreExisting binary-0.8.6.0 (binary-0.8.6.0)
  array-0.5.3.0
  base-4.12.0.0
  bytestring-0.10.8.2
  containers-0.6.0.1
PreExisting bytestring-0.10.8.2 (bytestring-0.10.8.2)
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961)
  base-4.12.0.0
  bytestring-0.10.8.2
  cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88)
  base-4.12.0.0
  bytestring-0.10.8.2
  say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
  text-1.2.3.1
PreExisting containers-0.6.0.1 (containers-0.6.0.1)
  array-0.5.3.0
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
PreExisting deepseq-1.4.4.0 (deepseq-1.4.4.0)
  array-0.5.3.0
  base-4.12.0.0
PreExisting ghc-prim-0.5.3 (ghc-prim-0.5.3) rts
PreExisting integer-gmp-1.0.2.0 (integer-gmp-1.0.2.0) ghc-prim-0.5.3
PreExisting rts-1.0 (rts)
Configured say-0.1.0.1 (say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47)
  base-4.12.0.0
  bytestring-0.10.8.2
  text-1.2.3.1
  transformers-0.5.6.2
PreExisting text-1.2.3.1 (text-1.2.3.1)
  array-0.5.3.0
  base-4.12.0.0
  binary-0.8.6.0
  bytestring-0.10.8.2
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
PreExisting transformers-0.5.6.2 (transformers-0.5.6.2) base-4.12.0.0
PreExisting array-0.5.3.0 (array-0.5.3.0) base-4.12.0.0
PreExisting base-4.12.0.0 (base-4.12.0.0)
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
  rts
PreExisting binary-0.8.6.0 (binary-0.8.6.0)
  array-0.5.3.0
  base-4.12.0.0
  bytestring-0.10.8.2
  containers-0.6.0.1
PreExisting bytestring-0.10.8.2 (bytestring-0.10.8.2)
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
PreExisting containers-0.6.0.1 (containers-0.6.0.1)
  array-0.5.3.0
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
PreExisting deepseq-1.4.4.0 (deepseq-1.4.4.0)
  array-0.5.3.0
  base-4.12.0.0
PreExisting ghc-prim-0.5.3 (ghc-prim-0.5.3) rts
PreExisting integer-gmp-1.0.2.0 (integer-gmp-1.0.2.0) ghc-prim-0.5.3
PreExisting rts-1.0 (rts)
Configured say-0.1.0.1 (say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47)
  base-4.12.0.0
  bytestring-0.10.8.2
  text-1.2.3.1
  transformers-0.5.6.2
PreExisting text-1.2.3.1 (text-1.2.3.1)
  array-0.5.3.0
  base-4.12.0.0
  binary-0.8.6.0
  bytestring-0.10.8.2
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
PreExisting transformers-0.5.6.2 (transformers-0.5.6.2) base-4.12.0.0
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built:
 - say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47 (lib) (requires build)
Executing install plan serially.
creating D:\ws\haskell\cabal-test\tmp\cabal-install.-12820\dist-newstyle\build
creating D:\ws\haskell\cabal-test\tmp\cabal-install.-12820\dist-newstyle\tmp
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5
creating D:\ws\haskell\cabal-test\sr
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5
Environment: [...]
"D:\ghcup\bin\ghc-pkg.exe" "init" "D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-v2"
GHC package manager version 8.6.5
writing cache D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db\package.cache
Extracting
D:\cabal\packages\hackage.haskell.org\say\0.1.0.1\say-0.1.0.1.tar.gz to
D:\ws\haskell\cabal-test\tmp\cabal-install.-12820\dist-newstyle\tmp\src-12820...
Updating say.cabal with the latest revision from the index.
creating
D:\ws\haskell\cabal-test\tmp\cabal-install.-12820\dist-newstyle\tmp\src-12820\say-0.1.0.1\dist
Using internal setup method with build-type Simple and args:
["configure","--verbose=3","--builddir=dist","--ghc","--prefix=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47","--bindir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\bin","--libdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\lib","--libsubdir=","--dynlibdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\lib","--libexecdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\libexec","--libexecsubdir=","--datadir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\share","--datasubdir=","--docdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\share\\doc","--htmldir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\share\\doc\\html","--haddockdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\share\\doc\\html","--sysconfdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\\etc","--enable-library-vanilla","--disable-library-profiling","--disable-shared","--disable-static","--disable-executable-dynamic","--disable-executable-static","--disable-profiling","--profiling-detail=default","--library-profiling-detail=default","--enable-optimization","--disable-debug-info","--disable-library-for-ghci","--disable-split-sections","--disable-split-objs","--disable-executable-stripping","--disable-library-stripping","--package-db=clear","--package-db=global","--package-db=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\package.db","--extra-include-dirs=D:\\ghcup\\msys64\\mingw64\\include","--extra-include-dirs=D:\\ghcup\\msys64\\mingw64\\include","--cid=say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47","--extra-lib-dirs=D:\\ghcup\\msys64\\mingw64\\lib","--extra-lib-dirs=D:\\ghcup\\msys64\\mingw64\\lib","--extra-prog-path=D:\\ghcup\\bin","--extra-prog-path=D:\\ghcup\\msys64\\home\\user\\AppData\\Roaming\\cabal\\bin","--extra-prog-path=D:\\ghcup\\msys64\\usr\\bin","--extra-prog-path=D:\\ghcup\\msys64\\mingw64\\bin","--dependency=base=base-4.12.0.0","--dependency=bytestring=bytestring-0.10.8.2","--dependency=text=text-1.2.3.1","--dependency=transformers=transformers-0.5.6.2","--disable-coverage","--exact-configuration","--allow-depending-on-private-libs","--with-ghc=D:\\ghcup\\bin\\ghc.exe","--with-ghc-pkg=D:\\ghcup\\bin\\ghc-pkg.exe","--ghc-option=-hide-all-packages","lib:say"]
Using Parsec parser
Configuring library for say-0.1.0.1..
creating dist\build
"D:\ghcup\bin\ghc.exe" "--numeric-version"
D:\ghcup\bin\ghc.exe is version 8.6.5
"D:\ghcup\bin\ghc-pkg.exe" "--version"
D:\ghcup\bin\ghc-pkg.exe is version 8.6.5
"D:\ghcup\bin\ghc.exe" "--supported-languages"
"D:\ghcup\bin\ghc.exe" "--info"
Reading installed packages...
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--global" "-v0"
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--package-db=D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-v0"
"D:\ghcup\bin\ghc.exe" "--print-libdir" "-hide-all-packages"
Finalized package description:
cabal-version: >=1.10
name: say
version: 0.1.0.1
license: MIT
license-file: LICENSE
copyright: 2016-2018 FP Complete
maintainer: [email protected]
author: Michael Snoyman
homepage: https://github.com/fpco/say#readme
bug-reports: https://github.com/fpco/say/issues
synopsis: Send textual messages to a Handle in a thread-friendly way
description:
Please see the README and documentation at
<https://www.stackage.org/package/say>

category: Text
build-type: Simple
extra-source-files:
ChangeLog.md
README.md

source-repository head
type: git
location: https://github.com/fpco/say

library
exposed-modules: Say
hs-source-dirs: src
other-modules: Paths_say
default-language: Haskell2010
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
include-dirs: D:\ghcup\msys64\mingw64\include
build-depends:
base (>=4.9.1 && <5) && ==4.12.0.0,
bytestring >=0.10.4 && ==0.10.8.2,
text >=1.2 && ==1.2.3.1,
transformers >=0 && ==0.5.6.2

test-suite say-test
type: exitcode-stdio-1.0
main-is: Spec.hs
hs-source-dirs: test
other-modules:
SaySpec
Paths_say

default-language: Haskell2010
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
include-dirs: D:\ghcup\msys64\mingw64\include
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends:
base (>=4.9.1 && <5) && ==4.12.0.0,
bytestring >=0.10.4 && ==0.10.8.2,
hspec,
say,
text >=1.2 && ==1.2.3.1,
transformers >=0 && ==0.5.6.2,
unliftio

benchmark say-bench
type: exitcode-stdio-1.0
main-is: say-bench.hs
hs-source-dirs: bench
other-modules: Paths_say
default-language: Haskell2010
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
include-dirs: D:\ghcup\msys64\mingw64\include
ghc-options: -threaded -O2 -rtsopts -with-rtsopts=-N
build-depends:
base (>=4.9.1 && <5) && ==4.12.0.0,
bytestring >=0.10.4 && ==0.10.8.2,
gauge,
say,
text >=1.2 && ==1.2.3.1,
transformers >=0 && ==0.5.6.2,
unliftio
Expanding glob 'ChangeLog.md' in directory '.\.'.
Expanding glob 'README.md' in directory '.\.'.
Dependency base ==4.12.0.0: using base-4.12.0.0
Dependency bytestring ==0.10.8.2: using bytestring-0.10.8.2
Dependency text ==1.2.3.1: using text-1.2.3.1
Dependency transformers ==0.5.6.2: using transformers-0.5.6.2
Searching for alex in path.
Cannot find alex on the path
Searching for ar in path.
Found ar at D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe
Searching for c2hs in path.
Cannot find c2hs on the path
Searching for cpphs in path.
Cannot find cpphs on the path
Searching for doctest in path.
Cannot find doctest on the path
Searching for gcc in path.
Found gcc at D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe" "-dumpversion"
D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe is version 7.2.0
Searching for ghcjs in path.
Cannot find ghcjs on the path
Searching for ghcjs-pkg in path.
Cannot find ghcjs-pkg on the path
Searching for greencard in path.
Cannot find greencard on the path
looking for tool haddock near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\haddock.exe"]
found haddock in D:\ghcup\bin\haddock.exe
"D:\ghcup\bin\haddock.exe" "--version"
D:\ghcup\bin\haddock.exe is version 2.22.0
Searching for happy in path.
Cannot find happy on the path
Searching for hmake in path.
Cannot find hmake on the path
looking for tool hpc near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\hpc.exe"]
found hpc in D:\ghcup\bin\hpc.exe
"D:\ghcup\bin\hpc.exe" "version"
D:\ghcup\bin\hpc.exe is version 0.67
looking for tool hsc2hs near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\hsc2hs.exe"]
found hsc2hs in D:\ghcup\bin\hsc2hs.exe
"D:\ghcup\bin\hsc2hs.exe" "--version"
D:\ghcup\bin\hsc2hs.exe is version 0.68.5
Searching for HsColour in path.
Cannot find HsColour on the path
Searching for jhc in path.
Cannot find jhc on the path
Searching for ld in path.
Found ld at D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ld.exe
Environment: [...]
"D:\ghcup\bin\ghc.exe" "-hide-all-packages" "-c" "D:\ws\haskell\cabal-test\tmp\ghcE53D.c" "-o" "D:\ws\haskell\cabal-test\tmp\ghcE54E.o" "-hide-all-packages"
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ld.exe" "-x" "-r" "D:\ws\haskell\cabal-test\tmp\ghcE54E.o" "-o" "D:\ws\haskell\cabal-test\tmp\ghcF008.o"
Searching for pkg-config in path.
Found pkg-config at D:\ghcup\msys64\mingw64\bin\pkg-config.exe
"D:\ghcup\msys64\mingw64\bin\pkg-config.exe" "--version"
D:\ghcup\msys64\mingw64\bin\pkg-config.exe is version 0.29.2
looking for tool runghc near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\runghc.exe"]
found runghc in D:\ghcup\bin\runghc.exe
"D:\ghcup\bin\runghc.exe" "--version"
D:\ghcup\bin\runghc.exe is version 8.6.5
Searching for strip in path.
Cannot find strip on the path
Searching for tar in path.
Cannot find tar on the path
Searching for uhc in path.
Cannot find uhc on the path
Source component graph: component lib
Configured component graph:
    component say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
        include base-4.12.0.0
        include bytestring-0.10.8.2
        include text-1.2.3.1
        include transformers-0.5.6.2
Linked component graph:
    unit say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
        include base-4.12.0.0
        include bytestring-0.10.8.2
        include text-1.2.3.1
        include transformers-0.5.6.2
        Say=say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47:Say
Ready component graph:
    definite say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
        depends base-4.12.0.0
        depends bytestring-0.10.8.2
        depends text-1.2.3.1
        depends transformers-0.5.6.2
Using Cabal-3.6.2.0 compiled by ghc-8.10
Using compiler: ghc-8.6.5
Using install prefix:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
Executables installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\bin
Libraries installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib
Dynamic Libraries installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib
Private executables installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\libexec
Data files installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share
Documentation installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share\doc
Configuration files installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\etc
No alex found
Using ar found on system at: D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe
No c2hs found
No cpphs found
No doctest found
Using gcc version 7.2.0 found on system at:
D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe
Using ghc version 8.6.5 given by user at: D:\ghcup\bin\ghc.exe
Using ghc-pkg version 8.6.5 given by user at: D:\ghcup\bin\ghc-pkg.exe
No ghcjs found
No ghcjs-pkg found
No greencard found
Using haddock version 2.22.0 found on system at: D:\ghcup\bin\haddock.exe
No happy found
Using haskell-suite found on system at: haskell-suite-dummy-location
Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
No hmake found
Using hpc version 0.67 found on system at: D:\ghcup\bin\hpc.exe
Using hsc2hs version 0.68.5 found on system at: D:\ghcup\bin\hsc2hs.exe
No hscolour found
No jhc found
Using ld found on system at: D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ld.exe
Using pkg-config version 0.29.2 found on system at:
D:\ghcup\msys64\mingw64\bin\pkg-config.exe
Using runghc version 8.6.5 found on system at: D:\ghcup\bin\runghc.exe
No strip found
No tar found
No uhc found
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe" "-fno-stack-protector" "D:\ws\haskell\cabal-test\tmp\ghcF622.c" "-o" "D:\ws\haskell\cabal-test\tmp\ghcF633" "-D__GLASGOW_HASKELL__=806" "-Dmingw32_BUILD_OS=1" "-Dx86_64_BUILD_ARCH=1" "-Dmingw32_HOST_OS=1" "-Dx86_64_HOST_ARCH=1" "-Idist\build\autogen" "-ID:\ghcup\msys64\mingw64\include" "-I." "-ID:\ghcup\ghc\8.6.5\lib\bytestring-0.10.8.2\include" "-ID:\ghcup\ghc\8.6.5\lib\base-4.12.0.0\include" "-ID:\ghcup\ghc\8.6.5\lib\integer-gmp-1.0.2.0\include" "-ID:\ghcup\ghc\8.6.5\lib/include" "-LD:\ghcup\msys64\mingw64\lib" "-LD:\ghcup\ghc\8.6.5\lib\transformers-0.5.6.2" "-LD:\ghcup\ghc\8.6.5\lib\text-1.2.3.1" "-LD:\ghcup\ghc\8.6.5\lib\binary-0.8.6.0" "-LD:\ghcup\ghc\8.6.5\lib\containers-0.6.0.1" "-LD:\ghcup\ghc\8.6.5\lib\bytestring-0.10.8.2" "-LD:\ghcup\ghc\8.6.5\lib\deepseq-1.4.4.0" "-LD:\ghcup\ghc\8.6.5\lib\array-0.5.3.0" "-LD:\ghcup\ghc\8.6.5\lib\base-4.12.0.0" "-LD:\ghcup\ghc\8.6.5\lib\integer-gmp-1.0.2.0" "-LD:\ghcup\ghc\8.6.5\lib\ghc-prim-0.5.3" "-LD:\ghcup\ghc\8.6.5\lib/rts"
Using internal setup method with build-type Simple and args:
["build","--verbose=3","--builddir=dist"]
Component build order: library
Environment: [...]
"D:\ghcup\bin\ghc-pkg.exe" "init" "dist\package.conf.inplace" "-v2"
GHC package manager version 8.6.5
writing cache dist\package.conf.inplace\package.cache
creating dist\build
creating dist\build\autogen
creating dist\build\autogen
Preprocessing library for say-0.1.0.1..
Building library for say-0.1.0.1..
creating dist\build
Environment: [...]
"D:\ghcup\bin\ghc.exe" "--make" "-fbuilding-cabal-package" "-O" "-outputdir" "dist\build" "-odir" "dist\build" "-hidir" "dist\build" "-stubdir" "dist\build" "-i" "-idist\build" "-isrc" "-idist\build\autogen" "-idist\build\global-autogen" "-Idist\build\autogen" "-Idist\build\global-autogen" "-Idist\build" "-ID:\ghcup\msys64\mingw64\include" "-optP-include" "-optPdist\build\autogen\cabal_macros.h" "-this-unit-id" "say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47" "-hide-all-packages" "-Wmissing-home-modules" "-no-user-package-db" "-package-db" "D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-package-db" "dist\package.conf.inplace" "-package-id" "base-4.12.0.0" "-package-id" "bytestring-0.10.8.2" "-package-id" "text-1.2.3.1" "-package-id" "transformers-0.5.6.2" "-XHaskell2010" "Say" "Paths_say" "-hide-all-packages"
[1 of 2] Compiling Paths_say        ( dist\build\autogen\Paths_say.hs, dist\build\Paths_say.o )
[2 of 2] Compiling Say              ( src\Say.hs, dist\build\Say.o )
Linking...
[(DefiniteUnitId (DefUnitId {unDefUnitId = UnitId
"base-4.12.0.0"}),DefaultRenaming),(DefiniteUnitId (DefUnitId {unDefUnitId =
UnitId "bytestring-0.10.8.2"}),DefaultRenaming),(DefiniteUnitId (DefUnitId
{unDefUnitId = UnitId "text-1.2.3.1"}),DefaultRenaming),(DefiniteUnitId
(DefUnitId {unDefUnitId = UnitId "transformers-0.5.6.2"}),DefaultRenaming)]
dist\build\objs-12820\ar153A.rsp contents: <<<
dist\\build\\Say.o
dist\\build\\Paths_say.o
>>> dist\build\objs-12820\ar153A.rsp
Environment: [...]
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe" "-r" "-v" "dist\build\objs-12820\libHSsay-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47.a" "@dist\build\objs-12820\ar153A.rsp"
a - dist\build\Say.o
a - dist\build\Paths_say.o
D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe: creando dist\build\objs-12820\libHSsay-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47.a
Using internal setup method with build-type Simple and args:
["copy","--verbose=3","--builddir=dist","--destdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\incoming\\new-12820"]
directory dist\doc\html\say does exist: False
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share\doc
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share\doc
Installing LICENSE to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share\doc\LICENSE
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib
Installing dist\build\Say.hi to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib\Say.hi
Installing dist\build\Paths_say.hi to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib\Paths_say.hi
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib
Installing
dist\build\libHSsay-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47.a to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib\libHSsay-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47.a
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-12820\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
Using internal setup method with build-type Simple and args:
["register","--verbose=3","--builddir=dist","--gen-pkg-config=D:\\ws\\haskell\\cabal-test\\tmp\\cabal-install.-12820\\dist-newstyle\\tmp\\package-registration--12820\\pkgConf"]
"D:\ghcup\bin\ghc.exe" "--abi-hash" "-fbuilding-cabal-package" "-O" "-outputdir" "dist\build" "-odir" "dist\build" "-hidir" "dist\build" "-stubdir" "dist\build" "-i" "-idist\build" "-isrc" "-idist\build\autogen" "-idist\build\global-autogen" "-Idist\build\autogen" "-Idist\build\global-autogen" "-Idist\build" "-ID:\ghcup\msys64\mingw64\include" "-optP-include" "-optPdist\build\autogen\cabal_macros.h" "-this-unit-id" "say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47" "-hide-all-packages" "-Wmissing-home-modules" "-no-user-package-db" "-XHaskell2010" "Say" "-hide-all-packages"
name: say
version: 0.1.0.1
visibility: public
id: say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
key: say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
license: MIT
copyright: 2016-2018 FP Complete
maintainer: [email protected]
author: Michael Snoyman
homepage: https://github.com/fpco/say#readme
synopsis: Send textual messages to a Handle in a thread-friendly way
description:
Please see the README and documentation at
<https://www.stackage.org/package/say>

category: Text
abi: 878946f79fb5e94d8bbbb534bf85470d
exposed: True
exposed-modules: Say
hidden-modules: Paths_say
import-dirs:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib

library-dirs:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib
D:\ghcup\msys64\mingw64\lib

dynamic-library-dirs:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\lib
D:\ghcup\msys64\mingw64\lib

data-dir:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share

hs-libraries: HSsay-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
include-dirs: D:\ghcup\msys64\mingw64\include
depends:
base-4.12.0.0 bytestring-0.10.8.2 text-1.2.3.1 transformers-0.5.6.2

haddock-interfaces:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share\doc\html\say.haddock

haddock-html:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\share\doc\html
Creating package registration file:
D:\ws\haskell\cabal-test\tmp\cabal-install.-12820\dist-newstyle\tmp\package-registration--12820\pkgConf
Environment: [...]
"D:\ghcup\bin\ghc-pkg.exe" "recache" "--package-db=D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-v2"
GHC package manager version 8.6.5
reading package config: D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\xhtml-3000.2.2.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\Win32-2.6.1.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\transformers-0.5.6.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\time-1.8.0.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\text-1.2.3.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\template-haskell-2.14.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\stm-2.5.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\rts.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\process-1.6.5.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\pretty-1.1.3.6.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\parsec-3.1.13.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\mtl-2.2.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\libiserv-8.6.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\integer-gmp-1.0.2.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\hpc-0.6.0.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\haskeline-0.7.4.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghci-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-prim-0.5.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-heap-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-compact-0.1.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-boot-th-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-boot-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\filepath-1.4.2.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\directory-1.3.3.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\deepseq-1.4.4.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\containers-0.6.0.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\Cabal-2.4.0.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\bytestring-0.10.8.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\binary-0.8.6.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\base-4.12.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\array-0.5.3.0.conf
db stack: ["D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\package.db","C:\\Users\\user\\AppData\\Roaming\\ghc\\x86_64-mingw32-8.6.5\\package.conf.d","D:\\ghcup\\ghc\\8.6.5\\lib\\package.conf.d"]
modifying: D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db
flag db stack: ["D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\package.db"]
writing cache D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db\package.cache
Installed store entry
ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
packages definitely up to date: 
packages previously probably up to date: 
packages now probably up to date: 
packages newly up to date: 
packages out to date: 
packages invalid due to dep change: cabal-test-0.1.0.0-9848e717cfed9d05e08950e4e5de83d054a50961, cabal-test-0.1.0.0-cfcb93c3d8595a655927c100ce79bbdaaf168f88
packages invalid due to build failure: 
Reading installed packages...
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--global" "-v0"
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--package-db=D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-v0"
"D:\ghcup\bin\ghc.exe" "--print-libdir"

D:\ws\haskell\cabal-test>dir sr\ghc-8.6.5 /b
incoming
package.db
say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47
Output of `cabal --store-dir D:\ws\haskell\cabal-test\sr build -v3` (unit id 9d85f3e60b43742f757835053a7ea996c1c596e4)
File monitor 'config' unchanged.
this build was affected by the following (project) config files:
File monitor 'improved-plan' changed: monitor value changed
File monitor 'elaborated-plan' changed: monitor value changed
File monitor 'compiler' unchanged.
File monitor 'solver-plan' changed: monitor value changed
"D:\ghcup\bin\ghc.exe" "--print-global-package-db"
Reading installed packages...
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--global" "-v0"
"D:\ghcup\bin\ghc.exe" "--print-libdir"
Reading available packages of hackage.haskell.org...
Using most recent state specified from most recent cabal update
index-state(hackage.haskell.org) = 2021-10-12T23:40:28Z
Searching for pkg-config in path.
Cannot find pkg-config on the path
Searching for pkg-config in path.
Cannot find pkg-config on the path
Failed to query pkg-config, Cabal will continue without solving for pkg-config
constraints: Cannot find pkg-config program
Resolving dependencies...
targets: cabal-test
constraints: 
  any.base installed (non-upgradeable package)
  any.ghc-prim installed (non-upgradeable package)
  any.integer-gmp installed (non-upgradeable package)
  any.template-haskell installed (non-upgradeable package)
  setup.Cabal >=2.4 (minimum version of Cabal used by Setup.hs)
  setup.Cabal <3.8 (maximum version of Cabal used by Setup.hs)
  cabal-test.cabal-test ==0.1.0.0 (user target)
preferences: 
  cabal-test [TestStanzas,BenchStanzas]
...............
strategy: PreferLatestForSelected
reorder goals: False
count conflicts: True
fine grained conflicts: True
minimize conflict set: False
independent goals: False
avoid reinstalls: False
shadow packages: False
strong flags: False
allow boot library installs: False
only constrained packages: OnlyConstrainedNone
max backjumps: 4000
[__0] trying: cabal-test-0.1.0.0 (user goal)
[__1] trying: base-4.12.0.0/installed-4.12.0.0 (dependency of cabal-test)
[__2] trying: rts-1.0/installedrts (dependency of base)
[__3] trying: integer-gmp-1.0.2.0/installed-1.0.2.0 (dependency of base)
[__4] trying: ghc-prim-0.5.3/installed-0.5.3 (dependency of base)
[__5] trying: text-1.2.3.1/installed-1.2.3.1 (dependency of cabal-test)
[__6] trying: deepseq-1.4.4.0/installed-1.4.4.0 (dependency of text)
[__7] trying: binary-0.8.6.0/installed-0.8.6.0 (dependency of text)
[__8] trying: containers-0.6.0.1/installed-0.6.0.1 (dependency of binary)
[__9] trying: array-0.5.3.0/installed-0.5.3.0 (dependency of text)
[_10] trying: say-0.1.0.1 (dependency of cabal-test)
[_11] trying: say:!bench
[_12] trying: say:!test
[_13] trying: transformers-0.5.6.2/installed-0.5.6.2 (dependency of say)
[_14] next goal: bytestring (dependency of cabal-test)
[_14] trying: bytestring-0.10.8.2/installed-0.10.8.2
[_15] done
Elaborating the install plan...
File monitor 'source-hashes' unchanged.
Component graph for say-0.1.0.1: component lib
component say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include text-1.2.3.1
    include transformers-0.5.6.2
unit say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include text-1.2.3.1
    include transformers-0.5.6.2
    Say=say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4:Say
Component graph for cabal-test-0.1.0.0:
    component lib
    component exe:cabal-test dependency lib
component cabal-test-0.1.0.0-inplace
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
    include text-1.2.3.1
unit cabal-test-0.1.0.0-inplace
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
    include text-1.2.3.1
    CabalTestLib=cabal-test-0.1.0.0-inplace:CabalTestLib,MyData=cabal-test-0.1.0.0-inplace:MyData
component cabal-test-0.1.0.0-inplace-cabal-test
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include cabal-test-0.1.0.0-inplace
unit cabal-test-0.1.0.0-inplace-cabal-test
    include base-4.12.0.0
    include bytestring-0.10.8.2
    include cabal-test-0.1.0.0-inplace
PreExisting array-0.5.3.0 (array-0.5.3.0) base-4.12.0.0
PreExisting base-4.12.0.0 (base-4.12.0.0)
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
  rts
PreExisting binary-0.8.6.0 (binary-0.8.6.0)
  array-0.5.3.0
  base-4.12.0.0
  bytestring-0.10.8.2
  containers-0.6.0.1
PreExisting bytestring-0.10.8.2 (bytestring-0.10.8.2)
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-inplace)
  base-4.12.0.0
  bytestring-0.10.8.2
  say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
  text-1.2.3.1
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-inplace-cabal-test)
  base-4.12.0.0
  bytestring-0.10.8.2
  cabal-test-0.1.0.0-inplace
PreExisting containers-0.6.0.1 (containers-0.6.0.1)
  array-0.5.3.0
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
PreExisting deepseq-1.4.4.0 (deepseq-1.4.4.0)
  array-0.5.3.0
  base-4.12.0.0
PreExisting ghc-prim-0.5.3 (ghc-prim-0.5.3) rts
PreExisting integer-gmp-1.0.2.0 (integer-gmp-1.0.2.0) ghc-prim-0.5.3
PreExisting rts-1.0 (rts)
Configured say-0.1.0.1 (say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4)
  base-4.12.0.0
  bytestring-0.10.8.2
  text-1.2.3.1
  transformers-0.5.6.2
PreExisting text-1.2.3.1 (text-1.2.3.1)
  array-0.5.3.0
  base-4.12.0.0
  binary-0.8.6.0
  bytestring-0.10.8.2
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
PreExisting transformers-0.5.6.2 (transformers-0.5.6.2) base-4.12.0.0
Updating plan.json
Improving the install plan...
PreExisting array-0.5.3.0 (array-0.5.3.0) base-4.12.0.0
PreExisting base-4.12.0.0 (base-4.12.0.0)
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
  rts
PreExisting binary-0.8.6.0 (binary-0.8.6.0)
  array-0.5.3.0
  base-4.12.0.0
  bytestring-0.10.8.2
  containers-0.6.0.1
PreExisting bytestring-0.10.8.2 (bytestring-0.10.8.2)
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-inplace)
  base-4.12.0.0
  bytestring-0.10.8.2
  say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
  text-1.2.3.1
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-inplace-cabal-test)
  base-4.12.0.0
  bytestring-0.10.8.2
  cabal-test-0.1.0.0-inplace
PreExisting containers-0.6.0.1 (containers-0.6.0.1)
  array-0.5.3.0
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
PreExisting deepseq-1.4.4.0 (deepseq-1.4.4.0)
  array-0.5.3.0
  base-4.12.0.0
PreExisting ghc-prim-0.5.3 (ghc-prim-0.5.3) rts
PreExisting integer-gmp-1.0.2.0 (integer-gmp-1.0.2.0) ghc-prim-0.5.3
PreExisting rts-1.0 (rts)
Configured say-0.1.0.1 (say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4)
  base-4.12.0.0
  bytestring-0.10.8.2
  text-1.2.3.1
  transformers-0.5.6.2
PreExisting text-1.2.3.1 (text-1.2.3.1)
  array-0.5.3.0
  base-4.12.0.0
  binary-0.8.6.0
  bytestring-0.10.8.2
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
PreExisting transformers-0.5.6.2 (transformers-0.5.6.2) base-4.12.0.0
PreExisting array-0.5.3.0 (array-0.5.3.0) base-4.12.0.0
PreExisting base-4.12.0.0 (base-4.12.0.0)
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
  rts
PreExisting binary-0.8.6.0 (binary-0.8.6.0)
  array-0.5.3.0
  base-4.12.0.0
  bytestring-0.10.8.2
  containers-0.6.0.1
PreExisting bytestring-0.10.8.2 (bytestring-0.10.8.2)
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-inplace)
  base-4.12.0.0
  bytestring-0.10.8.2
  say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
  text-1.2.3.1
Configured cabal-test-0.1.0.0 (cabal-test-0.1.0.0-inplace-cabal-test)
  base-4.12.0.0
  bytestring-0.10.8.2
  cabal-test-0.1.0.0-inplace
PreExisting containers-0.6.0.1 (containers-0.6.0.1)
  array-0.5.3.0
  base-4.12.0.0
  deepseq-1.4.4.0
  ghc-prim-0.5.3
PreExisting deepseq-1.4.4.0 (deepseq-1.4.4.0)
  array-0.5.3.0
  base-4.12.0.0
PreExisting ghc-prim-0.5.3 (ghc-prim-0.5.3) rts
PreExisting integer-gmp-1.0.2.0 (integer-gmp-1.0.2.0) ghc-prim-0.5.3
PreExisting rts-1.0 (rts)
Configured say-0.1.0.1 (say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4)
  base-4.12.0.0
  bytestring-0.10.8.2
  text-1.2.3.1
  transformers-0.5.6.2
PreExisting text-1.2.3.1 (text-1.2.3.1)
  array-0.5.3.0
  base-4.12.0.0
  binary-0.8.6.0
  bytestring-0.10.8.2
  deepseq-1.4.4.0
  ghc-prim-0.5.3
  integer-gmp-1.0.2.0
PreExisting transformers-0.5.6.2 (transformers-0.5.6.2) base-4.12.0.0
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built:
 - say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4 (lib) (requires build)
 - cabal-test-0.1.0.0-inplace (lib) (dependency rebuilt)
 - cabal-test-0.1.0.0-inplace-cabal-test (exe:cabal-test) (dependency rebuilt)
Executing install plan serially.
creating D:\ws\haskell\cabal-test\dist-newstyle\build
creating D:\ws\haskell\cabal-test\dist-newstyle\tmp
Extracting
D:\cabal\packages\hackage.haskell.org\say\0.1.0.1\say-0.1.0.1.tar.gz to
D:\ws\haskell\cabal-test\dist-newstyle\tmp\src-13552...
Updating say.cabal with the latest revision from the index.
creating D:\ws\haskell\cabal-test\dist-newstyle\tmp\src-13552\say-0.1.0.1\dist
Using internal setup method with build-type Simple and args:
["configure","--verbose=3","--builddir=dist","--ghc","--prefix=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4","--bindir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\bin","--libdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\lib","--libsubdir=","--dynlibdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\lib","--libexecdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\libexec","--libexecsubdir=","--datadir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\share","--datasubdir=","--docdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\share\\doc","--htmldir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\share\\doc\\html","--haddockdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\share\\doc\\html","--sysconfdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\\etc","--enable-library-vanilla","--disable-library-profiling","--disable-shared","--disable-static","--disable-executable-dynamic","--disable-executable-static","--disable-profiling","--profiling-detail=default","--library-profiling-detail=default","--enable-optimization","--disable-debug-info","--disable-library-for-ghci","--disable-split-sections","--disable-split-objs","--disable-executable-stripping","--disable-library-stripping","--package-db=clear","--package-db=global","--package-db=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\package.db","--extra-include-dirs=D:\\ghcup\\msys64\\mingw64\\include","--cid=say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4","--extra-lib-dirs=D:\\ghcup\\msys64\\mingw64\\lib","--extra-prog-path=D:\\ghcup\\bin","--extra-prog-path=D:\\ghcup\\msys64\\home\\user\\AppData\\Roaming\\cabal\\bin","--extra-prog-path=D:\\ghcup\\msys64\\usr\\bin","--extra-prog-path=D:\\ghcup\\msys64\\mingw64\\bin","--dependency=base=base-4.12.0.0","--dependency=bytestring=bytestring-0.10.8.2","--dependency=text=text-1.2.3.1","--dependency=transformers=transformers-0.5.6.2","--disable-coverage","--exact-configuration","--allow-depending-on-private-libs","--with-ghc=D:\\ghcup\\bin\\ghc.exe","--with-ghc-pkg=D:\\ghcup\\bin\\ghc-pkg.exe","--ghc-option=-hide-all-packages","lib:say"]
Using Parsec parser
Configuring library for say-0.1.0.1..
creating dist\build
"D:\ghcup\bin\ghc.exe" "--numeric-version"
D:\ghcup\bin\ghc.exe is version 8.6.5
"D:\ghcup\bin\ghc-pkg.exe" "--version"
D:\ghcup\bin\ghc-pkg.exe is version 8.6.5
"D:\ghcup\bin\ghc.exe" "--supported-languages"
"D:\ghcup\bin\ghc.exe" "--info"
Reading installed packages...
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--global" "-v0"
"D:\ghcup\bin\ghc-pkg.exe" "dump" "--package-db=D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-v0"
"D:\ghcup\bin\ghc.exe" "--print-libdir" "-hide-all-packages"
Finalized package description:
cabal-version: >=1.10
name: say
version: 0.1.0.1
license: MIT
license-file: LICENSE
copyright: 2016-2018 FP Complete
maintainer: [email protected]
author: Michael Snoyman
homepage: https://github.com/fpco/say#readme
bug-reports: https://github.com/fpco/say/issues
synopsis: Send textual messages to a Handle in a thread-friendly way
description:
Please see the README and documentation at
<https://www.stackage.org/package/say>

category: Text
build-type: Simple
extra-source-files:
ChangeLog.md
README.md

source-repository head
type: git
location: https://github.com/fpco/say

library
exposed-modules: Say
hs-source-dirs: src
other-modules: Paths_say
default-language: Haskell2010
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
include-dirs: D:\ghcup\msys64\mingw64\include
build-depends:
base (>=4.9.1 && <5) && ==4.12.0.0,
bytestring >=0.10.4 && ==0.10.8.2,
text >=1.2 && ==1.2.3.1,
transformers >=0 && ==0.5.6.2

test-suite say-test
type: exitcode-stdio-1.0
main-is: Spec.hs
hs-source-dirs: test
other-modules:
SaySpec
Paths_say

default-language: Haskell2010
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
include-dirs: D:\ghcup\msys64\mingw64\include
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends:
base (>=4.9.1 && <5) && ==4.12.0.0,
bytestring >=0.10.4 && ==0.10.8.2,
hspec,
say,
text >=1.2 && ==1.2.3.1,
transformers >=0 && ==0.5.6.2,
unliftio

benchmark say-bench
type: exitcode-stdio-1.0
main-is: say-bench.hs
hs-source-dirs: bench
other-modules: Paths_say
default-language: Haskell2010
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
include-dirs: D:\ghcup\msys64\mingw64\include
ghc-options: -threaded -O2 -rtsopts -with-rtsopts=-N
build-depends:
base (>=4.9.1 && <5) && ==4.12.0.0,
bytestring >=0.10.4 && ==0.10.8.2,
gauge,
say,
text >=1.2 && ==1.2.3.1,
transformers >=0 && ==0.5.6.2,
unliftio
Expanding glob 'ChangeLog.md' in directory '.\.'.
Expanding glob 'README.md' in directory '.\.'.
Dependency base ==4.12.0.0: using base-4.12.0.0
Dependency bytestring ==0.10.8.2: using bytestring-0.10.8.2
Dependency text ==1.2.3.1: using text-1.2.3.1
Dependency transformers ==0.5.6.2: using transformers-0.5.6.2
Searching for alex in path.
Cannot find alex on the path
Searching for ar in path.
Found ar at D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe
Searching for c2hs in path.
Cannot find c2hs on the path
Searching for cpphs in path.
Cannot find cpphs on the path
Searching for doctest in path.
Cannot find doctest on the path
Searching for gcc in path.
Found gcc at D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe" "-dumpversion"
D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe is version 7.2.0
Searching for ghcjs in path.
Cannot find ghcjs on the path
Searching for ghcjs-pkg in path.
Cannot find ghcjs-pkg on the path
Searching for greencard in path.
Cannot find greencard on the path
looking for tool haddock near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\haddock.exe"]
found haddock in D:\ghcup\bin\haddock.exe
"D:\ghcup\bin\haddock.exe" "--version"
D:\ghcup\bin\haddock.exe is version 2.22.0
Searching for happy in path.
Cannot find happy on the path
Searching for hmake in path.
Cannot find hmake on the path
looking for tool hpc near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\hpc.exe"]
found hpc in D:\ghcup\bin\hpc.exe
"D:\ghcup\bin\hpc.exe" "version"
D:\ghcup\bin\hpc.exe is version 0.67
looking for tool hsc2hs near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\hsc2hs.exe"]
found hsc2hs in D:\ghcup\bin\hsc2hs.exe
"D:\ghcup\bin\hsc2hs.exe" "--version"
D:\ghcup\bin\hsc2hs.exe is version 0.68.5
Searching for HsColour in path.
Cannot find HsColour on the path
Searching for jhc in path.
Cannot find jhc on the path
Searching for ld in path.
Found ld at D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ld.exe
Environment: [...]
"D:\ghcup\bin\ghc.exe" "-hide-all-packages" "-c" "D:\ws\haskell\cabal-test\tmp\ghc3440.c" "-o" "D:\ws\haskell\cabal-test\tmp\ghc3441.o" "-hide-all-packages"
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ld.exe" "-x" "-r" "D:\ws\haskell\cabal-test\tmp\ghc3441.o" "-o" "D:\ws\haskell\cabal-test\tmp\ghc3CAB.o"
Searching for pkg-config in path.
Found pkg-config at D:\ghcup\msys64\mingw64\bin\pkg-config.exe
"D:\ghcup\msys64\mingw64\bin\pkg-config.exe" "--version"
D:\ghcup\msys64\mingw64\bin\pkg-config.exe is version 0.29.2
looking for tool runghc near compiler in D:\ghcup\bin
candidate locations: ["D:\\ghcup\\bin\\runghc.exe"]
found runghc in D:\ghcup\bin\runghc.exe
"D:\ghcup\bin\runghc.exe" "--version"
D:\ghcup\bin\runghc.exe is version 8.6.5
Searching for strip in path.
Cannot find strip on the path
Searching for tar in path.
Cannot find tar on the path
Searching for uhc in path.
Cannot find uhc on the path
Source component graph: component lib
Configured component graph:
    component say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
        include base-4.12.0.0
        include bytestring-0.10.8.2
        include text-1.2.3.1
        include transformers-0.5.6.2
Linked component graph:
    unit say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
        include base-4.12.0.0
        include bytestring-0.10.8.2
        include text-1.2.3.1
        include transformers-0.5.6.2
        Say=say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4:Say
Ready component graph:
    definite say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
        depends base-4.12.0.0
        depends bytestring-0.10.8.2
        depends text-1.2.3.1
        depends transformers-0.5.6.2
Using Cabal-3.6.2.0 compiled by ghc-8.10
Using compiler: ghc-8.6.5
Using install prefix:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
Executables installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\bin
Libraries installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
Dynamic Libraries installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
Private executables installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\libexec
Data files installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share
Documentation installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share\doc
Configuration files installed in:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\etc
No alex found
Using ar found on system at: D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe
No c2hs found
No cpphs found
No doctest found
Using gcc version 7.2.0 found on system at:
D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe
Using ghc version 8.6.5 given by user at: D:\ghcup\bin\ghc.exe
Using ghc-pkg version 8.6.5 given by user at: D:\ghcup\bin\ghc-pkg.exe
No ghcjs found
No ghcjs-pkg found
No greencard found
Using haddock version 2.22.0 found on system at: D:\ghcup\bin\haddock.exe
No happy found
Using haskell-suite found on system at: haskell-suite-dummy-location
Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
No hmake found
Using hpc version 0.67 found on system at: D:\ghcup\bin\hpc.exe
Using hsc2hs version 0.68.5 found on system at: D:\ghcup\bin\hsc2hs.exe
No hscolour found
No jhc found
Using ld found on system at: D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ld.exe
Using pkg-config version 0.29.2 found on system at:
D:\ghcup\msys64\mingw64\bin\pkg-config.exe
Using runghc version 8.6.5 found on system at: D:\ghcup\bin\runghc.exe
No strip found
No tar found
No uhc found
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\gcc.exe" "-fno-stack-protector" "D:\ws\haskell\cabal-test\tmp\ghc3F0E.c" "-o" "D:\ws\haskell\cabal-test\tmp\ghc3F0F" "-D__GLASGOW_HASKELL__=806" "-Dmingw32_BUILD_OS=1" "-Dx86_64_BUILD_ARCH=1" "-Dmingw32_HOST_OS=1" "-Dx86_64_HOST_ARCH=1" "-Idist\build\autogen" "-ID:\ghcup\msys64\mingw64\include" "-I." "-ID:\ghcup\ghc\8.6.5\lib\bytestring-0.10.8.2\include" "-ID:\ghcup\ghc\8.6.5\lib\base-4.12.0.0\include" "-ID:\ghcup\ghc\8.6.5\lib\integer-gmp-1.0.2.0\include" "-ID:\ghcup\ghc\8.6.5\lib/include" "-LD:\ghcup\msys64\mingw64\lib" "-LD:\ghcup\ghc\8.6.5\lib\transformers-0.5.6.2" "-LD:\ghcup\ghc\8.6.5\lib\text-1.2.3.1" "-LD:\ghcup\ghc\8.6.5\lib\binary-0.8.6.0" "-LD:\ghcup\ghc\8.6.5\lib\containers-0.6.0.1" "-LD:\ghcup\ghc\8.6.5\lib\bytestring-0.10.8.2" "-LD:\ghcup\ghc\8.6.5\lib\deepseq-1.4.4.0" "-LD:\ghcup\ghc\8.6.5\lib\array-0.5.3.0" "-LD:\ghcup\ghc\8.6.5\lib\base-4.12.0.0" "-LD:\ghcup\ghc\8.6.5\lib\integer-gmp-1.0.2.0" "-LD:\ghcup\ghc\8.6.5\lib\ghc-prim-0.5.3" "-LD:\ghcup\ghc\8.6.5\lib/rts"
Using internal setup method with build-type Simple and args:
["build","--verbose=3","--builddir=dist"]
Component build order: library
Environment: [...]
"D:\ghcup\bin\ghc-pkg.exe" "init" "dist\package.conf.inplace" "-v2"
GHC package manager version 8.6.5
writing cache dist\package.conf.inplace\package.cache
creating dist\build
creating dist\build\autogen
creating dist\build\autogen
Preprocessing library for say-0.1.0.1..
Building library for say-0.1.0.1..
creating dist\build
Environment: [...]
"D:\ghcup\bin\ghc.exe" "--make" "-fbuilding-cabal-package" "-O" "-outputdir" "dist\build" "-odir" "dist\build" "-hidir" "dist\build" "-stubdir" "dist\build" "-i" "-idist\build" "-isrc" "-idist\build\autogen" "-idist\build\global-autogen" "-Idist\build\autogen" "-Idist\build\global-autogen" "-Idist\build" "-ID:\ghcup\msys64\mingw64\include" "-optP-include" "-optPdist\build\autogen\cabal_macros.h" "-this-unit-id" "say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4" "-hide-all-packages" "-Wmissing-home-modules" "-no-user-package-db" "-package-db" "D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-package-db" "dist\package.conf.inplace" "-package-id" "base-4.12.0.0" "-package-id" "bytestring-0.10.8.2" "-package-id" "text-1.2.3.1" "-package-id" "transformers-0.5.6.2" "-XHaskell2010" "Say" "Paths_say" "-hide-all-packages"
[1 of 2] Compiling Paths_say        ( dist\build\autogen\Paths_say.hs, dist\build\Paths_say.o )
[2 of 2] Compiling Say              ( src\Say.hs, dist\build\Say.o )
Linking...
[(DefiniteUnitId (DefUnitId {unDefUnitId = UnitId
"base-4.12.0.0"}),DefaultRenaming),(DefiniteUnitId (DefUnitId {unDefUnitId =
UnitId "bytestring-0.10.8.2"}),DefaultRenaming),(DefiniteUnitId (DefUnitId
{unDefUnitId = UnitId "text-1.2.3.1"}),DefaultRenaming),(DefiniteUnitId
(DefUnitId {unDefUnitId = UnitId "transformers-0.5.6.2"}),DefaultRenaming)]
dist\build\objs-13552\ar4D16.rsp contents: <<<
dist\\build\\Say.o
dist\\build\\Paths_say.o
>>> dist\build\objs-13552\ar4D16.rsp
Environment: [...]
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe" "-r" "-v" "dist\build\objs-13552\libHSsay-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4.a" "@dist\build\objs-13552\ar4D16.rsp"
a - dist\build\Say.o
a - dist\build\Paths_say.o
D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe: creando dist\build\objs-13552\libHSsay-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4.a
Using internal setup method with build-type Simple and args:
["copy","--verbose=3","--builddir=dist","--destdir=D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\incoming\\new-13552"]
directory dist\doc\html\say does exist: False
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share\doc
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws
creating D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share\doc
Installing LICENSE to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share\doc\LICENSE
Installing library in D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
Installing dist\build\Say.hi to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib\Say.hi
Installing dist\build\Paths_say.hi to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib\Paths_say.hi
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
Installing
dist\build\libHSsay-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4.a to
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib\libHSsay-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4.a
creating
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\incoming\new-13552\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
Using internal setup method with build-type Simple and args:
["register","--verbose=3","--builddir=dist","--gen-pkg-config=D:\\ws\\haskell\\cabal-test\\dist-newstyle\\tmp\\package-registration--13552\\pkgConf"]
"D:\ghcup\bin\ghc.exe" "--abi-hash" "-fbuilding-cabal-package" "-O" "-outputdir" "dist\build" "-odir" "dist\build" "-hidir" "dist\build" "-stubdir" "dist\build" "-i" "-idist\build" "-isrc" "-idist\build\autogen" "-idist\build\global-autogen" "-Idist\build\autogen" "-Idist\build\global-autogen" "-Idist\build" "-ID:\ghcup\msys64\mingw64\include" "-optP-include" "-optPdist\build\autogen\cabal_macros.h" "-this-unit-id" "say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4" "-hide-all-packages" "-Wmissing-home-modules" "-no-user-package-db" "-XHaskell2010" "Say" "-hide-all-packages"
name: say
version: 0.1.0.1
visibility: public
id: say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
key: say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
license: MIT
copyright: 2016-2018 FP Complete
maintainer: [email protected]
author: Michael Snoyman
homepage: https://github.com/fpco/say#readme
synopsis: Send textual messages to a Handle in a thread-friendly way
description:
Please see the README and documentation at
<https://www.stackage.org/package/say>

category: Text
abi: a86eb9f54ad2c546c0e625961a743984
exposed: True
exposed-modules: Say
hidden-modules: Paths_say
import-dirs:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib

library-dirs:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
D:\ghcup\msys64\mingw64\lib

dynamic-library-dirs:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\lib
D:\ghcup\msys64\mingw64\lib

data-dir:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share

hs-libraries: HSsay-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
include-dirs: D:\ghcup\msys64\mingw64\include
depends:
base-4.12.0.0 bytestring-0.10.8.2 text-1.2.3.1 transformers-0.5.6.2

haddock-interfaces:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share\doc\html\say.haddock

haddock-html:
D:\ws\haskell\cabal-test\sr\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\share\doc\html
Creating package registration file:
D:\ws\haskell\cabal-test\dist-newstyle\tmp\package-registration--13552\pkgConf
Environment: [...]
"D:\ghcup\bin\ghc-pkg.exe" "recache" "--package-db=D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-v2"
GHC package manager version 8.6.5
reading package config: D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47.conf
reading package config: D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\xhtml-3000.2.2.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\Win32-2.6.1.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\transformers-0.5.6.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\time-1.8.0.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\text-1.2.3.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\template-haskell-2.14.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\stm-2.5.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\rts.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\process-1.6.5.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\pretty-1.1.3.6.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\parsec-3.1.13.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\mtl-2.2.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\libiserv-8.6.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\integer-gmp-1.0.2.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\hpc-0.6.0.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\haskeline-0.7.4.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghci-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-prim-0.5.3.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-heap-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-compact-0.1.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-boot-th-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-boot-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\ghc-8.6.5.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\filepath-1.4.2.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\directory-1.3.3.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\deepseq-1.4.4.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\containers-0.6.0.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\Cabal-2.4.0.1.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\bytestring-0.10.8.2.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\binary-0.8.6.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\base-4.12.0.0.conf
reading package config: D:\ghcup\ghc\8.6.5\lib\package.conf.d\array-0.5.3.0.conf
db stack: ["D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\package.db","C:\\Users\\user\\AppData\\Roaming\\ghc\\x86_64-mingw32-8.6.5\\package.conf.d","D:\\ghcup\\ghc\\8.6.5\\lib\\package.conf.d"]
modifying: D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db
flag db stack: ["D:\\ws\\haskell\\cabal-test\\sr\\ghc-8.6.5\\package.db"]
writing cache D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db\package.cache
Installed store entry
ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\cache
Using internal setup method with build-type Simple and args:
["build","--verbose=3","--builddir=D:\\ws\\haskell\\cabal-test\\dist-newstyle\\build\\x86_64-windows\\ghc-8.6.5\\cabal-test-0.1.0.0"]
Component build order: library
Environment: [...]
"D:\ghcup\bin\ghc-pkg.exe" "init" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\package.conf.inplace" "-v2"
GHC package manager version 8.6.5
writing cache D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\package.conf.inplace\package.cache
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\autogen
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\autogen
Preprocessing library for cabal-test-0.1.0.0..
Building library for cabal-test-0.1.0.0..
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build
Environment: [...]
"D:\ghcup\bin\ghc.exe" "--make" "-fbuilding-cabal-package" "-O" "-outputdir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build" "-odir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build" "-hidir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build" "-stubdir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build" "-i" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build" "-ilib" "-ishared" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\autogen" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\global-autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\global-autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build" "-ID:\ghcup\msys64\mingw64\include" "-optP-include" "-optPD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\autogen\cabal_macros.h" "-this-unit-id" "cabal-test-0.1.0.0-inplace" "-hide-all-packages" "-Wmissing-home-modules" "-no-user-package-db" "-package-db" "D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-package-db" "D:\ws\haskell\cabal-test\dist-newstyle\packagedb\ghc-8.6.5" "-package-db" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\package.conf.inplace" "-package-id" "base-4.12.0.0" "-package-id" "bytestring-0.10.8.2" "-package-id" "say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4" "-package-id" "text-1.2.3.1" "-XHaskell2010" "-XOverloadedStrings" "CabalTestLib" "MyData" "Lib.MyModule" "Lib.MyModule2" "Paths_cabal_test" "-Wall" "-Wincomplete-uni-patterns" "-Wno-name-shadowing" "-hide-all-packages"
Linking...
[(DefiniteUnitId (DefUnitId {unDefUnitId = UnitId
"base-4.12.0.0"}),DefaultRenaming),(DefiniteUnitId (DefUnitId {unDefUnitId =
UnitId "bytestring-0.10.8.2"}),DefaultRenaming),(DefiniteUnitId (DefUnitId
{unDefUnitId = UnitId
"say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4"}),DefaultRenaming),(DefiniteUnitId
(DefUnitId {unDefUnitId = UnitId "text-1.2.3.1"}),DefaultRenaming)]
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\objs-13552\ar58EB.rsp
contents: <<<
D:\\ws\\haskell\\cabal-test\\dist-newstyle\\build\\x86_64-windows\\ghc-8.6.5\\cabal-test-0.1.0.0\\build\\CabalTestLib.o
D:\\ws\\haskell\\cabal-test\\dist-newstyle\\build\\x86_64-windows\\ghc-8.6.5\\cabal-test-0.1.0.0\\build\\MyData.o
D:\\ws\\haskell\\cabal-test\\dist-newstyle\\build\\x86_64-windows\\ghc-8.6.5\\cabal-test-0.1.0.0\\build\\Lib\\MyModule.o
D:\\ws\\haskell\\cabal-test\\dist-newstyle\\build\\x86_64-windows\\ghc-8.6.5\\cabal-test-0.1.0.0\\build\\Lib\\MyModule2.o
D:\\ws\\haskell\\cabal-test\\dist-newstyle\\build\\x86_64-windows\\ghc-8.6.5\\cabal-test-0.1.0.0\\build\\Paths_cabal_test.o
>>>
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\objs-13552\ar58EB.rsp
Environment: [...]
"D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe" "-r" "-v" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\objs-13552\libHScabal-test-0.1.0.0-inplace.a" "@D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\objs-13552\ar58EB.rsp"
a - D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\CabalTestLib.o
a - D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\MyData.o
a - D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\Lib\MyModule.o
a - D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\Lib\MyModule2.o
a - D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\Paths_cabal_test.o
D:\ghcup\ghc\8.6.5\lib\../mingw/bin\ar.exe: creando D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\build\objs-13552\libHScabal-test-0.1.0.0-inplace.a
whenReRegister: previously registered
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\cache
Using internal setup method with build-type Simple and args:
["build","--verbose=3","--builddir=D:\\ws\\haskell\\cabal-test\\dist-newstyle\\build\\x86_64-windows\\ghc-8.6.5\\cabal-test-0.1.0.0\\x\\cabal-test"]
Component build order: executable 'cabal-test'
Environment: [...]
"D:\ghcup\bin\ghc-pkg.exe" "init" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\package.conf.inplace" "-v2"
GHC package manager version 8.6.5
writing cache D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\package.conf.inplace\package.cache
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen
Preprocessing executable 'cabal-test' for cabal-test-0.1.0.0..
Building executable 'cabal-test' for cabal-test-0.1.0.0..
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test
creating
D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp
Environment: [...]
"D:\ghcup\bin\ghc.exe" "--make" "-no-link" "-fbuilding-cabal-package" "-O" "-static" "-outputdir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-odir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-hidir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-stubdir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-i" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-isrc" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\global-autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\global-autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-ID:\ghcup\msys64\mingw64\include" "-optP-include" "-optPD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen\cabal_macros.h" "-hide-all-packages" "-Wmissing-home-modules" "-no-user-package-db" "-package-db" "D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-package-db" "D:\ws\haskell\cabal-test\dist-newstyle\packagedb\ghc-8.6.5" "-package-db" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\package.conf.inplace" "-package-id" "base-4.12.0.0" "-package-id" "bytestring-0.10.8.2" "-package-id" "cabal-test-0.1.0.0-inplace" "-XHaskell2010" "src\Main.hs" "MyPrefix.MyModuleExe" "-Wall" "-Wincomplete-uni-patterns" "-Wno-name-shadowing" "-hide-all-packages"
Linking...
Environment: [...]
"D:\ghcup\bin\ghc.exe" "--make" "-fbuilding-cabal-package" "-O" "-static" "-outputdir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-odir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-hidir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-stubdir" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-i" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-isrc" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen" "-iD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\global-autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\global-autogen" "-ID:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test-tmp" "-ID:\ghcup\msys64\mingw64\include" "-optP-include" "-optPD:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\autogen\cabal_macros.h" "-LD:\ghcup\msys64\mingw64\lib" "-hide-all-packages" "-Wmissing-home-modules" "-no-user-package-db" "-package-db" "D:\ws\haskell\cabal-test\sr\ghc-8.6.5\package.db" "-package-db" "D:\ws\haskell\cabal-test\dist-newstyle\packagedb\ghc-8.6.5" "-package-db" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\package.conf.inplace" "-package-id" "base-4.12.0.0" "-package-id" "bytestring-0.10.8.2" "-package-id" "cabal-test-0.1.0.0-inplace" "-XHaskell2010" "src\Main.hs" "MyPrefix.MyModuleExe" "-o" "D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test.exe" "-Wall" "-Wincomplete-uni-patterns" "-Wno-name-shadowing" "-hide-all-packages"
whenReRegister: previously registered
packages definitely up to date: cabal-test-0.1.0.0-inplace, cabal-test-0.1.0.0-inplace-cabal-test
packages previously probably up to date: cabal-test-0.1.0.0-inplace, cabal-test-0.1.0.0-inplace-cabal-test
packages now probably up to date: cabal-test-0.1.0.0-inplace, cabal-test-0.1.0.0-inplace-cabal-test
packages newly up to date: 
packages out to date: 
packages invalid due to dep change: 
packages invalid due to build failure: 

I dont see anything on how the unit id is being computed

@gbaz
Copy link
Collaborator

gbaz commented Oct 13, 2021

@jneira interesting! and you can confirm this is windows only? (or at least not linux?)

One thing I would suggest to investigate further is to hack up the renderPackageHashInputs function, and add a trace that prints the inputs in a human readable form (as well as the resultant hash). If we're computing different hashes then clearly that should be visible when we see the inputs in human readable form, and then we can see what might cause this difference:

renderPackageHashInputs :: PackageHashInputs -> LBS.ByteString

@jneira
Copy link
Member Author

jneira commented Oct 13, 2021

@jneira interesting! and you can confirm this is windows only? (or at least not linux?)

no, I assumed it works in Linux from some comments in the linked issues

will try to trace the cause in the code places you are pointing, many thanks

@gbaz
Copy link
Collaborator

gbaz commented Oct 13, 2021

I can confirm that on os x I can't reproduce.

cabal init
(edit cabal file to add say as a dep)
cabal --store-dir /path/to/sr build
cabal --store-dir /path/to/sr install

will only create one installation of say and will reuse it.

ghc 8.10.4, cabal-install 3.6.2.0

@mouse07410
Copy link
Collaborator

mouse07410 commented Oct 14, 2021

Updated

It reproduces consistently on MacOS with a pretty complex project (Agda), and with the toy project too.

ghc 9.0.1 and 8.10.7, cabal-install 3.6.2.0.

Trying to reproduce what @gbaz did, I clearly see that say-0.1.0.1 library does get rebuilt upon install:

$ pwd
/Users/ur20980/src/test-dr
$ cabal --store-dir $HOME/src/test-dr/store build
Resolving dependencies...
Build profile: -w ghc-9.0.1 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - test-dr-0.1.0.0 (exe:test-dr) (first run)
Starting     say-0.1.0.1 (lib)
Building     say-0.1.0.1 (lib)
Installing   say-0.1.0.1 (lib)
Completed    say-0.1.0.1 (lib)
Configuring executable 'test-dr' for test-dr-0.1.0.0..
Preprocessing executable 'test-dr' for test-dr-0.1.0.0..
Building executable 'test-dr' for test-dr-0.1.0.0..
[1 of 1] Compiling Main             ( app/Main.hs, /Users/ur20980/src/test-dr/dist-newstyle/build/x86_64-osx/ghc-9.0.1/test-dr-0.1.0.0/x/test-dr/build/test-dr/test-dr-tmp/Main.dyn_o )
Linking /Users/ur20980/src/test-dr/dist-newstyle/build/x86_64-osx/ghc-9.0.1/test-dr-0.1.0.0/x/test-dr/build/test-dr/test-dr ...
$ cabal --store-dir $HOME/src/test-dr/store install
Wrote tarball sdist to
/Users/ur20980/src/test-dr/dist-newstyle/sdist/test-dr-0.1.0.0.tar.gz
Resolving dependencies...
Build profile: -w ghc-9.0.1 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - test-dr-0.1.0.0 (exe:test-dr) (requires build)
Starting     say-0.1.0.1 (lib)
Building     say-0.1.0.1 (lib)
Installing   say-0.1.0.1 (lib)
Completed    say-0.1.0.1 (lib)
Starting     test-dr-0.1.0.0 (exe:test-dr)
Building     test-dr-0.1.0.0 (exe:test-dr)
Installing   test-dr-0.1.0.0 (exe:test-dr)
Completed    test-dr-0.1.0.0 (exe:test-dr)
Symlinking 'test-dr' to '/Users/ur20980/.cabal/bin/test-dr'
$ 

Here's test-dr.cabal:

cabal-version:      2.4
name:               test-dr
version:            0.1.0.0

-- A short (one-line) description of the package.
-- synopsis:

-- A longer description of the package.
-- description:

-- A URL where users can report bugs.
-- bug-reports:

-- The license under which the package is released.
-- license:
-- author:
-- maintainer:

-- A copyright notice.
-- copyright:
-- category:
extra-source-files: CHANGELOG.md

executable test-dr
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:    base ^>=4.15.0.0
                    , say
    hs-source-dirs:   app
    default-language: Haskell2010

Forcing GHC to 8.8.4 via cabal.project - same result (rebuilds say):

$ cabal --store-dir $HOME/src/test-dr/store build
Resolving dependencies...
Build profile: -w ghc-8.8.4 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (first run)
 - test-dr-0.1.0.0 (exe:test-dr) (first run)
Configuring library for say-0.1.0.1..
Preprocessing library for say-0.1.0.1..
Building library for say-0.1.0.1..
[1 of 2] Compiling Paths_say        ( /Users/ur20980/src/test-dr/dist-newstyle/build/x86_64-osx/ghc-8.8.4/say-0.1.0.1/build/autogen/Paths_say.hs, /Users/ur20980/src/test-dr/dist-newstyle/build/x86_64-osx/ghc-8.8.4/say-0.1.0.1/build/Paths_say.o )
[2 of 2] Compiling Say              ( src/Say.hs, /Users/ur20980/src/test-dr/dist-newstyle/build/x86_64-osx/ghc-8.8.4/say-0.1.0.1/build/Say.o )
Configuring executable 'test-dr' for test-dr-0.1.0.0..
Preprocessing executable 'test-dr' for test-dr-0.1.0.0..
Building executable 'test-dr' for test-dr-0.1.0.0..
[1 of 1] Compiling Main             ( app/Main.hs, /Users/ur20980/src/test-dr/dist-newstyle/build/x86_64-osx/ghc-8.8.4/test-dr-0.1.0.0/x/test-dr/build/test-dr/test-dr-tmp/Main.dyn_o )
Linking /Users/ur20980/src/test-dr/dist-newstyle/build/x86_64-osx/ghc-8.8.4/test-dr-0.1.0.0/x/test-dr/build/test-dr/test-dr ...
$ cabal --store-dir $HOME/src/test-dr/store install
Wrote tarball sdist to
/Users/ur20980/src/test-dr/dist-newstyle/sdist/say-0.1.0.1.tar.gz
Wrote tarball sdist to
/Users/ur20980/src/test-dr/dist-newstyle/sdist/test-dr-0.1.0.0.tar.gz
Resolving dependencies...
Build profile: -w ghc-8.8.4 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - test-dr-0.1.0.0 (exe:test-dr) (requires build)
Starting     say-0.1.0.1 (lib)
Building     say-0.1.0.1 (lib)
Installing   say-0.1.0.1 (lib)
Completed    say-0.1.0.1 (lib)
Starting     test-dr-0.1.0.0 (exe:test-dr)
Building     test-dr-0.1.0.0 (exe:test-dr)
Installing   test-dr-0.1.0.0 (exe:test-dr)
Completed    test-dr-0.1.0.0 (exe:test-dr)
Symlinking 'test-dr' to '/Users/ur20980/.cabal/bin/test-dr'

@mouse07410
Copy link
Collaborator

@jneira perhaps, editing the title of this issue to remove "windows" would make sense?

@jneira jneira changed the title cabal install rebuilds all dependencies after a cabal build in windows cabal install rebuilds all dependencies after a cabal build Oct 14, 2021
@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

@mouse07410 thanks for take time to reproduce it in another os, i've removed the windows label and changed the title as you noted
Interesting, we have two envs with different behaviour, so compare it could help to trace the issue. Another pieze of the puzzle which might be related is the cabal global configuration.
In one of the envs i reproduce the issue consistently such cabal config is (only non default values):

store-dir: D:\csd
extra-include-dirs: D:\ghcup\msys64\mingw64\include
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
extra-prog-path: D:\ghcup\bin,
                 D:\ghcup\msys64\usr\bin,
                 D:\ghcup\msys64\mingw64\bin
jobs: 1

@mouse07410
Copy link
Collaborator

My ~/.cabal/config (many defalt values omitted to save space):

-- This config file was generated using the following versions
-- of Cabal and cabal-install:
-- Cabal library version: 3.6.1.0
-- cabal-install version: 3.6.0.0

repository hackage.haskell.org
  url: http://hackage.haskell.org/
  -- secure: True
  -- root-keys:
  -- key-threshold: 3

-- default-user-config:
-- ignore-expiry: False
-- http-transport:
-- nix: False
-- local-no-index-repo:
remote-repo-cache: /Users/ur20980/.cabal/packages
-- logs-dir: /Users/ur20980/.cabal/logs
world-file: /Users/ur20980/.cabal/world
-- store-dir:
-- active-repositories:
-- verbose: 1
-- compiler: ghc
-- library-vanilla: True
-- library-profiling:
shared: True
-- static:
executable-dynamic: True
-- executable-static: False
-- profiling:
-- flags:
extra-include-dirs: /opt/local/include,/usr/local/include
-- deterministic:
-- cid:
extra-lib-dirs: /usr/lib,
                /opt/local/lib/liconv,
                /opt/local/lib,
                /usr/local/lib
-- extra-framework-dirs:
extra-prog-path: /Users/ur20980/.cabal/bin
-- instantiate-with:
-- symlink-bindir:
build-summary: /Users/ur20980/.cabal/logs/build.log
-- build-log:
remote-build-reporting: none
-- report-planning-failure: False
-- per-component: True
-- one-shot: False
-- run-tests:
jobs: $ncpus
-- keep-going: False
-- install-method:
installdir: /Users/ur20980/.cabal/bin
-- username:
-- password:
-- password-command:
-- builddir:

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

I think i've found the possible cause, thanks to @gbaz's tip

  • when the lib is installed in the store it creates a cabal-hash.txt with the inputs used to compute the hash:

LBS.writeFile
(entryDir </> "cabal-hash.txt")
(renderPackageHashInputs (packageHashInputs pkgshared pkg))

  • so i've opened those files for the 2 versions of haskell say installed incorrectly:
    • store\ghc-8.6.5\say-0.1.0.1-f56dd8dcb828e676e2fe979752cedce7d5e3ea47\cabal-hash.txt (created by cabal install)
pkgid: say-0.1.0.1
component: ComponentLib
src: f639656fc21925c45f3f55769b9fb7a90699e943376a725e215a5deea473b3e4
pkg-config-deps: 
deps: base-4.12.0.0, bytestring-0.10.8.2, text-1.2.3.1, transformers-0.5.6.2
compilerid: ghc-8.6.5
platform: x86_64-windows
stripped-exe: False
debug-info: 0
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib D:\ghcup\msys64\mingw64\lib
extra-include-dirs: D:\ghcup\msys64\mingw64\include D:\ghcup\msys64\mingw64\include
  • store\ghc-8.6.5\say-0.1.0.1-9d85f3e60b43742f757835053a7ea996c1c596e4\cabal-hash.txt (created by cabal build)
pkgid: say-0.1.0.1
component: ComponentLib
src: f639656fc21925c45f3f55769b9fb7a90699e943376a725e215a5deea473b3e4
pkg-config-deps: 
deps: base-4.12.0.0, bytestring-0.10.8.2, text-1.2.3.1, transformers-0.5.6.2
compilerid: ghc-8.6.5
platform: x86_64-windows
stripped-exe: False
debug-info: 0
extra-lib-dirs: D:\ghcup\msys64\mingw64\lib
extra-include-dirs: D:\ghcup\msys64\mingw64\include
  • So cabal build is only using the first entry for extra-lib-dirs and extra-include-dirs!!! I guess it is a bug with maybe more consequences (if it is using the first entry in other code points) So cabal install is duplicating the value of both extra-lib-dirs and extra-include-dirs
  • This matches the common non default global config changes between @mouse07410 and me: we both have several entries at least one entry for those fields. I guess @gbaz has only one or zero entries for both, so it is not reproduced in his env. I have to say that comparing both configs made me suspect that those fields could be the cause 😉

The definitive check would be remove our (@mouse07410 and mine) entries for both fields to check it make the issue go away and add one entry in the @gbaz case to check it makes reproduce the rebuild in his case.

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

Possible actions to fix if we double check that is the cause:

  • Add a entry log informing cabal is writing that file with its full path with -v, to make it more discoverable
  • Log the entire package hash inputs being written with -v3
  • Fix the bug using all entries for both fields normalizing them (so make it independent from separators and paths order) removing duplicate entries in the cabal install case
    • And taking a careful look just in case cabal build is using one entry in other phases of the build cabal install is using duplicate entries in other phases of the install (making double unnecessary work)

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

Oh wait the bug is cabal install is duplicating entries no cabal build pruning them 🤣 sorry for the confusion

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

  • Commenting out extra-lib-dirs and extra-include-dirs in my global cabal config:
D:\ws\haskell\cabal-test>cabal --store-dir .\sr2 build
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - say-0.1.0.1 (lib) (requires build)
 - cabal-test-0.1.0.0 (lib) (configuration changed)
 - cabal-test-0.1.0.0 (exe:cabal-test) (configuration changed)
Configuring library for say-0.1.0.1..
Preprocessing library for say-0.1.0.1..
..................
Installing library in D:\ws\haskell\cabal-test\sr2\ghc-8.6.5\incoming\new-14652\ws\haskell\cabal-test\sr2\ghc-8.6.5\say-0.1.0.1-039d9278143b0425f391d403ccc786c9
e10ff5ed\lib
Configuring library for cabal-test-0.1.0.0..
Preprocessing library for cabal-test-0.1.0.0..
Building library for cabal-test-0.1.0.0..
....................
Configuring executable 'cabal-test' for cabal-test-0.1.0.0..
Preprocessing executable 'cabal-test' for cabal-test-0.1.0.0..
Building executable 'cabal-test' for cabal-test-0.1.0.0..
.................
Linking D:\ws\haskell\cabal-test\dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-test-0.1.0.0\x\cabal-test\build\cabal-test\cabal-test.exe ...

D:\ws\haskell\cabal-test>dir sr2\ghc-8.6.5 /B
incoming
package.db
say-0.1.0.1-039d9278143b0425f391d403ccc786c9e10ff5ed

D:\ws\haskell\cabal-test>cabal --store-dir .\sr2 install
Wrote tarball sdist to
D:\ws\haskell\cabal-test\dist-newstyle\sdist\cabal-test-0.1.0.0.tar.gz
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - cabal-test-0.1.0.0 (lib) (requires build)
 - cabal-test-0.1.0.0 (exe:cabal-test) (requires build)
Configuring library for cabal-test-0.1.0.0..
cabal-3.6.2.0.exe: The following package dependencies were requested
--dependency='say=say-0.1.0.1-039d9278143b0425f391d403ccc786c9e10ff5ed'
however the given installed package instance does not exist.

cabal-3.6.2.0.exe: Failed to build cabal-test-0.1.0.0 (which is required by
exe:cabal-test from cabal-test-0.1.0.0). The failure occurred during the
configure step.


D:\ws\haskell\cabal-test>cabal --store-dir D:\ws\haskell\cabal-test\sr2 install
Wrote tarball sdist to
D:\ws\haskell\cabal-test\dist-newstyle\sdist\cabal-test-0.1.0.0.tar.gz
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - cabal-test-0.1.0.0 (lib) (requires build)
 - cabal-test-0.1.0.0 (exe:cabal-test) (requires build)
Configuring library for cabal-test-0.1.0.0..
Preprocessing library for cabal-test-0.1.0.0..
Building library for cabal-test-0.1.0.0..
.....................
Installing library in D:\ws\haskell\cabal-test\sr2\ghc-8.6.5\incoming\new-14096\ws\haskell\cabal-test\sr2\ghc-8.6.5\cabal-test-0.1.0.0-642579f8db9e9dbadf3fe70e7df07675e2509c5d\lib
Configuring executable 'cabal-test' for cabal-test-0.1.0.0..
Preprocessing executable 'cabal-test' for cabal-test-0.1.0.0..
Building executable 'cabal-test' for cabal-test-0.1.0.0..
...................
Linking dist\build\cabal-test\cabal-test.exe ...
Installing executable cabal-test in D:\ws\haskell\cabal-test\sr2\ghc-8.6.5\incoming\new-14096\ws\haskell\cabal-test\sr2\ghc-8.6.5\cabal-test-0.1.0.0-ef3cc9fa91d861bde15831e5c2d5bd4d96a3ec82\bin
Warning: The directory
D:\ws\haskell\cabal-test\sr2\ghc-8.6.5\incoming\new-14096\ws\haskell\cabal-test\sr2\ghc-8.6.5\cabal-test-0.1.0.0-ef3cc9fa91d861bde15831e5c2d5bd4d96a3ec82\bin is not in the system search path.
Symlinking 'cabal-test.exe' to 'D:\cabal\bin\cabal-test.exe'
cabal-3.6.2.0.exe: Path 'D:\cabal\bin\cabal-test' already exists. Use --overwrite-policy=always to overwrite.


D:\ws\haskell\cabal-test>dir sr2\ghc-8.6.5 /B
cabal-test-0.1.0.0-642579f8db9e9dbadf3fe70e7df07675e2509c5d
cabal-test-0.1.0.0-ef3cc9fa91d861bde15831e5c2d5bd4d96a3ec82
incoming
package.db
say-0.1.0.1-039d9278143b0425f391d403ccc786c9e10ff5ed

D:\ws\haskell\cabal-test>
  • It demonstrates the bug cabal install cant use relative dirs for the store. When using a existing library the error is more obscure though.
  • But also demonstrates that removing extra-lib-dirs and extra-include-dirs entries does not trigger the rebuild of dependencies
  • The store shows 2 entries for cabal-test one for the lib and another for the executable, as expected

@Mikolaj
Copy link
Member

Mikolaj commented Oct 14, 2021

To clarify: you've confirmed the root cause, right?

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

The cause and the bug had been reported here: #6906 🤦
But the description is not correct as the reporter found it happened inside a project using cabal install. It does not mention the rebuild per se but duplicate entries in the store (so the same effect)

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

To clarify: you've confirmed the root cause, right?

yeah, the issue i've just linked confirm it too

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

So it is esentially a duplicate of #6906: "Those who cannot remember the past are condemned to repeat it."

@Mikolaj
Copy link
Member

Mikolaj commented Oct 14, 2021

Splendid. This seems like a very juicy and (let's hope) relatively low hanging fruit. Even just time saved diagnosing offshoots of this problems again and again is significant and could be used elsewhere.

@jneira
Copy link
Member Author

jneira commented Oct 14, 2021

closing as the #6906 has more info, it is more generic (it covers repl, run, install, inside and outside a project) and has a path of action suggested by @phadej

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants