Stop holding hadrian back with backwards compatibility

Moritz Angermann moritz.angermann at gmail.com
Wed Feb 10 13:32:29 UTC 2021


My understanding of this backwards compat logic is that it's only there to
allow you to do stuff like:
build with hadrian, and then continue using make with the artifacts
(partially) built by hadrian.  I think
this is a horrible idea in and onto itself, even if I can somewhat see the
appeal as a gateway drug; in
which you'd slowly have hadrian take over parts that make used to do, and
use make for the stuff that
doesn't work (yet) in hadrian.

However, I don't think the benefit of constraining hadrian to work in the
make framework makes much
sense. We should be permitted to explore new (and better) solutions, that
do not align with how the
make based build system did things if it allows for a less complex build
system or faster builds or ...

Cheers,
 Moritz

On Wed, Feb 10, 2021 at 9:28 PM Richard Eisenberg <rae at richarde.dev> wrote:

> This sounds very reasonable on the surface, but I don't understand the
> consequences of this proposal. What are these consequences? Will this break
> `make`? (It sounds like it won't, given that the change is to Hadrian.)
> Does this mean horrible things will happen if I use `make` and `hadrian` in
> the same tree? (I have never done this, other than with hadrian/ghci, which
> seems to have its own working directory.) Basically: for someone who uses
> the build system but does not work on it, how does this affect me? (Maybe
> not at all!)
>
> I would explicitly like to endorse the direction of travel toward Hadrian
> and away from `make`.
>
> Richard
>
> > On Feb 10, 2021, at 8:05 AM, Moritz Angermann <
> moritz.angermann at gmail.com> wrote:
> >
> > Hi,
> >
> > so we've finally run into a case where we need to bump the rts version.
> This has a great ripple effect.  There is some implicit assumption that
> rts-1.0 will always be true. Of course that was a lie, but a lie we lived
> with for a long time.
> >
> > Now, hadrian tries *really* hard to replicate some of the Make based
> build systems idiosyncrasies, this includes creating versionless symlinks
> for the rts. E.g. libHSrts<X> -> libHSrts-1.0<X>. There is a great deal of
> logic just to achieve this, and of course it all crumbles now.
> >
> > I'd therefore like to float and propose the idea that we agree to *not*
> bother (too?) much with make based build systems backwards compatibility
> and warts that grew over the years in the make based build system with
> hadrian going forward.
> >
> > Yes, I can probably fix this, and add even more code to this burning
> pile of complexity, but why?  The next person will assume libHSrts does not
> need to be versioned and continue with this mess.
> >
> > Let's have Hadrian be a clean cut in some areas (it already is, it does
> away with the horrible abomination that ghc-cabal is--which only serves the
> purpose of translating cabal descriptions into make readable files), and
> not be bogged down by backwards compatibility.
> >
> > This is thus my call for voicing concern or the upkeep of legacy
> support, or I'll take silence as the collective support of making hadrian
> *not* be held back by backwards compatibility. (This would mean in this
> case, that I'd just delete the backwards compat code instead of adding even
> more to it).
> >
> > I hope we all still want Hadrian to replace Make, if not and we want to
> keep Make, why are we concerning ourselves with Hadrian in the first place.
> If we are intending to ditch Make, let's not be held back by it.
> >
> > Cheers,
> >  Moritz
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20210210/281c1693/attachment.html>


More information about the ghc-devs mailing list