[darcs-users] darcs patch: rewrite partitionFL and partitionRL to reduce the numb...
ganesh at earth.li
Thu Oct 30 05:58:52 UTC 2008
On Wed, 29 Oct 2008, Jason Dagit wrote:
> On Wed, Oct 29, 2008 at 1:35 PM, Ganesh Sittampalam <ganesh at earth.li> wrote:
>> Hi David,
>> No rush to deal with this one, I'm just sending it in case you want to
>> and so that others can review it.
>> This addresses a different quadratic blowup I found when running
>> whatsnew -sl on a directory with lots of files in it. It's a nice
>> advert for type witnesses being very helpful in creating confidence
>> in a refactoring.
> Yes, the GADT stuff makes refactoring quite nice.
> I looked at this patch bundle, I don't really see any problems with
> it, but I didn't look that closely. Do you think it would be hard to
> write QuickCheck properties that compare the new implementation with
> the old one? My reasoning is this: the old implementation was simpler
> and easier to inspect, so we can use it as a test answer oracle with
> reasonable confidence.
Yes, I think it would be quite easy to write properties - the tricky bit
is generating the selection function. I don't think the old implementation
was actually simpler though, as it relied on commuteWhatWeCan which isn't
really very simply.
For what it's worth I'm reasonably confident that I've reproduced the old
behaviour, though obviously QuickCheck properties wouldn't hurt. I think
my preferred approach to doing that would be to write them for the
specification I claim in the comments, and then to check both old and new
against the properties.
More information about the darcs-users