One contestant experimented with C-Reduce; a way to search for C++ programs that create unusual compiler behavior.
Maximizing the fitness function for error as a reward, no templates, no pre-processor hacks.
Just nested parenthesis causing exponential error output!
@creduce My favorite version of this is https://t.co/T88Ed79x9y which can take an entire tree of Julia packages and apply creduce to it .
Now I just need to figure out how to use Julia's parser to do smarter rewrites.
Running creduce to try to minimize a test case for "clang produces different binaries when building natively on i386 vs cross-building from amd64". Only reduced from 2346 to 1727 lines so far, which makes me think this bug is hard to trigger.
@JethroGB@moyix@bjg Actually, C-Reduce has a lot of tactics that are specific to C/C++ code.
If you're reducing something that is not C/C++ code, you can disable all those passes with the `--not-c` command-line option.
@atomgalaxy I reduce a lot of compiler bugs, so I have a system that involves a directory full of stub stdlib/system headers, creduce, and some ready-made scripts.
I also have a 64-core machine. creduce takes it down to ~10k overnight, and I take it from there.
@BruceDawson0xB@visualc You can make minimal repros using creduce fairly easily. Even with msvc, just do it under WSL and take advantage of the fact you can call native win32 programs. No advanced C++ skills necessary
creduce help text:
--shaddap Suppress output about non-fatal internal errors
[..]
--sllooww Try harder to reduce, but perhaps take a long time to do so
Expectation: I have a bug, let me try to use C-Reduce to reduce it
Reality: Run into a bug with C-Reduce itself
Happy weekend I guess...
Oh wait, it's just Thursday.