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

Re: [creduce-dev] unifdef



Yaron, thanks for sharing! I think you are describing a more difficult reduction than any I have attempted.

First, every interestingness test was slow to compile, about 10s.

Ouch.

Second, Boost-using code and Boost-headers usually include many more
includes than actually required for a specific example. We are talking
about very large preprocessed files. Preprocessing the Boost::log
example sinks_async.cpp results in 8.7MB file on my system. Once
preprocessed they are not quickly reduced and it's much more efficient
to  reduce one #include line rather than reducing the resulting huge
preprocessed code - which may not be needed at all.

Ok, this makes sense.

Finally, the Boost usage of templates, inheritance and macros (with
non-preprocessed code) is very (too?) complex to automatically reduce
and required manual help anyhow. Helping the reduce process is feasible
only while the source is still human-readable and small.

Got it.

With the Boost::log example I used creduce mostly for deleting the
includes, most of them were *not* required at every include depth, then
manually copying the remaining include files text into the main include,
in part or in whole (judgement call). It took about a day work to reduce
this example.

Well that isn't very much fun. It would be nice for C-Reduce to be able to automate more of this-- can you point me at some test cases? I can probably make some time to work on this.

John