[ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Cheng Shao cheng.shao at tweag.io
Tue Sep 29 11:18:26 UTC 2020


Hi Moritz,

> However dlopen with musl on x86 seems fine.

Here's a dlopen example that segfaults if linked with -static:

#include <stdio.h>
#include <dlfcn.h>

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
<moritz.angermann at gmail.com> 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 <cheng.shao at tweag.io> 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 <ben at well-typed.com> 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:
>>
>> >
>>
>> >     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-linear-types.rst
>>
>> > [2] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0287-simplify-subsumption.rst
>>
>> > [3] https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qualified-do.rst
>>
>> > [4] https://downloads.haskell.org/ghc/9.0.1-alpha1/docs/html/users_guide/9.0.1-notes.html
>>
>> > _______________________________________________
>>
>> > ghc-devs mailing list
>>
>> > ghc-devs at haskell.org
>>
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
>> _______________________________________________
>>
>> ghc-devs mailing list
>>
>> ghc-devs at haskell.org
>>
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>


More information about the ghc-devs mailing list