Skip to content
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

Drop ghc-api-compat from dependency closure #2128

Merged
merged 22 commits into from
Sep 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,15 +178,15 @@ jobs:
name: Test hls-class-plugin
run: cabal test hls-class-plugin --test-options="-j1 --rerun-update" || cabal test hls-class-plugin --test-options="-j1 --rerun" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-class-plugin --test-options="-j1 --rerun"

- if: ${{ needs.pre_job.outputs.should_skip != 'true' && matrix.test && matrix.ghc }}
- if: ${{ needs.pre_job.outputs.should_skip != 'true' && matrix.test }}
name: Test hls-eval-plugin
run: cabal test hls-eval-plugin --test-options="-j1 --rerun-update" || cabal test hls-eval-plugin --test-options="-j1 --rerun" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-eval-plugin --test-options="-j1 --rerun"

- if: ${{ needs.pre_job.outputs.should_skip != 'true' && matrix.test }}
name: Test hls-haddock-comments-plugin
run: cabal test hls-haddock-comments-plugin --test-options="-j1 --rerun-update" || cabal test hls-haddock-comments-plugin --test-options="-j1 --rerun" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-haddock-comments-plugin --test-options="-j1 --rerun"

- if: ${{ needs.pre_job.outputs.should_skip != 'true' && matrix.test && matrix.ghc != '9.0.1' }}
- if: ${{ needs.pre_job.outputs.should_skip != 'true' && matrix.test }}
name: Test hls-splice-plugin
run: cabal test hls-splice-plugin --test-options="-j1 --rerun-update" || cabal test hls-splice-plugin --test-options="-j1 --rerun" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-splice-plugin --test-options="-j1 --rerun"

Expand All @@ -206,7 +206,7 @@ jobs:
name: Test hls-tactics-plugin test suite
run: cabal test hls-tactics-plugin --test-options="-j1 --rerun-update" || cabal test hls-tactics-plugin --test-options="-j1 --rerun" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-tactics-plugin --test-options="-j1 --rerun"

- if: ${{ needs.pre_job.outputs.should_skip != 'true' && matrix.test && matrix.ghc != '9.0.1' }}
- if: ${{ needs.pre_job.outputs.should_skip != 'true' && matrix.test }}
name: Test hls-refine-imports-plugin test suite
run: cabal test hls-refine-imports-plugin --test-options="-j1 --rerun-update" || cabal test hls-refine-imports-plugin --test-options="-j1 --rerun" || LSP_TEST_LOG_COLOR=0 LSP_TEST_LOG_MESSAGES=true LSP_TEST_LOG_STDERR=true cabal test hls-refine-imports-plugin --test-options="-j1 --rerun"

Expand Down
22 changes: 11 additions & 11 deletions cabal-ghc901.project
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ packages:
./ghcide
./hls-plugin-api
./hls-test-utils
-- ./plugins/hls-tactics-plugin
-- ./plugins/hls-brittany-plugin
-- ./plugins/hls-stylish-haskell-plugin
-- ./plugins/hls-fourmolu-plugin
-- ./plugins/hls-tactics-plugin
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's preventing the tactics plugin from being compatible with 9.0? /cc @isovector

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No idea. Using the old GHC module names, I guess. How do other plugins work around this?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't quite remember, I think it was mainly a matter of correcting imports but it is already pretty complicated to get this merged as it touches so many places.

Copy link
Collaborator Author

@fendor fendor Sep 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked now, it is mainly adding the appropriate CPP statements since the AST changed quite considerably.

Copy link
Contributor

@anka-213 anka-213 Sep 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was blocked on upstream dependencies when I worked on 9.0 support for hls, but that is fixed now. So I'm guessing it's just that no-one has taken up the task after it was unblocked.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly, and as I am quite pressed for time at the moment, I would appreciate if supported is added in a different PR-

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I just looked through the diff of this PR and noticed that you have already made a lot of progress on the tactics plugin compatibility. I'm currently looking at what else needs to be fixed for the tactics plugin to support 9.0. (I'm only looking at making it compile and run properly, I'll leave the actual support for 9.0 specific features like linear types to @isovector)

-- ./plugins/hls-brittany-plugin
-- ./plugins/hls-stylish-haskell-plugin
-- ./plugins/hls-fourmolu-plugin
-- ./plugins/hls-class-plugin
./plugins/hls-eval-plugin
./plugins/hls-explicit-imports-plugin
-- ./plugins/hls-refine-imports-plugin
./plugins/hls-refine-imports-plugin
./plugins/hls-hlint-plugin
./plugins/hls-rename-plugin
./plugins/hls-retrie-plugin
./plugins/hls-haddock-comments-plugin
-- ./plugins/hls-splice-plugin
./plugins/hls-splice-plugin
./plugins/hls-floskell-plugin
./plugins/hls-pragmas-plugin
./plugins/hls-module-name-plugin
Expand Down Expand Up @@ -48,10 +48,10 @@ source-repository-package

source-repository-package
type: git
location: https://github.com/anka-213/dependent-sum
tag: 8cf4c7fbc3bfa2be475a17bb7c94a1e1e9a830b5
location: https://github.com/fendor/dependent-sum
tag: 5de03c38b0de4945f4e9bce1b026110e69dc8118
subdir: dependent-sum-template
-- https://github.com/obsidiansystems/dependent-sum/pull/57
-- https://github.com/obsidiansystems/dependent-sum/pull/59

-- benchmark dependency
source-repository-package
Expand All @@ -64,8 +64,8 @@ write-ghc-environment-files: never
index-state: 2021-09-06T12:12:22Z

constraints:
-- These plugins doesn't work on GHC9 yet
haskell-language-server -brittany -class -fourmolu -splice -stylishhaskell -tactic -refineImports
-- These plugins don't work on GHC9 yet
haskell-language-server -brittany -class -fourmolu -stylishhaskell -tactic

allow-newer:
floskell:base,
Expand Down
275 changes: 275 additions & 0 deletions cabal-ghc921.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,275 @@
packages:
fendor marked this conversation as resolved.
Show resolved Hide resolved
./
./hie-compat
./shake-bench
./hls-graph
./ghcide
./hls-plugin-api
./hls-test-utils
-- ./plugins/hls-tactics-plugin
-- ./plugins/hls-brittany-plugin
-- ./plugins/hls-stylish-haskell-plugin
-- ./plugins/hls-fourmolu-plugin
./plugins/hls-class-plugin
./plugins/hls-eval-plugin
./plugins/hls-explicit-imports-plugin
./plugins/hls-refine-imports-plugin
./plugins/hls-hlint-plugin
-- ./plugins/hls-retrie-plugin
./plugins/hls-haddock-comments-plugin
-- ./plugins/hls-splice-plugin
./plugins/hls-floskell-plugin
./plugins/hls-pragmas-plugin
./plugins/hls-module-name-plugin
./plugins/hls-ormolu-plugin
./plugins/hls-call-hierarchy-plugin

tests: true

package *
ghc-options: -haddock
test-show-details: direct

source-repository-package
type: git
location: https://github.com/mithrandi/czipwith.git
tag: b6245884ae83e00dd2b5261762549b37390179f8
-- https://github.com/lspitzner/czipwith/pull/2

-- benchmark dependency
source-repository-package
type: git
location: https://github.com/HeinrichApfelmus/operational
tag: 16e19aaf34e286f3d27b3988c61040823ec66537

-- Head of hiedb
source-repository-package
type: git
location: https://github.com/wz1000/HieDb
tag: 45c4671db2da8ce5cd11e964573846cfbf3bbec8

-- GHC 9.2 for ghc-check
source-repository-package
type: git
location: https://github.com/fendor/ghc-check
tag: 224f3901eaa1b32a27e097968afd4a3894efa77e
-- https://github.com/pepeiborra/ghc-check/pull/14/files

write-ghc-environment-files: never

index-state: 2021-08-31T02:21:16Z

constraints:
-- These plugins doesn't work on GHC9 yet
haskell-language-server -brittany -class -fourmolu -splice -stylishhaskell -tactic -refineImports -callhierarchy -retrie


allow-newer:
Cabal,
base,
binary,
bytestring,
ghc,
ghc-bignum,
ghc-prim,
integer-gmp,
template-haskell,
text,
time,

diagrams-postscript:lens,
diagrams-postscript:diagrams-core,
diagrams-postscript:monoid-extras,
dependent-sum:some,
dependent-sum:constraints,
diagrams:diagrams-core,
Chart-diagrams:diagrams-core,
SVGFonts:diagrams-core

constraints:
Agda ==2.6.1.3,
Diff ==0.4.0,
EdisonAPI ==1.3.1,
EdisonCore ==1.3.2.1,
FPretty ==1.1,
HTTP ==4000.3.16,
HUnit ==1.6.2.0,
QuickCheck ==2.14.2,
Spock-core ==0.14.0.0,
aeson ==1.5.6.0,
aivika ==5.9.1,
aivika-transformers ==5.9.1,
alex ==3.2.6,
ansi-pretty ==0.1.2.2,
arith-encode ==1.0.2,
async ==2.2.3,
async-pool ==0.9.1,
attoparsec ==0.13.2.5 || ==0.14.1,
barbies-th ==0.1.8,
base-compat ==0.11.2,
base-compat-batteries ==0.11.2,
base16-bytestring ==1.0.1.0,
basement ==0.0.12,
bits ==0.5.3,
blaze-builder ==0.4.2.1,
blaze-textual ==0.2.1.0,
boomerang ==1.4.7,
bound ==2.0.3,
box-tuples ==0.2.0.4,
byteslice ==0.2.5.2,
bytesmith ==0.3.7.0,
bytestring-strict-builder ==0.4.5.4,
cabal-doctest ==1.0.8,
cantor-pairing ==0.2.0.1,
cassava ==0.5.2.0,
cborg ==0.2.5.0,
cereal ==0.5.8.1,
charset ==0.3.8,
chaselev-deque ==0.5.0.5,
classy-prelude ==1.5.0,
combinat ==0.2.10.0,
commonmark-extensions ==0.2.1.2,
conduit ==1.3.4.1,
constraints ==0.13,
constraints-extras ==0.3.1.0,
cql ==4.0.3,
critbit ==0.2.0.0,
cryptonite ==0.29,
data-default-instances-new-base ==0.0.2,
data-dword ==0.3.2,
data-r-tree ==0.6.0,
datetime ==0.3.1,
deferred-folds ==0.9.17,
dependent-sum-template ==0.1.0.3,
deriving-compat ==0.5.10,
diagrams-lib ==1.4.4,
doctest ==0.18.1,
dom-lt ==0.2.2.1,
drinkery ==0.4,
edit-distance ==0.2.2.1,
emacs-module ==0.1.1,
endo ==0.3.0.1,
entropy ==0.4.1.6,
enumeration ==0.2.0,
extra ==1.7.9,
fgl ==5.7.0.3,
filepattern ==0.1.2,
focus ==1.0.2,
free-algebras ==0.1.0.1,
free-functors ==1.2.1,
generic-data ==0.9.2.0,
generic-deriving ==1.14,
generic-lens ==2.2.0.0,
generic-lens-core ==2.2.0.0,
generic-optics ==2.2.0.0,
generics-sop ==0.5.1.1,
geniplate-mirror ==0.7.8,
ghc-events ==0.17.0,
happy ==1.20.0,
hashtables ==1.2.4.1,
haskeline ==0.7.5.0,
haskell-src-exts ==1.23.1,
haskell-src-meta ==0.8.7,
haxl ==2.3.0.0,
heterocephalus ==1.0.5.4,
hgeometry ==0.12.0.4,
hgeometry-ipe ==0.12.0.0,
hscolour ==1.24.4,
hslogger ==1.3.1.0,
hspec-core ==2.8.3,
hspec-discover ==2.8.3,
hspec-expectations ==0.8.2,
hspec-meta ==2.7.8,
hspec-wai ==0.11.1,
http-types ==0.12.3,
http2 ==3.0.2,
hvect ==0.4.0.0,
hxt ==9.3.1.22,
inj-base ==0.2.0.0,
inspection-testing ==0.4.6.0,
invariant ==0.5.4,
io-choice ==0.0.7,
iproute ==1.7.11,
language-c ==0.9.0.1,
language-haskell-extract ==0.2.4,
language-javascript ==0.7.1.0,
lens ==5.0.1,
lens-family-th ==0.5.2.0,
list-t ==1.0.4,
lockfree-queue ==0.2.3.1,
memory ==0.16.0,
microlens-ghc ==0.4.13,
monad-validate ==1.2.0.0,
monadplus ==1.4.2,
mono-traversable ==1.0.15.1,
mono-traversable-keys ==0.1.0,
mustache ==2.3.1,
network ==3.1.2.2,
newtype-generics ==0.6,
obdd ==0.8.2,
optics-th ==0.4,
packman ==0.5.0,
pandoc ==2.14.2,
parameterized-utils ==2.1.3.0,
partial-isomorphisms ==0.2.2.1,
pem ==0.2.4,
persistent ==2.13.0.3 || ==2.13.1.1,
plots ==0.1.1.2,
pointed ==5.0.2,
posix-api ==0.3.5.0,
primitive-extras ==0.10.1.1,
primitive-sort ==0.1.0.0,
primitive-unlifted ==0.1.3.0,
proto3-wire ==1.2.2,
quickcheck-instances ==0.3.25.2,
random ==1.2.0,
relude ==1.0.0.1,
row-types ==1.0.1.0,
safe ==0.3.19,
safecopy ==0.10.4.2,
salak ==0.3.6,
securemem ==0.1.10,
semialign ==1.2,
semigroupoids ==5.3.5,
serialise ==0.2.3.0,
servant ==0.18.3,
shake ==0.19.5,
shakespeare ==2.0.25,
singletons ==3.0,
singletons-base ==3.0,
siphash ==1.0.3,
snap-core ==1.0.4.2,
streaming-commons ==0.2.2.1,
streamly ==0.8.0,
subcategories ==0.1.1.0,
test-framework ==0.8.2.0,
text-format ==0.3.2,
text-short ==0.1.3,
text-show ==3.9,
th-desugar ==1.12,
th-extras ==0.0.0.4,
threads ==0.5.1.6,
tls ==1.5.5,
tpdb ==2.2.0,
tree-diff ==0.2,
true-name ==0.1.0.3,
uniplate ==1.6.13,
unordered-containers ==0.2.14.0,
validity ==0.11.0.1,
vector-builder ==0.3.8.2,
vector-circular ==0.1.3,
vector-th-unbox ==0.2.1.9,
vinyl ==0.13.3,
vty ==5.33,
wai-app-static ==3.1.7.2,
wai-extra ==3.1.6,
wai-middleware-static ==0.9.0,
warp ==3.3.17,
winery ==1.3.2,
witherable ==0.4.1,
x509 ==1.7.5,
x509-validation ==1.6.11,
xlsx ==0.8.4,
xml-hamlet ==0.5.0.1,
yaml ==0.11.5.0,
yesod-core ==1.6.21.0
Loading