-
Notifications
You must be signed in to change notification settings - Fork 696
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
Track language extensions and language flavours in the solver. #2732
Closed
Conversation
This file contains 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
Every package now "depends" on all language extensions (default-extensions and other-extensions) and language flavours (default-language and other-languages) it declares in its cabal file. During solving, we verify that the compiler we use actually supports selected extensions and languages. This has to be done during solving, because flag choices can influence the declared extensions and languages being used. There currently is no equivalent check performed on the generated install plans. In general, cabal-install performs a sanity check on the solver output, checking that the solver e.g. indeed includes all the declared dependencies of a package. There is no such double-checking for language extensions. This is not really problematic, as all that this change does is to make the solver more conservative rather than less. However, having a sanity check available might ultimately be nice to have.
have some 🍰 & many 🍻 =) |
Good stuff. |
Good stuff indeed! |
@23Skidoo so... what's keeping this from being merged? :-) |
Remove action-required when tests are pushed. |
jdnavarro
added a commit
to jdnavarro/cabal
that referenced
this pull request
Oct 14, 2015
The tests now build successfully but still fail. See haskell#2732.
jdnavarro
added a commit
to jdnavarro/cabal
that referenced
this pull request
Oct 15, 2015
jdnavarro
added a commit
to jdnavarro/cabal
that referenced
this pull request
Oct 15, 2015
This also includes modifications to the solver testing DSL and the testing functions. See haskell#2732.
jdnavarro
added a commit
to jdnavarro/cabal
that referenced
this pull request
Oct 15, 2015
This also includes modifications to the solver testing DSL and the testing functions. This is ready for review at PR haskell#2732.
jdnavarro
added a commit
to jdnavarro/cabal
that referenced
this pull request
Oct 29, 2015
This also includes modifications to the solver testing DSL and the testing functions. This is necessary for merging PR haskell#2732.
jdnavarro
added a commit
to jdnavarro/cabal
that referenced
this pull request
Nov 25, 2015
This also includes modifications to the solver testing DSL and the testing functions. This is necessary for merging PR haskell#2732.
I think this can be closed because the commit was contained in #2873. |
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.
This should fix #2644.
Every package now "depends" on all language extensions
(default-extensions and other-extensions) and language flavours
(default-language and other-languages) it declares in its cabal file.
During solving, we verify that the compiler we use actually
supports selected extensions and languages. This has to be done
during solving, because flag choices can influence the declared
extensions and languages being used.
There currently is no equivalent check performed on the generated
install plans. In general, cabal-install performs a sanity check
on the solver output, checking that the solver e.g. indeed includes
all the declared dependencies of a package. There is no such
double-checking for language extensions. This is not really
problematic, as all that this change does is to make the solver
more conservative rather than less. However, having a sanity check
available might ultimately be nice to have.
I'll also look into adding tests for this. So don't merge just yet, the PR
is mainly here already to make it possible for others to test and give
feedback.