Thread: Re: [COMMITTERS] pgsql: Preserve intermediate .c files in coverage mode

Re: [COMMITTERS] pgsql: Preserve intermediate .c files in coverage mode

From
Peter Eisentraut
Date:
On Sun, 2012-10-28 at 11:10 -0400, Tom Lane wrote:
> Peter Eisentraut <peter_e@gmx.net> writes:
> > Preserve intermediate .c files in coverage mode
> >
> > The introduction of the .y -> .c pattern rule causes some .c files such
> > as bootparse.c to be considered intermediate files in the .y -> .c -> .o
> > rule chain, which make would automatically delete.  But in coverage
> > mode, the processing tools such as genhtml need those files, so mark
> > them as "precious" so that make preserves them.
> 
> [ blink... ]  I'd vote for making them precious all the time.  No such
> behavioral change was discussed or agreed to,

This is standard, default make behavior.  It only showed up here because
the coverage processing doesn't list all the files it needs in make
rules.

> and I'm concerned about
> possible side effects, for instance losing files that you don't have the
> tools to rebuild when working from a distributed tarball.

I don't think this is a problem because distprep explicitly lists the
files it builds.





Re: [COMMITTERS] pgsql: Preserve intermediate .c files in coverage mode

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> On Sun, 2012-10-28 at 11:10 -0400, Tom Lane wrote:
>> [ blink... ]  I'd vote for making them precious all the time.  No such
>> behavioral change was discussed or agreed to,

> This is standard, default make behavior.  It only showed up here because
> the coverage processing doesn't list all the files it needs in make
> rules.

Yeah, I know it's "default", but it's not how our make files ever
treated these files before.  At the risk of repeating myself: a change
of this sort was not discussed nor agreed to.  And I'm not agreeing to
it.  I don't care for the idea that the build tree after a regular make
might not include all files that would be in a distribution tarball.

A concrete usage case that this breaks is doing something likefind . -name '*.c' | xargs grep whatever
Up to now I've always been able to assume that that would catch
occurrences of "whatever" coming from *.y and *.l files.  No more
though.  Maybe the derived *.c files are there, or maybe they're
not --- it'll be really history-dependent.

Please just make them precious.
        regards, tom lane



Re: [COMMITTERS] pgsql: Preserve intermediate .c files in coverage mode

From
Peter Eisentraut
Date:
On Tue, 2012-10-30 at 17:28 -0400, Tom Lane wrote:
> A concrete usage case that this breaks is doing something like
>     find . -name '*.c' | xargs grep whatever
> Up to now I've always been able to assume that that would catch
> occurrences of "whatever" coming from *.y and *.l files.  No more
> though.  Maybe the derived *.c files are there, or maybe they're
> not --- it'll be really history-dependent.

Good point.  Fixed.