Skip to content

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
wants to merge 80 commits into
base: master
Choose a base branch
from
Open

Conversation

soulomoon
Copy link
Owner

@soulomoon soulomoon commented Jun 13, 2025

some test

soulomoon and others added 30 commits March 9, 2025 10:44
* 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>
* 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
* 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.
wz1000 and others added 26 commits May 22, 2025 06:05
* 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]>
…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]>
@soulomoon soulomoon requested a review from fendor as a code owner June 13, 2025 08:05
@soulomoon soulomoon removed the request for review from fendor June 13, 2025 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.