haskell / haskell-ide-engine

The engine for haskell ide-integration. Not an IDE
BSD 3-Clause "New" or "Revised" License
2.38k stars 212 forks source link

Support for ghc-8.8.3 #1697

Closed jneira closed 4 years ago

jneira commented 4 years ago
alanz commented 4 years ago

looks reasonable to me

mouse07410 commented 4 years ago

@jneira I noticed that at least one of the failed CI jobs (https://circleci.com/gh/jneira/haskell-ide-engine/4298?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link) failed in Hoogle DB build on unsuccessful attempt to retrieve cabal.config file from Stackage. That file simply doesn't exist on Stackage (at least for some GHC and/or resolver versions), like it or not.

Some time ago, trying to use intellij-haskell plugin (that works only with Stack), I've seen this error a lot when the plugin tried to open Cabal projects (which most of my projects are). I convinced the plugin author to just create a default cabal.config if the retrieval fails (as it did for me in 95% of all cases). Finally, since I've no use of an IDE that's limited to Stack only, I dumped that plugin, and develop Haskell code only on VSCode with HIE, but that's besides the point.

I did not examine all of the CI failures - but if they all break on retrieving cabal.config, perhaps you want to either ignore those builds, or do something similar to what we did above?

jneira commented 4 years ago

Thank for take a look. They are transient erros related with connectivity of ci machines and are relatively frequent, but usually they go if you run the job again. The tests that are failing are these: https://circleci.com/gh/jneira/haskell-ide-engine/4302 I've collected then in a gist: https://gist.github.com/jneira/9bf777438bc0adbd5d6ba1e9be9350bf

mouse07410 commented 4 years ago

The tests that are failing are these ...

I see, thanks. Yeah, on that level I'm incompetent to help, alas.

Offhand, could you check if the problems are only with Stack-driven tests?

fendor commented 4 years ago

Executing the tests locally with cabal as the main test-driver does not yield the failing test-cases. I changed the test setup a bit, e.g. generating a

cradle:
  cabal:

for the testdata since my stack installation has been wiped and I didnt want to run it right now, but I guess I have to :(

jneira commented 4 years ago

Once that @fendor has done the hard part (as usual 😸 ), fix the test suite, only left some errors in azure for windows: https://dev.azure.com/jneira/haskell-ide-engine/_build/results?buildId=744&view=results The build has quite transient errors as well, running it again.

jneira commented 4 years ago

I am afraid that ghc-8.8.3 is throwing segfaults in azure ci, probably due to a ghc bug: https://gitlab.haskell.org/ghc/ghc/issues/17926 However i am able to build hie locally with ghc-8.8.3 so i am gonna remove the build from ci but i will not remove it as supported ghc version to build hie in the script install.hs for now

fendor commented 4 years ago

Should we still merge?

jneira commented 4 years ago

@fendor i think it can be merged, i am only trying to fix azure builds, although some errors are not related with ghc-8.8.3.

jneira commented 4 years ago

Well, linux stack jobs have ran out of disk space since c8ed3e5 :

Filesystem      Size  Used Avail Use% Mounted on
udev            3.4G     0  3.4G   0% /dev
tmpfs           695M  8.9M  686M   2% /run
/dev/sda1        84G   80G  3.6G  96% /
tmpfs           3.4G  8.0K  3.4G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.4G     0  3.4G   0% /sys/fs/cgroup
/dev/loop0       40M   40M     0 100% /snap/hub/43
/dev/loop1       94M   94M     0 100% /snap/core/8935
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1        14G   35M   13G   1% /mnt

It make the download of ghc-8.8.1, necessary for wrapper-tests fail:

Installing GHC ...
/home/vsts/.stack/programs/x86_64-linux/ghc-8.8.1/lib/ghc-8.8.1/Cabal-3.0.0.0/.copyFile75307-1209.tmp: copyFile: resource exhausted (No space left on device)
make[1]: *** [install_packages] Error 1
make: *** [install] Error 2
Run from: /home/vsts/.stack/programs/x86_64-linux/ghc-8.8.1.temp/ghc-8.8.1/

Error: Error encountered while installing GHC with
         make install
         run in /home/vsts/.stack/programs/x86_64-linux/ghc-8.8.1.temp/ghc-8.8.1/

       The following directories may now contain files, but won't be used by stack:
         - /home/vsts/.stack/programs/x86_64-linux/ghc-8.8.1.temp/
         - /home/vsts/.stack/programs/x86_64-linux/ghc-8.8.1/

       For more information consider rerunning with --verbose flag

Command `stack ghc -- --numeric-version` failed.

version checking
  picks up a stack.yaml with 8.8.1 FAILED [1]
  picks up a stack.yaml with 8.6.5
  picks up whatever version of ghc is on this machine

Failures:

  test/wrapper/HieWrapper.hs:18:9: 
  1) version checking picks up a stack.yaml with 8.8.1
       expected: "8.8.1"
        but got: "8.8.3"

It is not related with this pr, so i would merge this if other builds are succesful.

jneira commented 4 years ago

Almost all failing jobs are due to #1729 so i think it can be merged