Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
PackageResolver Refactor #2039
Started working on this in an attempt to address #2030
I wasn't able to get the step function to the point where its tail recursive, but its much closer than it was before and it no longer relies on mutation across iterations.
I think it should be possible by adding a third case to
type private Stage = | Outer of conflictState : ConflictState | Inner of conflictState : ConflictState
and using it as an argument for
I think this is the block of code that was causing the issues when I took that approach
match conflictState.Status with | Resolution.Conflict(_,conflicts,_,_) when (Set.isEmpty conflicts |> not) && nextStep.CurrentResolution.Count > 1 && not (conflicts |> Set.exists (fun r -> r = currentRequirement || r.Graph |> List.contains currentRequirement)) -> let flags = StepFlags(flags.Ready,flags.UseUnlisted,flags.HasUnlisted,true,flags.FirstTrial) stepLoop flags (Inner (conflictState)) | _ -> stepLoop flags (Inner (conflictState))
but I'm not totally sure.
even when I try to run the integration tests on the core3 branch they don't complete
And from fake build?
Am 23.11.2016 16:50 schrieb "Jared Hester" firstname.lastname@example.org: