[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.
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.
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
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.