-
-
Notifications
You must be signed in to change notification settings - Fork 412
Add support for multi unit argument syntax #3462
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
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
fendor
left a comment
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
unitAandunitBcontain 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