Hi all,

As a user who tried to be an early adopter of Hadrian, I can attest to
Andrey's remarks about GHC progress sometimes (frequently?) breaking
Hadrian.

Ben, Andrey - how about this strawman proposal:

we merge Hadrian into GHC *now*, not because ./validate with Hadrian
works (it doesn't yet), but because the build of GHC succeeds with
Hadrian. The resulting compiler might well be garbage. But that's fine
- we can iterate in the official ghc repo, all the while knowing that
CI has our back if ever some change makes Hadrian no longer even build
a compiler. Once ./validate passes with Hadrian, the guarantee that CI
gives will become stronger still: we'll know if any change would make
the Hadrian-produced compiler garbage again.

Maybe that does sound totally bonkers to you? :) Maybe it's radical,
but sounds to me like the best way to get the benefit *now* of
ensuring Make and Hadrian move forward in lock step thanks to CI.

The above all assumes that we're committed to Hadrian being the future
of GHC's build system. But I take it that's a given by now.

Best,

Mathieu


On 19 October 2017 at 19:05, Andrey Mokhov
<andrey.mok...@newcastle.ac.uk> wrote:
> Hi Ben, Manuel and all,
>
> Ben has already covered most questions in his answer, but let me add a couple 
> of comments.
>
>> So, Mathieu had the clever idea that having the two build system in
>> GHC side-by-side and then build in CI both ways might be a good way of
>> making sure that keep constant tabs on Hadian and get a clear (and
>> continuous picture) of where it is and what is missing.
>
> It would be great to build every GHC commit both by Make and Hadrian. Not 
> only this would allow to monitor the readiness of Hadrian, it would also make 
> it easier for us to catch up with changes in GHC and the Make build system. 
> At the moment, Hadrian is frequently broken by changes in GHC/Make and we 
> need to do detective work of figuring out which commit broke what and fix 
> Hadrian accordingly. These fixes are trivial in many cases (e.g. adding a new 
> flag to one of the builders) so GHC developers would probably be able to 
> easily mirror these changes in Hadrian if only their commits were marked as 
> Hadrian-breaking by the common CI.
>
>> In other words, why can’t we have Hadrian *today*?
>
> I'd say the biggest issue is #299 -- i.e. making sure that the GHC built by 
> Hadrian passes validation. At the moment we still have 100-200 unexpected 
> failures, most of which probably have to do with outdated command line flags 
> (GHC's build system continuously evolves and it wasn't possible to keep track 
> of all flag changes over time, so there are certainly some differences in 
> Hadrian that lead to validation failures). This is where help is currently 
> needed.
>
> Cheers,
> Andrey
>
> -----Original Message-----
> From: Ben Gamari [mailto:b...@well-typed.com]
> Sent: 19 October 2017 15:08
> To: Manuel M T Chakravarty <manuel.chakrava...@tweag.io>
> Cc: Mathieu Boespflug <m...@tweag.io>; Moritz Angermann 
> <moritz.angerm...@gmail.com>; Jonas Pfenniger Chevalier 
> <jonas.cheval...@tweag.io>; Andrey Mokhov <andrey.mok...@newcastle.ac.uk>
> Subject: Re: Hadrian
>
> CCing Andrey and Zhen, who are the principle authors of Hadrian.
>
> Manuel M T Chakravarty <manuel.chakrava...@tweag.io> writes:
>
>> Hi Ben,
>>
>> I our exploration of cross-compilation for GHC and the CI integration,
>> we talked with Moritz and got to the topic of Hadrian. It seems that
>> there are few interdependent issues here, and I am really interested
>> in getting your take on them.
>>
>> * Hadrian is slated for inclusion for 8.4, but I couldn’t find any
>> tickets except #12599. Is this because Hadrian has its own issue
>> tracker on GitHub? How can I get an overview over what’s missing in
>> getting Hadrian into GHC?
>>
> Right, Hadrian tickets are currently tracked in its own issue tracker.
>
>> * For Moritz’ work on ARM and also for CI cross-compiling is
>> important, but Moritz pointed out rightly that it seems wasteful put
>> much time into improving this in the make-based build system if that
>> is going to go soon anyway. However, because Hadrian is not in yet,
>> doing the work on Hadrian now also doesn’t really make sense.
>>
> Indeed. Hadrian is one of the things I am currently working on for
> precisely this reason.
>
>> * Obviously, one issue with Hadrian is stability and feature
>> completeness. This has ramifications on our desire to really get 8.4
>> out of the door in February and not delay the release and also get the
>> CI done, because good CI is the best way of making sure the Hadrian
>> integration goes smoothly. (There is obviously a cyclic dependence
>> between this point and the previous.)
>>
>> So, Mathieu had the clever idea that having the two build system in
>> GHC side-by-side and then build in CI both ways might be a good way of
>> making sure that keep constant tabs on Hadian and get a clear (and
>> continuous picture) of where it is and what is missing. It would also
>> allow Moritz to do cross-compilation work right there on Hadrian.
>>
>> In other words, why can’t we have Hadrian *today*?
>>
> At this point the plan is for Hadrian and the Make-based build system to
> coexist in 8.4, with the make system serving as a backup.
>
> Well, we could (and potentially should) merge Hadrian
>
>> If the limiting factor is resources, maybe we can do something about
>> that, but it would require a good solid plan that we can execute
>> perfectly when given the opportunity.
>>
> The blocking issues in Hadrian are tagged with the "GHC Merge" project
> in the issue tracker. The overall themes currently are,
>
>  * Fixing validation support (finishing #187)
>
>  * Support the remaining test targets (#360)
>
>  * Documentation, so we don't overwhelm Andrey with questions when
>    things break. (#308)
>
>  * Finish and test install rules (#318, #373, #379)
>
>  * bindist install (the last part of #219). I started working on this,
>    although for the moment bugs and 8.2.2 have taken priority.
>
> Andrey, do correct me if I've missed something.
>
> Help is of course always welcome!
>
> Cheers,
>
> - Ben
>
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to