The GHC developers are very pleased to announce the availability of the
second alpha prerelease of GHC 9.8.1. Binary distributions, source
distributions, and documentation are available at downloads.haskell.org.
GHC 9.8 will bring a number of new features and improvements, including:
Better support for user-defined warnings by way of the WARNING
pragma
The introduction of the new GHC.TypeError.Unsatisfiable
constraint, allowing more predictable user-defined type errors
Implementation of the export deprecation proposal,
allowing module exports to be marked with DEPRECATE pragmas
The addition of build semaphore support for parallel compilation,
allowing better use of parallelism across GHC builds
More efficient representation of info table provenance information,
reducing binary sizes by nearly 80% in some cases when -finfo-table-map is in use
A full accounting of changes can be found in the release notes.
This alpha includes roughly two dozen bug-fixes relative to alpha 1.
We would like to thank GitHub, IOG, the Zw3rk stake pool,
Well-Typed, Tweag I/O, Serokell, Equinix, SimSpace, the Haskell
Foundation, and other anonymous contributors whose on-going financial
and in-kind support has facilitated GHC maintenance and release
management over the years. Finally, this release would not have been
possible without the hundreds of open-source contributors whose work
comprise this release.
As always, do give this release a try and open a ticket if you see
anything amiss.
I also fetched the indicated tarball and confirmed that it has the expected SHA. However, the CDN does make it hard to know for certain whether you are getting the same file as me.
I now have another problem, which appears to me likely to be a combination of what Stack does (unpack to a temporary directory with a long-ish filepath, using 7z) and a known bug in 7z.exe related to long filepaths formed by prefixing a filepath to an archive item’s filepath. The problem manifests as (with some reformatting for clarity …):
...
Everything is Ok
Size: 3318026240
Compressed: 324553756
[debug] Process finished in 4694ms:
C:\Users\mike\AppData\Local\Programs\stack\x86_64-windows\7z.exe
x
-oC:\Users\mike\AppData\Local\Programs\stack\x86_64-windows\ghc-9.8.0.20230809-tmp-1d97bad0cb294661\
-y
C:\Users\mike\AppData\Local\Programs\stack\x86_64-windows\ghc-9.8.0.20230809.tar.xz
[info] Extracting ghc-9.8.0.20230809.tar...
[debug] Run process:
C:\Users\mike\AppData\Local\Programs\stack\x86_64-windows\7z.exe
x
-oC:\Users\mike\AppData\Local\Programs\stack\x86_64-windows\ghc-9.8.0.20230809-tmp-1d97bad0cb294661\
-y
C:\Users\mike\AppData\Local\Programs\stack\x86_64-windows\ghc-9.8.0.20230809-tmp-1d97bad0cb294661\ghc-9.8.0.20230809.tar
Extracted 15 files
ERROR: Cannot open output file :
The filename, directory name, or volume label syntax is incorrect. :
C:\Users\mike\AppData\Local\Programs\stack\x86_64-windows\ghc-9.8.0.20230809-tmp-1d97bad0cb294661\\ghc-9.8.0.20230809-x86_64-unknown-mingw32\lib\x86_64-windows-ghc-9.8.0.20230809\base-4.19.0.0-4848\GHC\Unicode\Internal\Char\UnicodeData\SimpleLowerCaseMapping.hi
... [and so on for items that have long filepaths]
The long name for ghc-9.8.0-20230809, which gets repeated three times, means the filepaths are just creeping past the 260 character count.
EDIT: I’ll add an issue to Stack’s repository. The solution, I think, is for Stack to choose a temporary directory with a shorter filepath.
For anyone exploring GHC 9.8.1 with Stack on Windows, the long filepath wrinkle above is now fixed in the master branch version of Stack (if you are not using GHCup to manage Stack itself, stack upgrade --source-only --git).
With a few minor patches of dependencies, and a lot of allow-newer-deps to overcome the restriction of upper bounds, I was able to build Stack with Stack on Alpine Linux 3.18 (on WSL 2) using GHC 9.8.0.20230809, including with --flag stack:static. My experiment is in the ghc-9.8.0.20230809 branch of Stack’s repository.
For me that is good news, because I think it means that, once GHC 9.8.1 is released, I can both: (a) move Stack on from GHC 9.2.7; and (b) release statically linked versions of Stack for Linux.