agentm / project-m36

Project: M36 Relational Algebra Engine
The Unlicense
895 stars 48 forks source link

Support GHC 8.6 #230

Closed kozross closed 5 years ago

kozross commented 5 years ago

GHC 8.6 has been out for a while now, and it would be really good to have support for it.

agentm commented 5 years ago

Distributed Haskell will be holding us back again here. I'll submit pull requests to those modules.

kozross commented 5 years ago

This is still an issue. I just got hit by this a second ago:

[koz@Emi ~]$ cabal new-install -O2 -w /home/koz/ghc-86/bin/ghc project-m36
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: base-4.12.0.0/installed-4.1... (user goal)
[__1] next goal: containers (user goal)
[__1] rejecting: containers-0.6.2.1, containers-0.6.1.1 (constraint from user
target requires ==0.6.0.1)
[__1] trying: containers-0.6.0.1/installed-0.6...
[__2] trying: project-m36-0.7 (user goal)
[__3] next goal: network-transport-tcp (dependency of project-m36)
[__3] rejecting: network-transport-tcp-0.6.0 (conflict:
containers==0.6.0.1/installed-0.6..., network-transport-tcp => containers>=0.4
&& <0.6)
[__3] rejecting: network-transport-tcp-0.5.1, network-transport-tcp-0.5.0,
network-transport-tcp-0.4.2, network-transport-tcp-0.4.1,
network-transport-tcp-0.4.0, network-transport-tcp-0.3.1,
network-transport-tcp-0.3.0, network-transport-tcp-0.2.0.3,
network-transport-tcp-0.2.0.2, network-transport-tcp-0.2.0.1,
network-transport-tcp-0.2.0 (conflict: project-m36 =>
network-transport-tcp>=0.6.0)
[__3] fail (backjumping, conflict set: containers, network-transport-tcp,
project-m36)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: containers, network-transport-tcp,
project-m36, base
Try running with --minimize-conflict-set to improve the error message.

Edit: Seemingly this is a deeper issue. I tried this with --allow-newer, and got this:

# bunch of other build stuff
Failed to build cassava-0.5.2.0.
Build log (
/home/koz/.cabal/logs/ghc-8.6.5/cassava-0.5.2.0-9f63adb3866c2a7d0f423dc42ead43d8969a0f9012a9ebcddaa8b288087c941e.log
):
Configuring library for cassava-0.5.2.0..
Preprocessing library for cassava-0.5.2.0..
Building library for cassava-0.5.2.0..

src/Data/Csv/Conversion.hs:26:3: error:
     error: #error **INVARIANT BROKEN** Detected invalid combination of `text-short` and `bytestring` versions. Please verify the `pre-bytestring-0.10-4` flag-logic in the .cabal file wasn't elided.
       26 | # error **INVARIANT BROKEN** Detected invalid combination of `text-short` and `bytestring` versions. Please verify the `pre-bytestring-0.10-4` flag-logic in the .cabal file wasn't elided.
          |   ^~~~~
   |
26 | # error **INVARIANT BROKEN** Detected invalid combination of `text-short` and `bytestring` versions. Please verify the `pre-bytestring-0.10-4` flag-logic in the .cabal file wasn't elided.
   |   ^

src/Data/Csv/Conversion.hs:100:0: error:
     warning: "MIN_VERSION_text_short" is not defined, evaluates to 0 [-Wundef]
      100 | #if MIN_VERSION_text_short(0,1,0)
          | 
    |
100 | #if MIN_VERSION_text_short(0,1,0)
    | ^

src/Data/Csv/Conversion.hs:100:0: error:
     error: missing binary operator before token "("
    |
100 | #if MIN_VERSION_text_short(0,1,0)
    | ^

src/Data/Csv/Conversion.hs:1031:0: error:
     warning: "MIN_VERSION_text_short" is not defined, evaluates to 0 [-Wundef]
     1031 | #if MIN_VERSION_text_short(0,1,0)
          | 
     |
1031 | #if MIN_VERSION_text_short(0,1,0)
     | ^

src/Data/Csv/Conversion.hs:1031:0: error:
     error: missing binary operator before token "("
     |
1031 | #if MIN_VERSION_text_short(0,1,0)
     | ^
`gcc' failed in phase `C pre-processor'. (Exit code: 1)
cabal: Failed to build cassava-0.5.2.0 (which is required by
exe:project-m36-websocket-server from project-m36-0.7, exe:Example-Hair from
project-m36-0.7 and others). See the build log above for details.
agentm commented 5 years ago

This is actually a fixed cassava issue. You just need to perform a cabal new-update to get the latest.

kozross commented 5 years ago

@agentm I tried that - same problem:

[koz@Emi ~]$ cabal new-update
Downloading the latest package list from hackage.haskell.org
To revert to previous state run:
    cabal v2-update 'hackage.haskell.org,2019-09-27T18:27:53Z'
[koz@Emi ~]$ cabal new-install -O2 -w /home/koz/ghc-86/bin/ghc project-m36
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: base-4.12.0.0/installed-4.1... (user goal)
[__1] next goal: containers (user goal)
[__1] rejecting: containers-0.6.2.1, containers-0.6.1.1 (constraint from user
target requires ==0.6.0.1)
[__1] trying: containers-0.6.0.1/installed-0.6...
[__2] trying: project-m36-0.7 (user goal)
[__3] next goal: network-transport-tcp (dependency of project-m36)
[__3] rejecting: network-transport-tcp-0.6.0 (conflict:
containers==0.6.0.1/installed-0.6..., network-transport-tcp => containers>=0.4
&& <0.6)
[__3] rejecting: network-transport-tcp-0.5.1, network-transport-tcp-0.5.0,
network-transport-tcp-0.4.2, network-transport-tcp-0.4.1,
network-transport-tcp-0.4.0, network-transport-tcp-0.3.1,
network-transport-tcp-0.3.0, network-transport-tcp-0.2.0.3,
network-transport-tcp-0.2.0.2, network-transport-tcp-0.2.0.1,
network-transport-tcp-0.2.0 (conflict: project-m36 =>
network-transport-tcp>=0.6.0)
[__3] fail (backjumping, conflict set: containers, network-transport-tcp,
project-m36)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: containers, network-transport-tcp,
project-m36, base
Try running with --minimize-conflict-set to improve the error message.

[koz@Emi ~]$ cabal new-install -O2 -w /home/koz/ghc-86/bin/ghc project-m36 --allow-newer
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O2
In order, the following will be built (use -v for more details):
 - Glob-0.10.0 (lib) (requires build)
 - MonadRandom-0.5.1.1 (lib) (requires build)
 - blaze-markup-0.8.2.3 (lib) (requires download & build)
 - cabal-doctest-1.0.8 (lib) (requires download & build)
 - cassava-0.5.2.0 (lib) (requires build)
 - distributed-static-0.3.9 (lib) (requires build)
 - exceptions-0.10.3 (lib) (requires build)
 - fast-logger-3.0.0 (lib) (requires download & build)
 - http2-2.0.3 (lib) (requires build)
 - iproute-1.7.7 (lib) (requires build)
 - math-functions-0.3.3.0 (lib) (requires build)
 - mmorph-1.1.3 (lib) (requires build)
 - monad-parallel-0.7.2.3 (lib) (requires build)
 - mono-traversable-1.0.13.0 (lib) (requires download & build)
 - network-transport-tcp-0.6.0 (lib) (requires build)
 - optparse-applicative-0.15.1.0 (lib) (requires build)
 - quickcheck-instances-0.3.22 (lib) (requires build)
 - regex-posix-0.96.0.0 (lib) (requires download & build)
 - rset-1.0.0 (lib) (requires build)
 - simple-sendfile-0.2.28 (lib) (requires build)
 - streaming-commons-0.2.1.1 (lib) (requires build)
 - transformers-base-0.4.5.2 (lib) (requires build)
 - universe-reverse-instances-1.1 (lib) (requires build)
 - uuid-1.3.13 (lib) (requires build)
 - vector-builder-0.3.8 (lib) (requires download & build)
 - random-shuffle-0.0.4 (lib:random-shuffle) (requires build)
 - blaze-html-0.9.1.2 (lib) (requires download & build)
 - http-api-data-0.4.1 (lib:http-api-data) (requires build)
 - distributive-0.6.1 (lib:distributive) (requires build)
 - temporary-1.3 (lib) (requires build)
 - resourcet-1.2.2 (lib) (requires build)
 - distributed-process-0.7.4 (lib) (requires build)
 - wai-logger-2.3.6 (lib:wai-logger) (requires download & build)
 - mwc-random-0.14.0.0 (lib) (requires build)
 - regex-compat-0.95.2.0 (lib) (requires download & build)
 - websockets-0.12.5.3 (lib) (requires build)
 - warp-3.3.3 (lib) (requires download & build)
 - monad-control-1.0.2.3 (lib:monad-control) (requires build)
 - comonad-5.0.5 (lib:comonad) (requires build)
 - gnuplot-0.5.6 (lib) (requires build)
 - conduit-1.3.1.1 (lib) (requires build)
 - distributed-process-extras-0.3.5 (lib) (requires build)
 - distributed-process-async-0.2.6 (lib) (requires build)
 - wai-extra-3.0.28 (lib) (requires build)
 - bifunctors-5.5.5 (lib) (requires build)
 - distributed-process-client-server-0.2.5.1 (lib) (requires build)
 - scotty-0.11.5 (lib) (requires build)
 - semigroupoids-5.3.3 (lib:semigroupoids) (requires build)
 - profunctors-5.5 (lib) (requires build)
 - lattices-2.0.1 (lib) (requires build)
 - foldl-1.4.5 (lib) (requires build)
 - either-5.0.1.1 (lib) (requires build)
 - data-interval-1.3.1 (lib) (requires build)
 - list-t-1.0.4 (lib) (requires download & build)
 - deferred-folds-0.9.10.1 (lib) (requires build)
 - primitive-extras-0.8 (lib) (requires build)
 - stm-hamt-1.2.0.4 (lib) (requires build)
 - stm-containers-1.1.0.4 (lib) (requires build)
 - project-m36-0.7 (lib) (requires build)
 - project-m36-0.7 (exe:Example-CustomTupleable) (requires build)
 - project-m36-0.7 (exe:Example-Hair) (requires build)
 - project-m36-0.7 (exe:Example-OutOfTheTarpit) (requires build)
 - project-m36-0.7 (exe:tutd) (requires build)
 - project-m36-0.7 (exe:project-m36-websocket-server) (requires build)
 - project-m36-0.7 (exe:bigrel) (requires build)
 - project-m36-0.7 (exe:Example-SimpleClient) (requires build)
 - project-m36-0.7 (exe:project-m36-server) (requires build)
 - project-m36-0.7 (exe:handles) (requires build)
 - project-m36-0.7 (exe:Example-Blog) (requires build)
Downloading  vector-builder-0.3.8
Starting     MonadRandom-0.5.1.1 (lib)
Starting     distributed-static-0.3.9 (lib)
Starting     exceptions-0.10.3 (lib)
Starting     cassava-0.5.2.0 (lib)
Starting     Glob-0.10.0 (lib)
Downloaded   vector-builder-0.3.8
Downloading  blaze-markup-0.8.2.3
Downloaded   blaze-markup-0.8.2.3
Downloading  blaze-html-0.9.1.2
Starting     blaze-markup-0.8.2.3 (lib)
Downloaded   blaze-html-0.9.1.2
Downloading  fast-logger-3.0.0
Building     exceptions-0.10.3 (lib)
Building     distributed-static-0.3.9 (lib)
Building     MonadRandom-0.5.1.1 (lib)
Downloaded   fast-logger-3.0.0
Downloading  mono-traversable-1.0.13.0
Starting     fast-logger-3.0.0 (lib)
Building     cassava-0.5.2.0 (lib)
Building     Glob-0.10.0 (lib)
Downloaded   mono-traversable-1.0.13.0
Downloading  regex-posix-0.96.0.0
Downloaded   regex-posix-0.96.0.0
Downloading  regex-compat-0.95.2.0
Starting     http2-2.0.3 (lib)
Downloaded   regex-compat-0.95.2.0
Downloading  warp-3.3.3
Building     blaze-markup-0.8.2.3 (lib)
Downloaded   warp-3.3.3
Downloading  cabal-doctest-1.0.8
Downloaded   cabal-doctest-1.0.8
Downloading  list-t-1.0.4
Starting     cabal-doctest-1.0.8 (lib)
Downloaded   list-t-1.0.4
Downloading  wai-logger-2.3.6
Haddock      distributed-static-0.3.9 (lib)
Downloaded   wai-logger-2.3.6
Building     fast-logger-3.0.0 (lib)
Haddock      exceptions-0.10.3 (lib)
Haddock      MonadRandom-0.5.1.1 (lib)
Building     http2-2.0.3 (lib)
Installing   distributed-static-0.3.9 (lib)
Haddock      Glob-0.10.0 (lib)
Building     cabal-doctest-1.0.8 (lib)
Installing   exceptions-0.10.3 (lib)
Installing   MonadRandom-0.5.1.1 (lib)
Completed    distributed-static-0.3.9 (lib)
Haddock      fast-logger-3.0.0 (lib)
Installing   Glob-0.10.0 (lib)
Completed    exceptions-0.10.3 (lib)
Haddock      cabal-doctest-1.0.8 (lib)
Installing   fast-logger-3.0.0 (lib)
Completed    MonadRandom-0.5.1.1 (lib)
Haddock      blaze-markup-0.8.2.3 (lib)
Installing   cabal-doctest-1.0.8 (lib)
Completed    Glob-0.10.0 (lib)
Installing   blaze-markup-0.8.2.3 (lib)
Completed    fast-logger-3.0.0 (lib)
Completed    cabal-doctest-1.0.8 (lib)
Completed    blaze-markup-0.8.2.3 (lib)
Haddock      http2-2.0.3 (lib)
Installing   http2-2.0.3 (lib)
Completed    http2-2.0.3 (lib)

Failed to build cassava-0.5.2.0.
Build log (
/home/koz/.cabal/logs/ghc-8.6.5/cassava-0.5.2.0-9f63adb3866c2a7d0f423dc42ead43d8969a0f9012a9ebcddaa8b288087c941e.log
):
Configuring library for cassava-0.5.2.0..
Preprocessing library for cassava-0.5.2.0..
Building library for cassava-0.5.2.0..

src/Data/Csv/Conversion.hs:26:3: error:
     error: #error **INVARIANT BROKEN** Detected invalid combination of `text-short` and `bytestring` versions. Please verify the `pre-bytestring-0.10-4` flag-logic in the .cabal file wasn't elided.
       26 | # error **INVARIANT BROKEN** Detected invalid combination of `text-short` and `bytestring` versions. Please verify the `pre-bytestring-0.10-4` flag-logic in the .cabal file wasn't elided.
          |   ^~~~~
   |
26 | # error **INVARIANT BROKEN** Detected invalid combination of `text-short` and `bytestring` versions. Please verify the `pre-bytestring-0.10-4` flag-logic in the .cabal file wasn't elided.
   |   ^

src/Data/Csv/Conversion.hs:100:0: error:
     warning: "MIN_VERSION_text_short" is not defined, evaluates to 0 [-Wundef]
      100 | #if MIN_VERSION_text_short(0,1,0)
          | 
    |
100 | #if MIN_VERSION_text_short(0,1,0)
    | ^

src/Data/Csv/Conversion.hs:100:0: error:
     error: missing binary operator before token "("
    |
100 | #if MIN_VERSION_text_short(0,1,0)
    | ^

src/Data/Csv/Conversion.hs:1031:0: error:
     warning: "MIN_VERSION_text_short" is not defined, evaluates to 0 [-Wundef]
     1031 | #if MIN_VERSION_text_short(0,1,0)
          | 
     |
1031 | #if MIN_VERSION_text_short(0,1,0)
     | ^

src/Data/Csv/Conversion.hs:1031:0: error:
     error: missing binary operator before token "("
     |
1031 | #if MIN_VERSION_text_short(0,1,0)
     | ^
`gcc' failed in phase `C pre-processor'. (Exit code: 1)
cabal: Failed to build cassava-0.5.2.0 (which is required by
exe:Example-CustomTupleable from project-m36-0.7, exe:Example-Hair from
project-m36-0.7 and others). See the build log above for details.
agentm commented 5 years ago

Try deleting your the cassava cabal source cache under .cabal/store. I suspect that the package was updated without bumping the version.

Also, try downloading and building the cassava source for 0.5.2.0 manually. I suspect that you will not hit the issue.