Gentoo Archives: gentoo-dev

From: Michael Orlitzky <mjo@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: [PR] ivy, mvn, sbt, gradle builders improvement for ebuild development
Date: Tue, 21 Apr 2020 00:12:55
Message-Id: 0cc2e588-fea0-96a3-ae5b-73c0b3f76e56@gentoo.org
In Reply to: Re: [gentoo-dev] Re: [PR] ivy, mvn, sbt, gradle builders improvement for ebuild development by Georg Rudoy <0xd34df00d@gmail.com>
1 On 4/20/20 5:48 PM, Georg Rudoy wrote:
2 >
3 >> I've learned the hard way that it discourages you from doing all the
4 >> things that I just said high-quality software should do.
5 >
6 > Again, ranging from one-off pseudo-scripts that I had to come back to
7 > after a couple of years, to quite complicated pieces of software
8 > running in prod and actually serving customers I had to update up to
9 > the latest LTS after 3-4 years of inactivity, I tend to disagree. Even
10 > the latter was a surprisingly smooth process boiling down to about an
11 > hour or two of very effortless, mechanical and thus boring code
12 > changes (mostly about Semigroup/Monoid hierarchy, if you wonder).
13 >
14 > This is surely offtopic, but I just don't want to silently participate
15 > in spreading things that aren't objectively true (even if they are
16 > subjectively true in your/mine/etc experience).
17
18 Fair enough, I was speaking only from personal experience. But if you do
19 an experiment I bet you'll agree with me. Updating your code to work
20 with the latest GHC is pretty easy. But if you wanted to write an ebuild
21 for that program, it would have a dependency on that specific version of
22 GHC, leading to these same problems that we're talking about when other
23 programs require other specific versions.
24
25 I can compile my C programs with any GCC going back to the 4.x days --
26 or even clang. In the past three years, we've collected ghc-8.0 though
27 ghc-8.10 in ::gentoo. Try to make your code work with all of those GHC
28 releases at once; if you come back and tell me it was easy, I'll be
29 impressed (and may start asking you to update my Haskell code).
30
31 Working around something like gcc-10's -fno-common breakage, on the
32 other hand, is relatively easy. We write a patch, send it upstream, add
33 it to ::gentoo in the meantime, and everything keeps working. But that's
34 only backwards-compatible because the C standard says how it should
35 work, and the C standard doesn't change every six months to be "whatever
36 this version of GCC does."
37
38 To refer back to something on-topic: some projects are willing to make
39 the extra effort, and some aren't. The ones that are, are easy to
40 package and definitely belong in ::gentoo. The others... should be dealt
41 with case-by-case. But lowering the standards of the main tree should
42 not be how we get them over the bar.