[darcs-users] Delta Debugging

Samuel A. Falvo II sam.falvo at falvotech.com
Mon May 24 05:59:32 UTC 2004


On Sunday 23 May 2004 09:44 pm, Kenneth Knowles wrote:
> For those who don't have time to read the papers, the idea is that
> starting with the last known working configuration of a program, you
> apply the changes gradually until it breaks.  The algorithm is more
> sophisticated, and finds a minimal set of changes causing the error. 
> It is parameterized by the type of "change" you are applying and the
> test function.  In the papers, the examples are very impressive,
> narrowing bugs in GCC, GDB, and Mozilla down to a couple lines out of
> thousands, or even characters.

It sounds to me that if one follows the process of test-driven 
development, this whole thing becomes unnecessary.  Am I missing 
something?

(BTW, I am a huge proponent of TDD, especially when used in conjunction 
with formal methods.)

> The biggest drawback of the technique for wide use is that you have to
> re-implement for each test and type that you want to evaluate, but for
> darcs we've already got this stuff and a big library for manipulating
> it:

I'm sorry, the above sentence doesn't parse for me.  Can you re-state?

> I really think this would be great because when someone says "I just
> pulled darcs and now it doesn't work" you can ask for the output of
> "darcs deltadebug" or some such, and it is guaranteed to give you a
> minimal set of hunks to reproduce the error.

Hmm, I think I see what you're getting at here -- by delta, you mean 
delta in the source code management sense, not in the programmer sense.

Would this system be able to handle the case where, for example, I make 
sweeping changes to several sources files, all at once, then check the 
whole she-bang into the repo?  Or, would I have to make a very tiny 
change, check-in, change more, check-in again, etc?

Of course, as a fan of TDD, I obviously favor the latter, but few in the 
world, it seems favor TDD.  Thus, I think the technique needs to be 
broadly applicable regardless of usage pattern.

Thanks for the info.

--
Samuel A. Falvo II





More information about the darcs-users mailing list