Remove top-down resolver#3598
Conversation
bad2eb9 to
e5a3fb1
Compare
| (#3429). | ||
| * The bootstrap script now works correctly when run from a Git | ||
| clone (#3439). | ||
| * Removed the top-down solver (#3598). |
There was a problem hiding this comment.
Ah, yes, thank you :)
228f7de to
f0bbcf1
Compare
|
Yay, so much deleted code! But are you sure you want to remove the |
| optionSolver :: (flags -> Flag PreSolver) | ||
| -> (Flag PreSolver -> flags -> flags) | ||
| -> OptionField flags | ||
| optionSolver get set = |
There was a problem hiding this comment.
Ugh I wish we had some library function that let us turn this into a "this was removed flag, modular solver only" to let users who try to use this flag know what to do.
There was a problem hiding this comment.
Yeah, I'd have really liked to keep reading the "solver" option and just emit a warning/error saying "you might have wanted X, but I'm going to do Y", but: In the default configuration the "solver: XXX" line is commented, so it's not going to be a problem for the vast majority of cabal-install users. If they try to change "solver" then, of course, they'll get an error message, but I think that's basically as it should be.
Of course there might be some people out there who are actually using "solver: topdown" in their configurations, but they should have had plenty of time to speak up since it's emitted a deprecation warning for quite some time.
f0bbcf1 to
1a2eef5
Compare
Yeah, I was sort of on the fence about that[1], but as you say it can always be brought back and if we're going to be realistic I think the 'external solver' is quite far off at this point[2], so in the end I decided that it's probably better to avoid the maintenance burden of the "redundant" code. (Basically: Applying the YAGNI principle.) [1] This is, in fact, the reason that I have separate commits for these things. That'll make it even easier to bring back "solver choice" if it's ever going to be needed again. [2] In practice... AFAICT it's going to be a lot of work to standardize on a format, etc. (I'm actually not really sold on the idea of an external solver, but whatever.) |
|
I'll merge the first part of this tomorrow (that bit should be uncontroversial at this point), but I'll hold off for a few days on the follow-ups -- just to let people chime in. @phadej : Do you think this will cause trouble for you or do you agree with my assessment on the external solver support? |
👍 |
|
I'm in favour of keeping the solver parameter. I have been experimenting with other solvers in the past and think it's likely that I or others will do so in the future. This is much easier if the parameter is there, and I don't think there's a huge maintenance burden attached to it. |
|
OK. For clarification: Do you want to retain the configuration bits per se? With the changes I've posted it's still pretty easy to experiment by changing the a single line in I suppose we could also change WDYT? |
1a2eef5 to
5d475b0
Compare
Removing 'topdown' as a resolver choice means that 'choose' is also obsolete and so it is removed too.
5d475b0 to
f357f77
Compare
Removing 'topdown' as a resolver choice means that 'choose' is also
obsolete and so it is removed too.