Right, the point here is that `allow-newer` _breaks the solver_ and in particular breaks packages that require it to obey upper bounds (like `unix`) to produce a valid build plan. Using it blindly is therefore a very bad idea.

On Sat, Jun 1, 2024 at 11:11 AM Henning Thielemann <lemming@henning-thielemann.de> wrote:

On Sat, 1 Jun 2024, Daniel Trstenjak wrote:

> Looking at the compile error of the unix package, it looks like it gets
> the wrong combination of filepath and os-string packages, resulting in
> the missing symbols. This depends on the os-string flag, either the unix
> package gets the older filepath package containing these symbols or the
> newer one without them and additionally the os-string package now
> containing the symbols.
>
> This handling with the os-string flag feels wrong to me and therefore
> cabal can‘t resolve the right dependencies.

It would work, but --allow-newer ignores upper version bounds and thus can
choose old filepath with new os-string.


--
brandon s allbery kf8nh
allbery.b@gmail.com