* Migrate to github CI
* Parallelize GHC builds
* Avoid building local packages twice
* Prepare for building 9.2.6
* Fix build on darwin M1 9.0.2
* Drop build of windows 9.2.6 due to https://gitlab.haskell.org/ghc/ghc/-/issues/22961
* Drop 9.0.2 for darwin M1
* Fix build on windows by disabling ghc-check pkg ABI check
* Use git-archive to create src tarball in upload
* Build releases for 9.2.7
* Build src archive in github action
* Build on unknown-linux too
* Try to build GHC-9.4.4 for unknown linux on Fedora33
* Make sure hls-wrapper binary comes from GHC-8.10.7
---------
Co-authored-by: wz1000 <zubin.duggal@gmail.com>
* 9.6 support
Fixes
hls-refactor-plugin 9.6 support
hls-gadt-plugin
Fix 9.4 build
Fixes
hls-gadt-plugin fixes
WIP 9.6 patches
fixes
fixes
fixes
fixes
fixes
Fixes and add CI
CI
CI fixes
patch haskell/actions for https://github.com/haskell/ghcup-hs/issues/783
CI fixes
CI fixes
CI fixes
CI
CI
CI
CI
CI
Fix build on 9.0
Fix build on 9.0
hls-splice-plugin 9.6 compat
fixes
fixes
fixes
fixes
Fix benchmark build errors
9.2.5 and 8.10.7 had build errors when running benchmarks due to `mfsolve`
test suite having duplicate instances, so stop building tests for
mfsolve (see: https://github.com/kuribas/mfsolve/issues/8). Also,
`http2-4.0.0` has a parse error due to a misplaced haddock comment that
causes build failure with `-haddock`. It is fixed in the latest commit
of the source repo, so use that in the `cabal.project` for now.
Checkout correct commit on `pull_request` in CI
By default, the `pull_request` event has a `GITHUB_SHA` env variable set to the
"last merge commit on the GITHUB_REF branch"
(see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request).
But we want to check out the latest commit on the branch whether or not it is a
merge commit. This commit changes the CI actions to do just that.
fixes
Use head.hackage for 9.4
Only use head.hackage for 9.5 and up
Reverts the change that caused head.hackage to be used for 9.4 as
well
Reintroduce source-repo-package for ekg-json
Fix refactor plugin tests
Fix missing constraint detection in refactor plugin
ghc 9.6+ allow newer unordered-containers:template-haskell
Some refactor tests no longer broken for 9.2
Fix simple-multi-test on 9.6
Mark simple-plugin as broken on 9.6
func-test fixes
Disable unsupported plugins on 9.6
Eval plugin fixes
Eval plugin test fixes, debug output in CI script
Restore 'working' setup/actions
WIP Fix GHC prerelease windows install
Fix eval plugin T11
fixes
Eval plugin fixes
Fix splice plugin test
Mark `simple plugin` ghcide test broken on 9.6
fixes
fixes
Use GHC 9.6-rc1 in CI
Try using 9.6.1 for CI
* 9.6 nix
* Remove head.hackage
* fixes
* fixes
* fixes
* fixes
* fixes
* fixes
* Docs: update Emacs section: add eglot with config example
Based on the discussion at https://github.com/haskell/haskell-language-server/issues/3157
* Update docs/configuration.md
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
---------
Co-authored-by: Michael Peyton Jones <me@michaelpj.com>
* configuration-ghc-94.nix: Don't yolo anymore since packages work now
* Stop doing an extremely slow fetch of all-cabal-hashes
* Export an overlay that does not override the package set
* At least it works in nix on 9.4
* Allow ormolu-0.5.3
* Update flake to GHC 9.2.6 and 9.4.4
---------
Co-authored-by: Jade Lovelace <software@lfcode.ca>
The plugin was implemented by calling "load" which circumvents all of
HLSs caching mechanisms for interface files and linkables. Instead we
should work like the other typechecking functions which get all the
stuff we need using HLS rules and setup the HscEnv with all the state in
the right places.
The key part to this is setting up all the HPT modules with linkables if
they are depenedencies of the module we are trying to run a function
from.
- ban load functions from GHC driver
- Enable CI for hls-eval-plugin and fix a bug due to clearing of mi_globals
* Bump versions and add changelogs for 1.9.1.0
* Fix build on windows by disabling ghc-check pkg ABI check
---------
Co-authored-by: Zubin Duggal <zubin.duggal@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Experiment with loading matrix values from a file
The goal here is to avoid duplication of e.g. which versions of GHC we
support.
This is an experiment at the moment.
* fix some warnings in hlint plugin
* Filter names from hovertip documentation which match patterns of generated Core variables.
* Added comment for isInternal function.
* Relocated list of OccName prefixes from the Completions plugin to the CoreFile module. Updated the check for GHC-generated OccName prefixes in AtPoint to use the shared list of OccName prefixes.
* Added test data and test for ensuring Core-generated variables are not included in hover info.
* Switched to using isEvidenceContext to filter out evidence bindings.
* Relocated list of OccName prefixes from the Completions plugin to the CoreFile module. Updated the check for GHC-generated OccName prefixes in AtPoint to use the shared list of OccName prefixes.
* Removed unused import.
* Relocated list of OccName prefixes from the Completions plugin to the CoreFile module. Updated the check for GHC-generated OccName prefixes in AtPoint to use the shared list of OccName prefixes.
* Removed unused import.
* Fixed incorrect definition of mkRecordSnippetCompItem introduced when rebasing.
* Add preprocessor check for GHC version before using isEvidenceContext. Updated related comment.
1. Recompilation avoidance regresses in GHC 9.4 due to interactions between GHC and HLS's implementations.
Avoid this by filtering out the information that causes the conflict
See https://gitlab.haskell.org/ghc/ghc/-/issues/22744.
2. The recompilation avoidance info GHC stores in interfaces can blow up to be
extremely large when deserialised from disk. See https://gitlab.haskell.org/ghc/ghc/-/issues/22744
Deduplicate these filepaths.
* Document exception handling in Actions/Rules
I also took the liberty of removing the `MonadFail` instance for
`Rules`, since failing in `Rules` seems much worse as it won't
automatically be caught. There was only one use of that, which now has
an appropriately threatening comment.
* Tweak
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Import qualified in postfix when applicable
* Dont import `EnumSet`
* Add `QualifiedImportStyle`
* Add qualified import test
* Ignore functional code action tests for windows-9.4.2
The test fails with:
test\functional\FunctionalCodeAction.hs:116:
expected: "Not in scope: \8216Control.when\8217\nNo module named \8216Control\8217 is imported."
but got: "Variable not in scope: when :: Bool -> IO () -> IO ()"
Seems like diagnostics for missing variables differ
* Add `importQualifiedPostTests`
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
After a bit of digging I've worked out what's up with mergify. It's
still working fine, but it's not updating PRs very often now. The reason
for that is that it updates PRs that are in the queue, but to get
_into_ the queue you have to pass CI, which is hard ATM because of our
flaky CI. So we can add a separate update rule that just updates the
labelled PRs, so that they are at least kept up-to-date with master.
GHC populates the mi_global field in interfaces for GHCi if we are using the bytecode
interpreter.
However, this field is expensive in terms of heap usage, and we don't use it in HLS
anywhere. So we zero it out.
The field is not serialized or deserialised from disk, so we don't need to remove it
while reading an iface from disk, only if we just generated an iface in memory
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>