Re: Raising our compiler requirements for 9.6

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Noah Misch <noah(at)leadboat(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Raising our compiler requirements for 9.6
Date: 2015-08-07 18:29:28
Message-ID: CA+TgmoZxy1oRSZFf2AoLMXiYQbn=CyuH3QqcsQDKPFWngYTHvQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Aug 7, 2015 at 2:27 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> On 2015-08-07 14:15:58 -0400, Robert Haas wrote:
>> On Fri, Aug 7, 2015 at 1:11 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
>> > On 2015-08-07 12:30:04 -0400, Robert Haas wrote:
>> >> It may not be included from any IN CORE frontend code, but that is not
>> >> the same thing as saying it's not included from any frontend code at
>> >> all. For example, EDB has code that includes namespace.h in frontend
>> >> code. That compiled before this commit; now it doesn't.
>> >
>> > Nothing in namespace.h seems to be of any possible use for frontend
>> > code. If there were possible use-cases I'd be inclined to agree, but you
>> > obvoiusly can't use any of the functions, the structs and the guc make
>> > no sense either. So I really don't why we should cater for that?
>> >
>> > I think the likelihood of actually breaking correct working extension
>> > code that uses namespace.h that'd be broken if we removed lock.h from
>> > namespace.h is an order of magnitude bigger than the possible impact on
>> > frontend code.
>>
>> Well, I just work here, but it seems silly to me to reorgnize the
>> headers so that you can include fewer definitions where necessary, but
>> then not revise the existing headers to use the slimmed-down versions
>> where possible. Yeah, somebody might have to adjust their #includes
>> and that is annoying, but I don't think the cost of your new #error
>> directives is going to be zero.
>
> So first your argument was that it broke stuff and now you want to break
> more?
>
> I am not really against removing removing lock.h from a few more places,
> but normally you were the one arguing against breaking working code by
> reorganizing headers when there's no really clear win. Removing lock.h
> from namespace.h and removing lwlock.h from lock.h will have a
> noticeably higher cost than what I committed and in contrast to the
> benefit of separating frontend code from backend implementation details
> (which caused linker errors) the only benefit will be a bit less code
> included.

Well, we can wait and see if we get any more complaints before doing
anything, if you like. We've got a year before any of this is going
to be released, so there's no rush. My point, which I think is valid,
is that if the set of #includes you need to compile your stuff
changes, that's easy to fix. If one of the #includes you need to
compile your stuff starts doing #error, you're hosed.

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2015-08-07 18:32:35 Re: Raising our compiler requirements for 9.6
Previous Message Andres Freund 2015-08-07 18:27:00 Re: Raising our compiler requirements for 9.6