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

Re: [csmith-dev] arthur's bugs

By the way, I've been wondering about your original motivation for
printing only a final checksum,

Basically two reasons.

First, we wanted to give the compiler maximum freedom to mess with the program without being constrained by the optimization-squashing restrictions of an external function call.

Second, we wanted to keep things simple for the test harness by letting it deal with a single integer as the program output.

For testcase minimization purposes the checksum is less than ideal. Note however that you can give a Csmith program a "1" for its first command line argument, causing it to print all globals at the end, in addition to checksumming them. Also, there's a Csmith flag which causes it to just emit a bunch of printfs instead of the checksum stuff.

I've seen you mention it on your blog before, but I've never looked at
it.  I would assume that your long-term goal is to incorporate a
reducer directly into Csmith, though, rather than improving that
standalone reducer.

In fact Xuejun has built a fairly aggressive reducer into Csmith based on exactly the ideas you mention. The problem is that it adds a fair amount of complexity into an already complex program and also it ties the reducer to a specific Csmith version.

Also, sometime we want to reduce a program not emitted by Csmith at all.

So we're pursuing both approaches.