Re: removing old ports and architectures - Mailing list pgsql-hackers

From Robert Haas
Subject Re: removing old ports and architectures
Date
Msg-id CA+Tgmob-B+Di5=zA4FZty8H8vpO6My8Dpb-fDV3H5y6hY3GuHQ@mail.gmail.com
Whole thread Raw
In response to Re: removing old ports and architectures  (Andres Freund <andres@2ndquadrant.com>)
Responses Re: removing old ports and architectures
List pgsql-hackers
On Wed, Oct 16, 2013 at 1:52 PM, Andres Freund <andres@2ndquadrant.com> wrote:
> On 2013-10-16 13:04:23 -0400, Robert Haas wrote:
>> So I vote for removing IRIX and Tru64 immediately, but I'm a little
>> more hesitant about shooting UnixWare, since it's technically still
>> supported.
>
> I think if somebody wants to have it supported they need to provide a
> buildfarm member and probably a bit of help. Doing any change in this
> area for a platform that nobody has access to in any way seems
> pointless because it will be broken anyway.

I don't agree with that policy.  Sure, 97% of our users are probably
running Linux, Windows, MacOS X, or one of the fairly-popular BSD
variants. But I think a part of the appeal of PostgreSQL is that it is
cross-platform, and doesn't require a lot of special hardware support,
and I'm loathe to give that up.  It's one thing to say, gee, we don't
know whether this is actually going to compile and work on your
platform, because it's not tested.  It's quite something else to say,
anything that's not on this short list of supported platforms has zero
chance of working without jumping through major hoops.

Commit b8ed4cc9627de437e5eafdb81631a0d0f063abb3, from April of this
year, updated our support for --disable-spinlocks.  Spinlocks are a
far more basic facility than the sorts of advanced primitives we're
talking about requiring here.  If we're going to support compiling
under --disable-spinlocks, then we certainly can't rely on this more
advanced stuff always being present.  Even if we get rid of that, it's
throwing up one more barrier in front of people who want to get
PostgreSQL running on a non-mainstream architecture.  I've spent
enough time over the years working on odd hardware to have sympathy
for people who want to compile stuff there and have it work, or at
least work after some non-huge amount of hacking.

>> I don't think we can desupport it just because it doesn't have CAS.
>> CAS is very useful and I think we should start using it, but I think
>> we should anticipate a --disable-cas or --disable-atomics option and
>> regularly test that our code works without it.  IOW, we can rely on it
>> as an optimization, but not for correctness.  Eventually, we can
>> probably desupport all platforms that don't have CAS, but I see that
>> as something that's probably 5 or 10 years away, not something we can
>> do tomorrow.
>
> I think that will result in loads of barely tested duplicative code. If
> there were any even remotely popular platforms requiring this, ok. But
> unless I miss something there really isn't.
>
> We're talking about CPUs with mostly less than 100MHZ here, mostly with
> directly soldered RAM in the one digit MB range. I really don't think
> there's a usecase for running PG on them. And I doubt it still works on
> many of the architectures we advocate.

If stuff is completely ancient and obsolete, I think it's fine to kill
it; it probably doesn't work anyway, and nobody's likely to try.  But
I think a lot of the stuff you're talking about is not in that
category.

>> I'm also not sure that this is dead enough to kill.
>>
>> > - M32R (no userspace CAS afaics)
>>
>> Support was added for this in 8.3 and it doesn't seem to be particularly dead.
>
> It's not? All I've read seems to point into a different direction.
>
> The newest supported CPU seems to be
> http://www.renesas.com/products/mpumcu/m32r/m32r_ecu/32196/index.jsp
> sporting a whopping 1024Kb of programmable RAM and only single precision
> FPU.

Well, so, they're an embedded chip.  Yes, it's low spec.  But then
why'd somebody bother adding spinlock support for it in 2007?  It's
not as if that was a high-end chip *then* either.

It's hard to say where to draw the line here.  I don't want the
illusion of support for platforms that don't in fact have a prayer of
working to prevent us from making needed improvements.  On the other
hand, I also don't want to blithely rip out support for architectures
that people may well still be using and where, in some cases, people
have gone out of their way to add that support.  If we get to the
point where some relatively-obscure architecture is the only thing
standing between us and improvement X, then we can weigh those things
against each other and decide.  But I don't really want to go rip out
support for half-a-dozen semi-supported architectures without some
clear goal in mind.  That just doesn't seem friendly.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Kohei KaiGai
Date:
Subject: Re: Triggers on foreign tables
Next
From: Bruce Momjian
Date:
Subject: Record comparison compiler warning