Re: [ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Shao, Cheng
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 <[hidden email]> 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
> [hidden email]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Moritz Angermann-2
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 <[hidden email]> 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 <[hidden email]> 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

> [hidden email]

> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________

ghc-devs mailing list

[hidden email]

http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Shao, Cheng
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
<[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>
>> > [hidden email]
>>
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
>> _______________________________________________
>>
>> ghc-devs mailing list
>>
>> [hidden email]
>>
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Moritz Angermann-2
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 <[hidden email]> wrote:
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

<[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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

>>

>> > [hidden email]

>>

>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

>>

>> _______________________________________________

>>

>> ghc-devs mailing list

>>

>> [hidden email]

>>

>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

>>


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Moritz Angermann-2
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 <[hidden email]> 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 <[hidden email]> wrote:
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

<[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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

>>

>> > [hidden email]

>>

>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

>>

>> _______________________________________________

>>

>> ghc-devs mailing list

>>

>> [hidden email]

>>

>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

>>


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Glasgow Haskell Compiler 9.0.1-alpha1 released

Shao, Cheng
> 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
<[hidden email]> wrote:

>
> 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 <[hidden email]> 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 <[hidden email]> wrote:
>>>
>>> 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
>>>
>>> <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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
>>>
>>> >>
>>>
>>> >> > [hidden email]
>>>
>>> >>
>>>
>>> >> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>>
>>> >>
>>>
>>> >> _______________________________________________
>>>
>>> >>
>>>
>>> >> ghc-devs mailing list
>>>
>>> >>
>>>
>>> >> [hidden email]
>>>
>>> >>
>>>
>>> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>>
>>> >>
>>>
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs