On Wed, Oct 14, 2009 at 12:14 AM, Petr Rockai <[email protected]> wrote:
> Jason Dagit <[email protected]> writes: > > > What is the distinction between LowLevel and Internal? I don't > understand how > > this change improves things. Internal is already meant to be private and > > whatnot. Now I'm confused by the distinction between LowLevel and > Internal. > > Could you clarify the rationale? > Sure, the Internal module is a big mish-mash of interdependent > functionality. The problem is that separating parts of the Internal > functionality in State led to a situation, where State depends on > Internal. However, Internal now relies on readRecorded from > Repository.State, > and therefore State cannot import Internal anymore, lest a dependency cycle > forms. Therefore, I've moved things that are needed by Repository.State but > do > not need anything from Internal to a separate module. I intend to move more > such bits into that module later. > > For reference, I first tried to separate the functions for handling > "pending" > state into a separate Repository.Pending, but this would again lead to > dependency cycles: make_new_pending needs readRecorded from State, > unrecordedChanges in State need read_pending. Fortunately, read_pending is > a > very low-level piece of code that basically doesn't do anything other than > deserialize the primitive patches in the pending file. > > I think you've convinced me. I likely won't find time to apply this until Saturday. I do think it should go in (and others are welcome to push it if I'm too slow). I would still like to see before and after numbers for the last patch, but not a requirement. Thanks, Jason
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
