On Tue, Aug 12, 2008 at 7:33 AM, David Roundy <[EMAIL PROTECTED]> wrote:

> On Mon, Aug 11, 2008 at 01:59:56PM -0700, Jason Dagit wrote:
> > David,
> >
> > I didn't forget about the other comments you had, like removing
> dropWhile*,
> > but did you have a chance to look this over?  I've been assuming you like
> > this version just fine and doing the rest of my work on top of it.  So if
> it
> > still needs refinement it would be nice to know.
>
> Yeah, I think this is already applied.  I must have forgotten to reply.


Okay, thanks.  You're so consistent about replying that I didn't even think
to check if they had gone in.


>
>
> > Also, the setTentativePending and prepend that I mentioned are not export
> > from Internal and could be renamed unsafeSetTentativePending and
> > unsafePrepend until we have a chance to make them safe.  But, I think
> they
> > are a relatively small part of the overall process and can wait, at least
> > for now.
>
> Right, and that is good.  As long as they're not exported it's not
> very serious.  You're right that renaming them would be best (to
> prevent someone from exporting them later), but it's definitely not
> urgent.


Alright, it's on my todo list.

Just a heads up about src/Darcs/SelectChanges.lhs.  I've found that making a
"minimal" refactor of it is not a good way to go.  We use a data type in
there to determine what order the patches should be selected and manipulated
in.  We have 4 options, First, Last, FirstReveresed, LastReversed.  At some
points in the code that leads to 4 type signatures needed to express the
relationship between the input and output types.  Initially I started
refactoring this using Either.  After spending a day and a half on it I gave
up on the Either approach.  I think it lead to two main problems: 1) The
Eithers started to nest and soon I had Either4.  2) The resulting code was
just too complex to realisticaly maintain.

How am I solving it now?  Well, now any of the functions that special cased
on those options now have their own version for each option.  This leads to
what looks like duplication, but each version is slighty different and
simple to understand.  Once I've got it working again we can consider
eliminating the repetition some how, but it may not be possible in an easy
to understand way.

I'm not sure yet how wide the impact will be, but I think it will be 90% or
more constrained to just the SelectChanges module.

Thanks!
Jason
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to