Re: haskell 7 world -> moving to 8!
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!
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!
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!
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!
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