I've now run the tests on GHC 6.8.3, 6.10.4 and 6.12.1, and also checked the
changes more carefully and concluded that I'm happy to submit the initial
version I sent.
I think the only place where I change semantics is in a few places in
Darcs.Lock, where the code used to catch any kind of exception and now just
catches IO exceptions. Because the handlers are wrapped around an IO operation,
I think this is appropriate - in a couple of places the handler is being used to
annotate the error message with information on what file failed, and in another
place it's being used to trigger a retry. I don't think it makes sense to do
either of these things for non-IO errors.
|