[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [creduce-dev] multifile creduce

Thanks Markus, I hadn't seen that! I probably would have added multi-file support earlier if I'd known that people wanted it.


On 10/19/15 7:34 PM, Markus Trippelsdorf wrote:
On 2015.10.19 at 18:17 +0200, John Regehr wrote:
I've pushed changes to C-Reduce that support reducing more than one file
at a time.  Use cases include:

- reductions for LTO bugs

- reducing a file + its transitive includes when, for whatever reason,
reducing the preprocessed file does not work

(As always, if you can reduce a preprocessed file, you should do so.)

To support the second case, I wrote a program that copies each
transitive include file for a C/C++ file into the cwd, renaming files as
necessary (there are 8 files called "errno.h" under /usr/include on one
of my machines) and also replacing each <foo>-style include with a
"foo"-style include.  The program is in scripts/localize_headers.  To
use it you need to modify a few variables up at the top.  Let me know if
you have either a good or a bad experience with this script.  I'm not
sure that it is very robust but it has worked for me.

Multifile reduction works by running each pass over all files that are
being reduced.  It is often the case that some files go to zero bytes.
C-Reduce could at this point try to delete such files, but it doesn't do
that yet.

I also beefed up C-Reduce's usage info.

clang-delta becomes pretty crashy on non-preprocessed files. I don't
really know what is going on, but these crashes are largely harmless.
Please don't kill us with bug reports about this.

Testing appreciated.  I've only tested on Linux so far.

There is also https://github.com/marxin/multicreduce, a simple python
script that claims to do the same thing. (I've never used it myself.)