[ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Hello all, The GHC team is very pleased to announce the availability of the first alpha release in the GHC 9.0 series. Source and binary distributions are available at the usual place: https://downloads.haskell.org/ghc/9.0.1-alpha1/ This first alpha comes quite a bit later than expected. However, we have done a significant amount of testing on this pre-release and therefore hope to be able to move forward quickly with a release candidate next week and with a final release in mid-October. GHC 9.0.1 will bring a number of new features: * A first cut of the new LinearTypes language extension [1], allowing use of linear function syntax and linear record fields. * A new bignum library (ghc-bignum), allowing GHC to be more easily used with integer libraries other than GMP. * Improvements in code generation, resulting in considerable performance improvements in some programs. * Improvements in pattern-match checking, allowing more precise detection of redundant cases and reduced compilation time. * Implementation of the "simplified subsumption" proposal [2] simplifying the type system and paving the way for QuickLook impredicativity in GHC 9.2. * Implementation of the QualifiedDo extension [3], allowing more convenient overloading of `do` syntax. * Improvements in compilation time. And many more. See the release notes [4] for a full accounting of the changes in this release. Do note that there are a few things that we expect will change before the final release: * We expect to sort out a notarization workflow for Apple Darwin, allowing our binary distributions to be used on macOS Catalina without hassle. Until this has been sorted out Catalina users can exempt the current macOS binary distribution from the notarization requirement themselves by running `xattr -cr .` on the unpacked tree before running `make install`. * We will likely transition the Alpine binary distribution to be fully statically-linked, providing a convenient, distribution-independent packaging option for Linux users. * We will be merging a robust solution for #17760 which will introduce a new primitive, `keepAlive#`, to the `base` library, subsuming most uses of `touch#`. As always, do test this release and open tickets for whatever issues you encounter. To help with this, we will be publishing a blog post describing use of our new `head.hackage` infrastructure to ease testing of larger projects with Hackage dependencies later this week. Cheers, - Ben [1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li... [2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si... [3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu... [4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n...

We will likely transition the Alpine binary distribution to be fully statically-linked, providing a convenient, distribution-independent
Hi Ben,
packaging option for Linux users.
iirc for statically linked executables, musl doesn't even support
dlopen, so wouldn't this mean such a bindist would fail for all
LoadDLL ghci commands?
Cheers,
Cheng
On Mon, Sep 28, 2020 at 9:15 PM Ben Gamari
Hello all,
The GHC team is very pleased to announce the availability of the first alpha release in the GHC 9.0 series. Source and binary distributions are available at the usual place:
https://downloads.haskell.org/ghc/9.0.1-alpha1/
This first alpha comes quite a bit later than expected. However, we have done a significant amount of testing on this pre-release and therefore hope to be able to move forward quickly with a release candidate next week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2] simplifying the type system and paving the way for QuickLook impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the changes in this release.
Do note that there are a few things that we expect will change before the final release:
* We expect to sort out a notarization workflow for Apple Darwin, allowing our binary distributions to be used on macOS Catalina without hassle.
Until this has been sorted out Catalina users can exempt the current macOS binary distribution from the notarization requirement themselves by running `xattr -cr .` on the unpacked tree before running `make install`.
* We will likely transition the Alpine binary distribution to be fully statically-linked, providing a convenient, distribution-independent packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce a new primitive, `keepAlive#`, to the `base` library, subsuming most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you encounter. To help with this, we will be publishing a blog post describing use of our new `head.hackage` infrastructure to ease testing of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li... [2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si... [3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu... [4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n... _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

No. Not necessarily. We can perfectly fine load archives and the pre-linked
ghci objects. However dlopen with musl on x86 seems fine. On arm it’s not
implemented, and just throws an error message. There is a -dynamic flag in
HEAD, which disables GHC even trying to load dynamic libraries and always
assuming there is no dynamic linking facility, even if configure reports
the existence of dlopen...
On Tue, 29 Sep 2020 at 6:54 PM, Cheng Shao
Hi Ben,
We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
iirc for statically linked executables, musl doesn't even support
dlopen, so wouldn't this mean such a bindist would fail for all
LoadDLL ghci commands?
Cheers,
Cheng
On Mon, Sep 28, 2020 at 9:15 PM Ben Gamari
wrote: Hello all,
The GHC team is very pleased to announce the availability of the first
alpha release in the GHC 9.0 series. Source and binary distributions are
available at the usual place:
This first alpha comes quite a bit later than expected. However, we have
done a significant amount of testing on this pre-release and therefore
hope to be able to move forward quickly with a release candidate next
week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing
use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily
used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable
performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise
detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2]
simplifying the type system and paving the way for QuickLook
impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more
convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the
changes in this release.
Do note that there are a few things that we expect will change before
the final release:
* We expect to sort out a notarization workflow for Apple Darwin,
allowing our binary distributions to be used on macOS Catalina
without hassle.
Until this has been sorted out Catalina users can exempt the
current macOS binary distribution from the notarization requirement
themselves by running `xattr -cr .` on the unpacked tree before
running `make install`.
* We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce
a new primitive, `keepAlive#`, to the `base` library, subsuming
most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you
encounter. To help with this, we will be publishing a blog post
describing use of our new `head.hackage` infrastructure to ease testing
of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li...
[2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si...
[3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu...
[4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n...
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org

Hi Moritz,
However dlopen with musl on x86 seems fine.
Here's a dlopen example that segfaults if linked with -static:
#include
No. Not necessarily. We can perfectly fine load archives and the pre-linked ghci objects. However dlopen with musl on x86 seems fine. On arm it’s not implemented, and just throws an error message. There is a -dynamic flag in HEAD, which disables GHC even trying to load dynamic libraries and always assuming there is no dynamic linking facility, even if configure reports the existence of dlopen...
On Tue, 29 Sep 2020 at 6:54 PM, Cheng Shao
wrote: Hi Ben,
We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
iirc for statically linked executables, musl doesn't even support
dlopen, so wouldn't this mean such a bindist would fail for all
LoadDLL ghci commands?
Cheers,
Cheng
On Mon, Sep 28, 2020 at 9:15 PM Ben Gamari
wrote: Hello all,
The GHC team is very pleased to announce the availability of the first
alpha release in the GHC 9.0 series. Source and binary distributions are
available at the usual place:
This first alpha comes quite a bit later than expected. However, we have
done a significant amount of testing on this pre-release and therefore
hope to be able to move forward quickly with a release candidate next
week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing
use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily
used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable
performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise
detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2]
simplifying the type system and paving the way for QuickLook
impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more
convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the
changes in this release.
Do note that there are a few things that we expect will change before
the final release:
* We expect to sort out a notarization workflow for Apple Darwin,
allowing our binary distributions to be used on macOS Catalina
without hassle.
Until this has been sorted out Catalina users can exempt the
current macOS binary distribution from the notarization requirement
themselves by running `xattr -cr .` on the unpacked tree before
running `make install`.
* We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce
a new primitive, `keepAlive#`, to the `base` library, subsuming
most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you
encounter. To help with this, we will be publishing a blog post
describing use of our new `head.hackage` infrastructure to ease testing
of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li...
[2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si...
[3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu...
[4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n...
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org

Happy to give this a try later today. Been using fully static musl builds
(including cross compilation) for x86_64 for a while now; and did not
(yet?) run into that SQLite issue. But did have it use shared objects in
iserv.
On Tue, 29 Sep 2020 at 7:18 PM, Cheng Shao
Hi Moritz,
However dlopen with musl on x86 seems fine.
Here's a dlopen example that segfaults if linked with -static:
#include
#include
int main() {
void *h = dlopen("/usr/lib/libsqlite3.so", RTLD_NOW);
char *f = dlsym(h, "sqlite3_version");
printf("%s\n", f);
return 0;
}
On Tue, Sep 29, 2020 at 1:04 PM Moritz Angermann
wrote: No. Not necessarily. We can perfectly fine load archives and the pre-linked ghci objects. However dlopen with musl on x86 seems fine. On arm it’s not implemented, and just throws an error message. There is a -dynamic flag in HEAD, which disables GHC even trying to load dynamic libraries and always assuming there is no dynamic linking facility, even if configure reports the existence of dlopen...
On Tue, 29 Sep 2020 at 6:54 PM, Cheng Shao
wrote: Hi Ben,
We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
iirc for statically linked executables, musl doesn't even support
dlopen, so wouldn't this mean such a bindist would fail for all
LoadDLL ghci commands?
Cheers,
Cheng
On Mon, Sep 28, 2020 at 9:15 PM Ben Gamari
wrote: Hello all,
The GHC team is very pleased to announce the availability of the first
alpha release in the GHC 9.0 series. Source and binary distributions are
available at the usual place:
This first alpha comes quite a bit later than expected. However, we have
done a significant amount of testing on this pre-release and therefore
hope to be able to move forward quickly with a release candidate next
week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing
use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily
used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable
performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise
detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2]
simplifying the type system and paving the way for QuickLook
impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more
convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the
changes in this release.
Do note that there are a few things that we expect will change before
the final release:
* We expect to sort out a notarization workflow for Apple Darwin,
allowing our binary distributions to be used on macOS Catalina
without hassle.
Until this has been sorted out Catalina users can exempt the
current macOS binary distribution from the notarization requirement
themselves by running `xattr -cr .` on the unpacked tree before
running `make install`.
* We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce
a new primitive, `keepAlive#`, to the `base` library, subsuming
most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you
encounter. To help with this, we will be publishing a blog post
describing use of our new `head.hackage` infrastructure to ease testing
of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li...
[2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si...
[3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu...
[4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n...
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org

This sent me down an interesting path. You are right that dlopen on
returns NULL with musl on x86_64, and dlerror will subsequently produce
"Dynamic loading not supported" if asked to compile with -static. I think
GHC has code to fallback to archives in the case where loading
shared objects fails, but I can't find the code right now. It still means
you'd need to have static sqlite (in this case) and other libraries around.
I'm still a bit puzzled, and I think I'm missing something. It remains,
that I know we have musl (x86_64, aarch64) based ghcs in production. I
wonder if there is something we got right by accident, that makes this work
smoothly for us. Warrants more investigation.
Cheers,
Moritz
On Tue, Sep 29, 2020 at 7:45 PM Moritz Angermann
Happy to give this a try later today. Been using fully static musl builds (including cross compilation) for x86_64 for a while now; and did not (yet?) run into that SQLite issue. But did have it use shared objects in iserv.
On Tue, 29 Sep 2020 at 7:18 PM, Cheng Shao
wrote: Hi Moritz,
However dlopen with musl on x86 seems fine.
Here's a dlopen example that segfaults if linked with -static:
#include
#include
int main() {
void *h = dlopen("/usr/lib/libsqlite3.so", RTLD_NOW);
char *f = dlsym(h, "sqlite3_version");
printf("%s\n", f);
return 0;
}
On Tue, Sep 29, 2020 at 1:04 PM Moritz Angermann
wrote: No. Not necessarily. We can perfectly fine load archives and the pre-linked ghci objects. However dlopen with musl on x86 seems fine. On arm it’s not implemented, and just throws an error message. There is a -dynamic flag in HEAD, which disables GHC even trying to load dynamic libraries and always assuming there is no dynamic linking facility, even if configure reports the existence of dlopen...
On Tue, 29 Sep 2020 at 6:54 PM, Cheng Shao
wrote: Hi Ben,
We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
iirc for statically linked executables, musl doesn't even support
dlopen, so wouldn't this mean such a bindist would fail for all
LoadDLL ghci commands?
Cheers,
Cheng
On Mon, Sep 28, 2020 at 9:15 PM Ben Gamari
wrote: Hello all,
The GHC team is very pleased to announce the availability of the first
alpha release in the GHC 9.0 series. Source and binary distributions are
available at the usual place:
This first alpha comes quite a bit later than expected. However, we have
done a significant amount of testing on this pre-release and therefore
hope to be able to move forward quickly with a release candidate next
week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing
use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily
used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable
performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise
detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2]
simplifying the type system and paving the way for QuickLook
impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more
convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the
changes in this release.
Do note that there are a few things that we expect will change before
the final release:
* We expect to sort out a notarization workflow for Apple Darwin,
allowing our binary distributions to be used on macOS Catalina
without hassle.
Until this has been sorted out Catalina users can exempt the
current macOS binary distribution from the notarization requirement
themselves by running `xattr -cr .` on the unpacked tree before
running `make install`.
* We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce
a new primitive, `keepAlive#`, to the `base` library, subsuming
most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you
encounter. To help with this, we will be publishing a blog post
describing use of our new `head.hackage` infrastructure to ease testing
of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li...
[2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si...
[3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu...
[4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n...
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org

that I know we have musl (x86_64, aarch64) based ghcs in production.
These ghc bindists (at least the one produced on gitlab ci) have
dynamically linked ghc executables iirc. Last time I tried to turn off
DYNAMIC_GHC_PROGRAM when building ghc on alpine, the produced ghc will
panic on TH code. That's on the 8.8 branch though.
On Tue, Sep 29, 2020 at 4:21 PM Moritz Angermann
This sent me down an interesting path. You are right that dlopen on returns NULL with musl on x86_64, and dlerror will subsequently produce "Dynamic loading not supported" if asked to compile with -static. I think GHC has code to fallback to archives in the case where loading shared objects fails, but I can't find the code right now. It still means you'd need to have static sqlite (in this case) and other libraries around.
I'm still a bit puzzled, and I think I'm missing something. It remains, that I know we have musl (x86_64, aarch64) based ghcs in production. I wonder if there is something we got right by accident, that makes this work smoothly for us. Warrants more investigation.
Cheers, Moritz
On Tue, Sep 29, 2020 at 7:45 PM Moritz Angermann
wrote: Happy to give this a try later today. Been using fully static musl builds (including cross compilation) for x86_64 for a while now; and did not (yet?) run into that SQLite issue. But did have it use shared objects in iserv.
On Tue, 29 Sep 2020 at 7:18 PM, Cheng Shao
wrote: Hi Moritz,
However dlopen with musl on x86 seems fine.
Here's a dlopen example that segfaults if linked with -static:
#include
#include
int main() {
void *h = dlopen("/usr/lib/libsqlite3.so", RTLD_NOW);
char *f = dlsym(h, "sqlite3_version");
printf("%s\n", f);
return 0;
}
On Tue, Sep 29, 2020 at 1:04 PM Moritz Angermann
wrote: No. Not necessarily. We can perfectly fine load archives and the pre-linked ghci objects. However dlopen with musl on x86 seems fine. On arm it’s not implemented, and just throws an error message. There is a -dynamic flag in HEAD, which disables GHC even trying to load dynamic libraries and always assuming there is no dynamic linking facility, even if configure reports the existence of dlopen...
On Tue, 29 Sep 2020 at 6:54 PM, Cheng Shao
wrote: Hi Ben,
We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
iirc for statically linked executables, musl doesn't even support
dlopen, so wouldn't this mean such a bindist would fail for all
LoadDLL ghci commands?
Cheers,
Cheng
On Mon, Sep 28, 2020 at 9:15 PM Ben Gamari
wrote: Hello all,
The GHC team is very pleased to announce the availability of the first
alpha release in the GHC 9.0 series. Source and binary distributions are
available at the usual place:
This first alpha comes quite a bit later than expected. However, we have
done a significant amount of testing on this pre-release and therefore
hope to be able to move forward quickly with a release candidate next
week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing
use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily
used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable
performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise
detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2]
simplifying the type system and paving the way for QuickLook
impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more
convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the
changes in this release.
Do note that there are a few things that we expect will change before
the final release:
* We expect to sort out a notarization workflow for Apple Darwin,
allowing our binary distributions to be used on macOS Catalina
without hassle.
Until this has been sorted out Catalina users can exempt the
current macOS binary distribution from the notarization requirement
themselves by running `xattr -cr .` on the unpacked tree before
running `make install`.
* We will likely transition the Alpine binary distribution to be fully
statically-linked, providing a convenient, distribution-independent
packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce
a new primitive, `keepAlive#`, to the `base` library, subsuming
most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you
encounter. To help with this, we will be publishing a blog post
describing use of our new `head.hackage` infrastructure to ease testing
of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li...
[2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si...
[3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu...
[4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n...
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org

Will this be updated to the latest containers before release? It's two
versions behind at the moment.
On Mon, Sep 28, 2020, 3:14 PM Ben Gamari
Hello all,
The GHC team is very pleased to announce the availability of the first alpha release in the GHC 9.0 series. Source and binary distributions are available at the usual place:
https://downloads.haskell.org/ghc/9.0.1-alpha1/
This first alpha comes quite a bit later than expected. However, we have done a significant amount of testing on this pre-release and therefore hope to be able to move forward quickly with a release candidate next week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2] simplifying the type system and paving the way for QuickLook impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the changes in this release.
Do note that there are a few things that we expect will change before the final release:
* We expect to sort out a notarization workflow for Apple Darwin, allowing our binary distributions to be used on macOS Catalina without hassle.
Until this has been sorted out Catalina users can exempt the current macOS binary distribution from the notarization requirement themselves by running `xattr -cr .` on the unpacked tree before running `make install`.
* We will likely transition the Alpine binary distribution to be fully statically-linked, providing a convenient, distribution-independent packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce a new primitive, `keepAlive#`, to the `base` library, subsuming most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you encounter. To help with this, we will be publishing a blog post describing use of our new `head.hackage` infrastructure to ease testing of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li... [2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si... [3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu... [4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n... _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users

Hi Ben,
What are the current plans / schedule for 9.0.1?
Thanks
George
On Mon, Sep 28, 2020 at 4:14 PM Ben Gamari
Hello all,
The GHC team is very pleased to announce the availability of the first alpha release in the GHC 9.0 series. Source and binary distributions are available at the usual place:
https://downloads.haskell.org/ghc/9.0.1-alpha1/
This first alpha comes quite a bit later than expected. However, we have done a significant amount of testing on this pre-release and therefore hope to be able to move forward quickly with a release candidate next week and with a final release in mid-October.
GHC 9.0.1 will bring a number of new features:
* A first cut of the new LinearTypes language extension [1], allowing use of linear function syntax and linear record fields.
* A new bignum library (ghc-bignum), allowing GHC to be more easily used with integer libraries other than GMP.
* Improvements in code generation, resulting in considerable performance improvements in some programs.
* Improvements in pattern-match checking, allowing more precise detection of redundant cases and reduced compilation time.
* Implementation of the "simplified subsumption" proposal [2] simplifying the type system and paving the way for QuickLook impredicativity in GHC 9.2.
* Implementation of the QualifiedDo extension [3], allowing more convenient overloading of `do` syntax.
* Improvements in compilation time.
And many more. See the release notes [4] for a full accounting of the changes in this release.
Do note that there are a few things that we expect will change before the final release:
* We expect to sort out a notarization workflow for Apple Darwin, allowing our binary distributions to be used on macOS Catalina without hassle.
Until this has been sorted out Catalina users can exempt the current macOS binary distribution from the notarization requirement themselves by running `xattr -cr .` on the unpacked tree before running `make install`.
* We will likely transition the Alpine binary distribution to be fully statically-linked, providing a convenient, distribution-independent packaging option for Linux users.
* We will be merging a robust solution for #17760 which will introduce a new primitive, `keepAlive#`, to the `base` library, subsuming most uses of `touch#`.
As always, do test this release and open tickets for whatever issues you encounter. To help with this, we will be publishing a blog post describing use of our new `head.hackage` infrastructure to ease testing of larger projects with Hackage dependencies later this week.
Cheers,
- Ben
[1] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-li... [2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-si... [3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qu... [4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-n... _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users

George Colpitts
Hi Ben,
What are the current plans / schedule for 9.0.1?
Hi George, At the moment things are blocked on a solution to #17760, which I am currently in the process of working through. There have been several false-starts on this ticket and while the solution we are ending up with is indeed a compromise (in both performance impact and convenience), I am fairly convinced it is the best we can do. I am waiting for a version of the patch to validate as we speak. As soon as it (and a few other relevant patches) have been backported I will move ahead with cutting the release candidate. I hope this can happen by the end of the week. Cheers, - Ben

Very late followup, but I just wanted to share that Fedora users can install this now (stable since last week) with: sudo dnf module install ghc:9.0/default Thanks, Jens
participants (6)
-
Ben Gamari
-
Cheng Shao
-
David Feuer
-
George Colpitts
-
Jens Petersen
-
Moritz Angermann