On Sun, Aug 12, 2007 at 02:28:13PM +0200, Eric Y. Kow wrote:
> > Here's a function in the Cancellation module to determine which
> > patches are active, and make the inactive patches Cancelled.
> 
> I'm pushing this, but I've only gotten a basic gist of it, not looked
> very hard.

No problem.  It's pretty small and self-contained (and doesn't yet affect
any of darcs' behavior).

> > +cancel_patches :: FL Patch C(a b) -> Sealed (FL Patch) C(a)
> > +cancel_patches x = cancel_marked_patches $ mark_cancelled_patches
> > +                   $ mapFL_FL uncancel x
> 
> This seems a bit confusing! Why would there be cancelled patches to
> mark if we've just uncancelled them?  And then why bother cancelling
> the marked patches if they were already cancelled when we marked them?

We're recomputing which patches are cancelled, so we start by uncancelling
all patches but leaving the *cancellation* patches, from which we compute
(and mark) which ones *should* be cancelled, and then we cancel those
ones.

> > +remove_from_sequence_unless_depended_upon
> > +    :: Patch C(a b) -> FL Patch C(b c) -> Maybe (Sealed (FL Patch) C(a))
> 
> I think I understand this one: given a sequence p xs (i.e. p before xs),
> if p commutes past xs, then xs does not depend on it, so we can ignore p
> (however, we must return the commuted xs').  If it fails to commute we
> return Nothing.
> 
> The 'removing' consists of ignoring p.  That it, is it 'p' that we are
> trying to remove.

Right.
-- 
David Roundy
Department of Physics
Oregon State University

Attachment: signature.asc
Description: Digital signature

_______________________________________________
darcs-devel mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-devel

Reply via email to