-
-
Notifications
You must be signed in to change notification settings - Fork 369
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
Add support for multi unit argument syntax #3462
Conversation
b4c878c
to
7ab7989
Compare
7ab7989
to
90ab9fb
Compare
What happens if the closure property is violated? That seemed the main point of design on the issue? |
@@ -0,0 +1,2 @@ | |||
packages: a b c | |||
multi-repl: True |
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.
Wat?
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.
Probably the new cabal feature that uses multiple home-units when loading them into a repl?
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.
Yes, @fendor is right, I generated the -unit
files by using a special branch of cabal with the new feature and then editing it a bit.
This cabal.project isn't necessary or even useful in this patch so I will remove it.
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.
With the cabal feature you can set up your hie.yaml
to load your entire project including all components with this patch like so:
cradle:
cabal:
- path: "./"
component: "all"
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.
I am interested to know what branch and what @mpickering is planning there, and whether we still need the work from haskell/cabal#7500, or whether the changes done in that fork render cabal status
command irrelevant?
Maybe we can briefly discuss that at the next meeting.
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.
Here is the branch, it is still a WIP: https://github.com/mpickering/cabal/tree/wip/no-configure
We get the same error we would get from GHC, which is not ideal and could probably be improved. I checked if recovery is possible once more components are loaded but it seems it is not, so that needs a bit more work. |
I think that things should carry on working for the unit you have currently loaded but just ignore any files which would be in the new component (until the require components are loaded in). |
I tested again and the closure check seems to be working properly now. But I think the question I raised about what should happen if the closure check is violated is still unresolved. |
Branch appears to no longer build due to a version mismatch of hie-bios. What's the plan @wz1000 ? |
I think, the plan looks roughly as follows:
|
cd9cc3e
to
ed8f16e
Compare
08c3bb6
to
f38beda
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.
LGTM, let's go!
6b62b97
to
f12d434
Compare
83f1b4e
to
7242673
Compare
dc7af27
to
224c72e
Compare
0a1efdb
to
b86b98d
Compare
5d708f3
to
915b59a
Compare
915b59a
to
2cdb033
Compare
Implements the argument parsing logic for multiple home units found in GHC 9.4: https://downloads.haskell.org/ghc/9.4.4/docs/users_guide/using.html#multiple-home-units
We now support arguments of the form
where the response files
unitA
andunitB
contain the actual list of arguments for that unit:Also refactor the session loader and simplify it.
Also adds error messages on GHC 9.4 if the units are not closed (#3422).
Depends on haskell/hie-bios#387