-
Notifications
You must be signed in to change notification settings - Fork 102
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
Massaging Upper Bounds #494
Conversation
Tested with `stack test` (all passing). Fixes #494.
This passes tests locally (while on |
57b6250
to
e52725e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this looks good to me, and doesn't touch default.nix so I would think it's safe to merge.
So long as we're okay with |
@mightybyte any opinion here? |
I don't have a problem with this. It could end up requiring more of our work to support both versions simultaneously, but as long as we're staying away from CPP territory it probably won't be a huge problem. |
This allows the library to build (and be depended on) without "breaking open" the build with heavy-hammers like `--allow-newer` when compiling with GHC 8.6. The test suite still does not build, due to some naughty partial pattern matches.
These locations trigger errors on ghc 8.6 for missing `MonadFail` instances. Fixes #495.
Tested with `stack test` (all passing). Fixes #494.
e52725e
to
baa5fe1
Compare
ModuleData mod1 _refs <- ExceptT $ stateModuleData "mod1" replState0 | ||
ModuleData mod2 _refs <- ExceptT $ stateModuleData "mod2" replState0 | ||
ExceptT . fmap (first show) . serveAndRequest 3001 $ | ||
Remote.Request [derefDef <$> mod2, derefDef <$> mod1] "mod2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An example of how to avoid partial pattern matches, as well as wanton error
calls.
|
||
# Linux build | ||
- env: BUILD=stack ARGS="-j1" Z3VERSION="4.8.3" | ||
addons: | ||
apt: {packages: [libgmp-dev]} | ||
artifacts: | ||
paths: | ||
- .stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/pact/pact | ||
- .stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/pact/pact |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These paths would change with the bump to lts-13.*
. Does another tool / integration expect these paths to have an exact shape (say 2.2
vs 2.4
), say for deployment? I wouldn't want to break anything here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe windows? Trying to find out where our windows life is at currently elsewhere too. @vaibhavsagar ?
This PR is now current with @slpopejoy Unfortunately, the Analyze code still contains a number of instances of "running out the exhaustion checker". We currently have this in the updated
This smooths things over for devs who use Stack during their day-to-day, but our Travis CI config reinforces Thoughts about how this PR should proceed? |
@fosskers I can take a look at the Analyze problem in a few days when I get back from vacation |
Thanks @joelburget , no rush. |
GHC 8.6's pattern match checker seems to have some bugs related to pattern synonyms (eg https://gitlab.haskell.org/ghc/ghc/issues/14253). We remove a few places where the `SObject` pattern synonym erroneously triggered a failure. We can also remove the `-fmax-pmcheck-iterations=5000` option. Tested via: ``` cabal clean; cabal test stack clean; stack test ```
I was able to remove the |
Thanks @joelburget , testing now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved. We might need to figure out how this impacts the Windows build but since we're delayed getting an answer would be good to get this in.
This branch forks off from Pact right before the breaking changes of #482 . It tickles some of Pact's upper bounds, which allows for a simpler
stack.yaml
which full GHC 8.6 support, and eventually a simplerdefault.nix
.In general, this should probably not be merged. It could potentially be the basis of a
2.6.2
release, but we need not spend time on that now. Chainweb's own 8.6 support could be based off this branch in the short-term.This branch also revealed some compilation issues, as explained in #495 .
Closes #495