Skip to content
  • Edward Z. Yang's avatar
    Introduce SolverId/SolverInstallPlan as solver output. · cfb124f5
    Edward Z. Yang authored
    
    
    Currently, dependency solving immediately produces an 'InstallPlan'
    which is then consumed by cabal install, or elaborated into
    an 'ElaboratedInstallPlan' for cabal new-build.  However, this
    translation is awkward, because the dependency solver knows nothing
    about 'UnitId's, yet an 'InstallPlan' must indexed by 'UnitId's.
    So there's a bit of faffing around to generate a "fake" unit id
    to satisfy the interface, and then eventually correct it to the
    right one.
    
    So this patch starts moving us in a better direction, by introducing
    a 'SolverInstallPlan', 'SolverPackage' and 'SolverId', intended
    to be generated by the solver.  Then 'configureInstallPlan' or
    'elaborateInstallPlan' elaborate this representation into the
    representation needed by the destination.
    
    The next step will be to generate the 'UnitId' during
    'configureInstallPlan', and then we can get rid of the fake map
    (so only Solver data types generate a fake identity, which
    is only temporary until we generate 'UnitId's.)
    
    Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
    cfb124f5