Re: haskell 7 world -> moving to 8!

2019-09-13 Thread Ken Cunningham


On 2019-09-12, at 7:02 PM, Ken Cunningham wrote:
> 
>  PPC is pretty much out, I think, because the llvm backend that haskell uses 
> can't produce quality PPC code... 


Actually -- that is not correct. 

I was under the impression that ghc used llvm as it's sole code generator based 
on our previous port, but llvm turns out to be an optional code generator, and 
our current ghc port isn't configured to use it at all I see.

So, who knows? PPC here we come!

Ken

Re: haskell 7 world -> moving to 8!

2019-09-12 Thread Mojca Miklavec
On Fri, 13 Sep 2019 at 04:02, Ken Cunningham
 wrote:
> On 2019-09-12, at 7:51 AM, Mojca Miklavec wrote:
>
>
>
> Cool!
>
> Doesn't it work if you simply use this working ghc-bootstrap to build version 
> 8?
> Or is Haskell too picky about what version of compiler you require to
> build something newer, and you can only go forward one tiny step at a
> time?
>
>
> The Haskell bootstrap rule appears to be two major steps at a time, and for 
> whatever reason they skip odd numbered minor versions.
>
> Bootstrapping up to a current ghc from our previous ghc 7.8.3 looks like it 
> may not be overly difficult, in the end, at least it went pretty smoothly:
>
> $ port -v installed ghc
> The following ports are currently installed:
>   ghc @7.8.3_6 platform='darwin 10' archs='x86_64' 
> date='2017-11-19T13:47:09-0800'
>   ghc @8.0.2_0 (active) platform='darwin 10' archs='x86_64' 
> date='2019-09-12T18:04:13-0700'
>
>
> It all goes pretty easily, but it does take some time.
>
> This ghc compiler I'm building looks like it should work on all 64bit systems 
> 10.6+, I think. Have to see.

We would need to put the generated binary somewhere and use that one
for the actual/final build from the Portfile. That would speed up
things for everyone ...

> I think this might deliver a newer ghc 8.6.3 for older systems (actually 
> 8.8.1 is out now, so I might just go all the way to there)  and then once we 
> have a bootstrap we can just use the current haskell infrastructure & stack.

> On the way-out-there fringe, who knows about i386: There is an 8.8.1  i386 
> bootstrap binary for debian, so it appears possible to ponder that, at least.

On 10.6 it might in fact be possible to cross-compile for both i386
and PPC. At least their official suggestion is to cross-compile from a
platform that already works.

Mojca


Re: haskell 7 world -> moving to 8!

2019-09-12 Thread Fred Wright



On Thu, 12 Sep 2019, Ken Cunningham wrote:

On 2019-09-12, at 7:02 PM, Ken Cunningham wrote:


 ghc is only C code.


Well, C code + haskell of course.

Not c++ . It's primarily the c++ exception handling Darwin ABI issue 
with PPC llvm that limits releasing clang-5+ for PPC to the wild.


At Google, C++ exceptions are considered unreliable enough to be 
completely forbidden, and that's on x86.


Fred Wright


Re: haskell 7 world -> moving to 8!

2019-09-12 Thread Ken Cunningham


On 2019-09-12, at 7:02 PM, Ken Cunningham wrote:

>  ghc is only C code.

Well, C code + haskell of course.

Not c++ . It's primarily the  c++ exception handling Darwin ABI issue with PPC 
llvm that limits releasing clang-5+ for PPC to the wild.

Ken



Re: haskell 7 world -> moving to 8!

2019-09-12 Thread Ken Cunningham

On 2019-09-12, at 7:51 AM, Mojca Miklavec wrote:
> 
> 
> Cool!
> 
> Doesn't it work if you simply use this working ghc-bootstrap to build version 
> 8?
> Or is Haskell too picky about what version of compiler you require to
> build something newer, and you can only go forward one tiny step at a
> time?
> 

The Haskell bootstrap rule appears to be two major steps at a time, and for 
whatever reason they skip odd numbered minor versions.

Bootstrapping up to a current ghc from our previous ghc 7.8.3 looks like it may 
not be overly difficult, in the end, at least it went pretty smoothly:

$ port -v installed ghc
The following ports are currently installed:
  ghc @7.8.3_6 platform='darwin 10' archs='x86_64' 
date='2017-11-19T13:47:09-0800'
  ghc @8.0.2_0 (active) platform='darwin 10' archs='x86_64' 
date='2019-09-12T18:04:13-0700'


It all goes pretty easily, but it does take some time. 

This ghc compiler I'm building looks like it should work on all 64bit systems 
10.6+, I think. Have to see.

I think this might deliver a newer ghc 8.6.3 for older systems (actually 8.8.1 
is out now, so I might just go all the way to there)  and then once we have a 
bootstrap we can just use the current haskell infrastructure & stack.



On the way-out-there fringe, who knows about i386: There is an 8.8.1  i386 
bootstrap binary for debian, so it appears possible to ponder that, at least. 

I would not be surprised if it also worked on Intel 10.5, but PPC is pretty 
much out, I think, because the llvm backend that haskell uses can't produce 
quality PPC code... although I do in fact have a working llvm-3.9 and llvm-5.0 
for PPC that might actually work, as ghc is only C code. Not sure about the ABI 
issues...

Maybe a cross compiler might be fun to try out, someday...

Ken