forked from haskell/haskell-language-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Wip/atomic none intruptable #19
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
Open
soulomoon
wants to merge
80
commits into
master
Choose a base branch
from
wip/atomic-none-intruptable
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Update cabal.project and shake-bench.cabal: remove obsolete flags and add source repository * cabal.project: Add comment regarding specific hp2pretty version due to bug * workflow: Update performance label condition for bench job skipping * workflow: Adjust bench job conditions for performance label handling * workflow: Update GitHub Actions to use latest versions of actions and GHC * Replace hp2pretty with eventlog2html in benchmark dependencies and heap profile rules * cabal.project: Remove hp2pretty source repository due to bug resolution * cabal.project: Remove unnecessary newline in constraints section * workflow: Downgrade download-artifact action to v3 for compatibility * workflow: Upgrade download-artifact action to v4 for improved functionality * workflow: Update GHC version matrix to include 9.10
* convert pre-commit-config from JSON to YAML using https://www.geeksforgeeks.org/json-to-yaml-converter/ * document pre-commit tool
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 15 to 16. - [Release notes](https://github.com/cachix/cachix-action/releases) - [Commits](cachix/cachix-action@v15...v16) --- updated-dependencies: - dependency-name: cachix/cachix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add multiple new Haskell modules and configuration files * Fix directory paths for test data and source directories * Remove unnecessary test data files from the cabal configuration * fix test data dir * Add ghcide-test-preprocessor executable and update cabal configuration * Remove ghcide-test-preprocessor executable and associated flag from cabal configuration * Update test-suite dependencies to reference the correct executable * Remove ghcide-test-preprocessor from func-test dependencies * Add additional test data files to cabal configuration
- unsafeCoerce was used where `eqTypeRep` could be used, this was corrected - an incorrect instance for NFData existed which was removed because it's unused
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 30 to 31. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Commits](cachix/install-nix-action@v30...v31) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [haskell-actions/setup](https://github.com/haskell-actions/setup) from 2.7.9 to 2.7.10. - [Release notes](https://github.com/haskell-actions/setup/releases) - [Commits](haskell-actions/setup@v2.7.9...v2.7.10) --- updated-dependencies: - dependency-name: haskell-actions/setup dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) Co-authored-by: fendor <[email protected]>
* Rework bindist CI to avoid actions/upload-artifact#489 Build linux bindists in container actions, allowing us to move checkout and upload actions to the parent container. * Delete unused file * Fix typo in docs of gen_ci.hs * Fix spdx license in generate-ci.cabal * Use helper function for logging ghcup logs and exiting on failure * Bump haskell-actions/setup from 2.7.9 to 2.7.10 (haskell#4522) Bumps [haskell-actions/setup](https://github.com/haskell-actions/setup) from 2.7.9 to 2.7.10. - [Release notes](https://github.com/haskell-actions/setup/releases) - [Commits](haskell-actions/setup@v2.7.9...v2.7.10) --- updated-dependencies: - dependency-name: haskell-actions/setup dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add nightly jobs and trigger on tag --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Fendor <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: fendor <[email protected]>
) Bumps [haskell-actions/setup](https://github.com/haskell-actions/setup) from 2.7.9 to 2.7.10. - [Release notes](https://github.com/haskell-actions/setup/releases) - [Commits](haskell-actions/setup@v2.7.9...v2.7.10) --- updated-dependencies: - dependency-name: haskell-actions/setup dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* GHC 9.12 support * cabal plugin * Fix hls-call-hierarchy-plugin tests * Fix hls-pragma-plugin tests * Add golden files specific to GHC 9.12.2 * Apply stylish-haskell formatting * Fix dodgy import in hls-semantic-token-plugin * Remove all deriving (Typeable). It is done by default * Fix view-pattern type sig warning * Run hls-eval-plugin test on Windows for GHC 9.12 only * Fix referenceImplementation for FuzzySearch tests --------- Co-authored-by: fendor <[email protected]> Co-authored-by: fendor <[email protected]>
* Update list of release GHC versions * Bump version number to 2.10.0.0 * Update GHC version support table * Update ChangeLog * Fix typo in Bindist CI job trigger * Update the GHCup vanilla channel URL * Run linux bindist job on self-hosted runner Restores the behaviour from before the CI rework
…haskell#4531) * Ensure /usr/share/dict/words is installed in CI * Not in release, but in test job * Add sudo * Do it in setup-build action instead of pre_job * Use quickcheck === to get more informative errors * Replace fuzzy search test with few simpler unit tests
…" (haskell#4541) This reverts commit 2df8775.
* Support PackageImports in hiddenPackageSuggestion Fix: haskell#4479 * Stop using error in hiddenPackageSuggestion
In a context where we want to `coerce` to a type for which constructor is not in scope, GHC fails with (e.g., for `Sum Int`): ``` • Couldn't match representation of type ‘Int’ with that of ‘Sum Int’ arising from a use of ‘coerce’ The data constructor ‘base-4.18.2.1:Data.Semigroup.Internal.Sum’ of newtype ‘Sum’ is not in scope ``` This code action detects the missing `newtype` and suggests to add the required import. This is convenient because otherwise the user need to interpret the error message and most of the time manually find which module and type to import. Note that a better implementation could try to decet that the type is already imported (if that's the case) and just suggest to add the constructor (e.g. `(..)`) in the import list, but this is too much complexity to implement. It could lead to duplicated import lines which will be "cleaned" by formatter or other extensions.
For example, `deriving instance Generic (Sum Int)`, but it should work for other deriving which indirectly requires a complete access to the type constructor. ``` Can't make a derived instance of ‘Generic (Sum Int)’: The data constructors of ‘Sum’ are not all in scope so you cannot derive an instance for it ```
For example, the following code `foo.titi` when the type of `foo` (e.g. `Bar` here is not in scope and not from an already imported module (e.g. the type exists indirectly because here `foo :: Bar` comes from another module). If the module which contains `Bar` is already imported, GHC already gives an hint to add `titi` to the `import Bar` line and this is already correctly handled by HLS. ``` No instance for ‘HasField "titi" Bar.Bar String’ arising from selecting the field ‘titi’ ```
This correct previous commit by handling ghc 9.4 parethensis instead of "tick".
In ghc 9.6 we had: ``` Not in scope ‘modelStatusTag’ ``` In 9.10 we have: ``` Not in scope: record field ‘modelStatusTag’ ``` Introducing the new regex in order to match it AND a test to ensure no future regression. The regression is due to the fact that there is a matcher which catch `Nat in scope: .*`, hence it was matching "record" instead of "modelStatusTag".
In GHC >= 9.8, the namespace for record selector changed and is now part of a new namespace. This allows for duplicated record field names in the same module. This hence generated a few issues in HLS when looking for a symbol using `lookupOccEnv`: the current implementation was only doing lookup in type, data and var namespaces. This commit uses `lookupOccEnv_AllNameSpaces`, so it may be more efficient (one lookup instead of two), but it also incluse the symbols from record field selectors and this will actually fix most import suggestion logic when a record field selector is not found. Note that the function is not available in `ghc` <= 9.6, hence the `CPP` and fallsback implementation, which uses the previous implementation. See https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.8#new-namespace-for-record-fields
* Remove allow-newer for hiedb * Update and prune stack.yamls * Update docker images in stack CI config * Use more general image tags, use bullseye * 9.8.4 is not nightly anymore, pin patch version again
Demote `hls-refactor-plugin` to tier 2, as we regularly ship the initial GHC support without it.
* Make the test name shorter The very long test name leads to overflows in the tasty test output reporter, causing duplicated lines and generally harder to read output, when the test output report is displayed. We refactor the test specification to optionally accept 'TestName's which can be shorter than the previous way of generating a test name. * Shorten reference test names
…turated (haskell#4586) * Add issue reproducer as test * Generate the CA only for fully saturated DataCon applications
* Plugin tutorial, more changes Some changes are mine, but many have been cherry picked and amended from PR haskell#3655 by Christian Georgii <[email protected]>. * Update Nix Flake lock (this makes GHC 9.8 the default) * Review comments and other improvments, thanks @VeryMilkyJoe. * Compile plugin-tutorial using markdown-unlit Makes sure the plugin-tutorial can never be out-of-date again. * Remove out-of-date references * Add plugin-tutorial to CI * Only build the plugin-tutorial with GHC 9.6 and 9.8 * Add explanation for preamble --------- Co-authored-by: fendor <[email protected]>
Bumps [haskell-actions/setup](https://github.com/haskell-actions/setup) from 2.7.11 to 2.8.0. - [Release notes](https://github.com/haskell-actions/setup/releases) - [Commits](haskell-actions/setup@v2.7.11...v2.8.0) --- updated-dependencies: - dependency-name: haskell-actions/setup dependency-version: 2.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Strip prefixes added by DuplicateRecordFields to disambiguate record selectors from inlay hints * Fix style * Extract stripPrefixes to a common utility, convert comment to haddoc * Move to GHC Util
GCC is provided in dev shell. External `curl` is incompatible with dev shell-provided GCC, resulting in `GLIBC` error. Solution is for dev shell to provide both GCC and `curl`.
…aph haskell#4594 Previously, we shared a single ModuleGraph across all files. Any change to an import header would invalidate the cache for all rules that depended on the ModuleGraph, causing redundant rebuilds and slowing down compilation (see haskell#4443). We now continue to build and share the full ModuleGraph, but only compute partial fingerprints for it. Compilation rules now depend only on the relevant fingerprinted subset, assuming that use sites do not depend on parts excluded from the fingerprint. This reduces unnecessary recompilation and improves caching precision. Key changes: - Added fingerprint rules for partial ModuleGraph views: - GetModuleGraphTransDepsFingerprints - GetModuleGraphTransReverseDepsFingerprints - GetModuleGraphImmediateReverseDepsFingerprints - Introduced useWithSeparateFingerprintRule and useWithSeparateFingerprintRule_ - Updated rules that use GetModuleGraph to use the new fingerprint rules This improves incremental compilation performance by avoiding full graph invalidations when only a small part changes.
* Cleanup CPPs, remove support for GHC 9.4 Closes haskell#4529. Also, - update flake lock - some girl scout changes while trying to understand code * Remove #if MIN_VERSION_ghc(9,4,0) CPP statements * Remove MIN_VERSION_ghc(9,3,0) * Remove MIN_VERSION_ghc(9,5,0) * Remove GLASGOW_HASKELL, and GHC94 from tests * Disable Nix MacOS CI (unused and has upstream issue) * Fix compilation warnings leading to CI errors (unused imports, etc.) * Fix compilation error for GHC 9.10 and up * Fix compilation error for GHC 9.12 * Use 'goldenWithEval' in hls-eval-plugin-tests --------- Co-authored-by: fendor <[email protected]>
* Switch ghcide tests to sequential execution * Pin tasty 1.5 for ghcide tests
…#4619) * Fix completion for record dot syntax when record isn't known * Comment fix, fix test * Appease pre-commit
This enables the hlint plugin on GHC 9.10, at the cost of disabling refactoring actions. `apply-refact` is not even buildable on 9.10, so we have to push this all the way to the cabal file and use CPP, alas. We have two lines of defense: we don't consider hints applicable if we don't have `apply-refact`, and if we somehow do get to trying to apply a hint, we fail. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* feat: introduced plugins' custom config params autogenerated docs Introduces plugins-custom-config-markdown-reference subcommand which extracts plugins' custom config parameters and renders a Markdown table with all the reference information. * Update GHC 9.10 hlint --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Fendor <[email protected]>
- Fixed by: kowainik/stan#586 - Released in stan-0.2.1.0
…askell#4623) This reverts commit 349ff6e. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…ll#4624) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Fix nix dev environment on aarch64-darwin. * Add hls to nix dev environment * Add prisms for GHC structured diagnostics * Provide GHC structured diagnostics in GhcideCodeActions * Use GHC structured diagnostics for missing signatures * Fix ranges in completion tests How did they ever work? --------- Co-authored-by: Jan Vogt <[email protected]>
…during file operations
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
some test