elm-lang / elm-platform

Bundle of all core development tools for Elm
BSD 3-Clause "New" or "Revised" License
762 stars 125 forks source link

GHC 7.10 does not work anymore #245

Closed etanol closed 6 years ago

etanol commented 6 years ago

It seems that the basement-0.0.8 cabal package dropped support for GHC 7.10 (see haskell-foundation/foundation#500).

GHC 7.10 is the version that comes packaged in Ubuntu 16.04, which is very convenient to use.

Should the documentation be modified to require GHC 8 or is there a way to fix this?

Here are the final lines of runhaskell BuildFromSource.hs 0.18:

Resolving dependencies...
Notice: installing into a sandbox located at
/home/etanol/Elm-Platform/0.18/.cabal-sandbox
Configuring basement-0.0.8...
Configuring elm-compiler-0.18...
Building basement-0.0.8...
Failed to install basement-0.0.8
Build log ( /home/etanol/Elm-Platform/0.18/.cabal-sandbox/logs/basement-0.0.8.log ):
Configuring basement-0.0.8...
setup-Simple-Cabal-1.22.5.0-x86_64-linux-ghc-7.10.3: Package basement-0.0.8
can't be built on this system.
Building elm-compiler-0.18...
Installed elm-compiler-0.18
cabal: Error: some packages failed to install:
asn1-encoding-0.9.5 depends on basement-0.0.8 which failed to install.
asn1-parse-0.9.4 depends on basement-0.0.8 which failed to install.
asn1-types-0.3.2 depends on basement-0.0.8 which failed to install.
basement-0.0.8 failed during the building phase. The exception was:
ExitFailure 1
connection-0.2.8 depends on basement-0.0.8 which failed to install.
cryptonite-0.25 depends on basement-0.0.8 which failed to install.
elm-make-0.18 depends on basement-0.0.8 which failed to install.
elm-package-0.18 depends on basement-0.0.8 which failed to install.
elm-repl-0.18 depends on basement-0.0.8 which failed to install.
http-client-tls-0.2.4.1 depends on basement-0.0.8 which failed to install.
memory-0.14.16 depends on basement-0.0.8 which failed to install.
pem-0.2.4 depends on basement-0.0.8 which failed to install.
tls-1.4.1 depends on basement-0.0.8 which failed to install.
x509-1.7.3 depends on basement-0.0.8 which failed to install.
x509-store-1.6.6 depends on basement-0.0.8 which failed to install.
x509-system-1.6.6 depends on basement-0.0.8 which failed to install.
x509-validation-1.6.10 depends on basement-0.0.8 which failed to install.
Some add-source dependencies have been modified. They will be reinstalled...
Resolving dependencies...
In order, the following will be installed:
basement-0.0.8 (via: pem-0.2.4 cryptonite-0.25 memory-0.14.16) (new package)
elm-compiler-0.18 (via: elm-reactor-0.18 elm-package-0.18) (reinstall)
memory-0.14.16 (via: tls-1.4.1 x509-validation-1.6.10 x509-1.7.3 pem-0.2.4 cryptonite-0.25 asn1-types-0.3.2) (new package)
asn1-types-0.3.2 (via: tls-1.4.1 x509-validation-1.6.10 x509-store-1.6.6 x509-1.7.3 asn1-parse-0.9.4 asn1-encoding-0.9.5) (new package)
asn1-encoding-0.9.5 (via: tls-1.4.1 x509-validation-1.6.10 x509-store-1.6.6 x509-1.7.3 asn1-parse-0.9.4) (new package)
asn1-parse-0.9.4 (via: x509-1.7.3) (new package)
cryptonite-0.25 (via: tls-1.4.1 x509-validation-1.6.10 x509-store-1.6.6 x509-1.7.3) (new package)
pem-0.2.4 (via: x509-validation-1.6.10 x509-system-1.6.6 x509-store-1.6.6 x509-1.7.3) (new package)
x509-1.7.3 (via: connection-0.2.8 tls-1.4.1 x509-validation-1.6.10 x509-system-1.6.6 x509-store-1.6.6) (new package)
x509-store-1.6.6 (via: connection-0.2.8 tls-1.4.1 x509-validation-1.6.10 x509-system-1.6.6) (new package)
x509-system-1.6.6 (via: connection-0.2.8) (new package)
x509-validation-1.6.10 (via: connection-0.2.8 tls-1.4.1) (new package)
tls-1.4.1 (via: http-client-tls-0.2.4.1 connection-0.2.8) (new package)
connection-0.2.8 (via: http-client-tls-0.2.4.1) (new package)
http-client-tls-0.2.4.1 (latest: 0.3.5.3) (via: elm-package-0.18) (new package)
elm-package-0.18 (via: elm-reactor-0.18) (new package)
elm-reactor-0.18 (new package)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Notice: installing into a sandbox located at
/home/etanol/Elm-Platform/0.18/.cabal-sandbox
Configuring basement-0.0.8...
Configuring elm-compiler-0.18...
Building elm-compiler-0.18...
Building basement-0.0.8...
Failed to install basement-0.0.8
Build log ( /home/etanol/Elm-Platform/0.18/.cabal-sandbox/logs/basement-0.0.8.log ):
Configuring basement-0.0.8...
setup-Simple-Cabal-1.22.5.0-x86_64-linux-ghc-7.10.3: Package basement-0.0.8
can't be built on this system.
Installed elm-compiler-0.18
cabal: Error: some packages failed to install:
asn1-encoding-0.9.5 depends on basement-0.0.8 which failed to install.
asn1-parse-0.9.4 depends on basement-0.0.8 which failed to install.
asn1-types-0.3.2 depends on basement-0.0.8 which failed to install.
basement-0.0.8 failed during the building phase. The exception was:
ExitFailure 1
connection-0.2.8 depends on basement-0.0.8 which failed to install.
cryptonite-0.25 depends on basement-0.0.8 which failed to install.
elm-package-0.18 depends on basement-0.0.8 which failed to install.
elm-reactor-0.18 depends on basement-0.0.8 which failed to install.
http-client-tls-0.2.4.1 depends on basement-0.0.8 which failed to install.
memory-0.14.16 depends on basement-0.0.8 which failed to install.
pem-0.2.4 depends on basement-0.0.8 which failed to install.
tls-1.4.1 depends on basement-0.0.8 which failed to install.
x509-1.7.3 depends on basement-0.0.8 which failed to install.
x509-store-1.6.6 depends on basement-0.0.8 which failed to install.
x509-system-1.6.6 depends on basement-0.0.8 which failed to install.
x509-validation-1.6.10 depends on basement-0.0.8 which failed to install.
evancz commented 6 years ago

I suspect you can use older versions of the Stackage LTS package lists. They have records of "all the packages that work together right now" from points in the past. The fact that new versions of basement are different than old versions should not make the build impossible. The dependency solver for Haskell sometimes does not find solutions though.

That said, we do not have resources to provide detailed help in this setting for folks building from source. So I recommend trying to work through this on #compiler on the Elm Slack. They can provide additional guidance.

Once you figure it out there, please share the fix here in case anyone else runs into the same issue.