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. |