Thread: Re: [COMMITTERS] pgsql: Preserve intermediate .c files in coverage mode
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.
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
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.