-
Notifications
You must be signed in to change notification settings - Fork 805
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
Nightly ghc-9.0.2 has Win32-2.12 (was 2.10) #6400
Comments
Hmmm, that is indeed problematic. Actually I see that ghc-9.0.2 ships with Win32-2.12.0.1. |
Thanks very much for reporting this - obviously a LTS 19 blocker: Also nice issue number ;-) Unfortunately we don't have a Windows builder for Stackage (ie we don't build with Win32) - so sometimes these kind of problems crop up. |
You're welcome. But there is a problem with foundation and Win32 >= 2.12.0.0. Win32 added explicit exports in version 2.12.0
|
I think the next LTS should be on 9.0.2 since 9.0.1 had some pretty severe bugs. From what I hear, professional users would not like to use 9.0.1. I would prefer to include foundation even if it doesn't work on windows, hopefully it will get patched and we can make sure to upgrade it at that point. |
It does work with an older version of Win32 (2.10.0.1 <= V < 2.12.0.0), I have used 2.10.0.1 and that did work OK, so the upper bounds proposed by @sjakobi in haskell-foundation/foundation#557 will do. I also just added a PR to foundation to add compatibility with the newer versions of Win32 (haskell-foundation/foundation#558). |
In general, stackage snapshots are tied to the versions that ship with GHC (https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history) For users of our snapshots they can add an We have forgotten to sync Win32 with GHC releases multiple times and it always causes problems for someone. |
Though it is surprising that 9.0.2 bumped the major version of Win32 - I don't think that has happened in recent history. https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history |
In such case LTS 19 would be pretty much unusable on Windows: |
So can someone here say clearly if adding a upperbound to Win32 in current Stackage Nightly would work? eg does say What is the difference between 2.10.1.0 and 2.10.1.1? |
i'll try it on my windows box, last time i tried haskell on windows i was supposed to run weird shell commands and something chocolatey so I never got anything to work. |
stack --resolver nightly-2022-01-20 build foundation Win32-2.10.1.0 works for me. Cheers to the ghcup team, first time installing on windows just worked for me. |
building against Win32-2.10.1.1 also works |
i can't find a changelog or commit related to this release... |
Seems like those releases are identical
|
forgot the
|
Don't use the Chocolatey package(s), use the official installer from https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows My Windows machine has a puny N4000, so you have been faster installing and compiling everything than me just compiling some needed new packages :-)
Yes, works. I had to add some extra-deps suggested by Stack, this is the stack.yaml i used:
$ stack build http-conduit Win32-2.10.1.0 Does not work using Win32-2.10.0.0
The fix of the
|
You must bump I guess the best way is to do a right, but hard thing and remove |
Hmm, I just posted a mail to ghc-devs about this (in the ghc-9.0.2 announce thread). |
(Btw perhaps we could have a GH action to run |
Okay, I was searching for a possible pathological example: maybe
|
No, |
This makes sense, for some reason I thought that Win32 would not be affected by this 🤷
I'm not sure about this. It would make it clearer to maintainers that windows support is an issue, and it would keep the snapshot consistent on Windows. But foundation works fine on other platforms, and we do allow platform-specific packages so foundation could temporarily be considered just that. What do you think?
That would be nice! but it wouldn't have caught this compile time issue. I suppose that this would only catch cases where dependencies are modified based on the platform? I don't think that's a common thing to do. |
I dunno - TLS support is a pretty big deal these days and there is talk on the linked haskell-trustee ticket of maybe not even fixing foundation for 2.12 at this time even though there is an open PR :-/ |
@juhp See haskell-infra/hackage-trustees#330 (comment)
@bergmark Leaf packages, which have a hard dependency on Windows users are already at disadvantage in Haskell ecosystem, and leaving them without usable LTS series does not really help with industrial adoption and stability. Maybe base LTS 19 on GHC 8.10? FWIW there were some very tentative plans (https://gitlab.haskell.org/ghc/homepage/-/merge_requests/96/diffs) to release GHC 8.10.8. |
That is not really an option - we create LTS major releases from Nightly, which is currently already on 9.0.2. If the "ecosystem" is treating Windows as a second class platform, then I tend to agree with Adam that we don't really have much choice here but to proceed with what we have. I can't say I am happy, but I don't think we can delay a ghc-9.0 LTS release indefinitely - one can only hope some sense will come, and tls might start building on Windows ghc-9.0 again later with the boot Win32 version. Otherwise it would be better to have a quick ghc-9.0.3 release IMO based on Win32-2.10 to avert the current issue. |
CC @myShoggoth |
Vincent has released basement-0.0.13 and foundation-0.0.27 which hopefully should help resolve this. If all goes well they should be in the next Nightly snapshot. |
Could anyone here retest with latest nightly on Windows? No hacks should be needed now hopefully eg |
"stack --resolver nightly-2022-03-03 build tls" builds successfully on Windows here. |
I don't know how or where to report errors of the nightlies or propose changes to the YAML, so I'm doing that here. Sorry, if that's the wrong place.
The new nightlies (using GHC 9.0.2) don't compile on Windows, because the package Win32-2.10.0.0 doesn't compile. A C header file is missing (actually the C include directory isn't set when compiling).
Solution
use Win32-2.10.1.0 instead of Win32-2.10.0.0
Error Message
The error is not finding winnls_compat.h:
error: NLS.hsc:56:10: fatal error: winnls_compat.h: No such file or directory
See also haskell/win32#162
The text was updated successfully, but these errors were encountered: