Skip to content
  • Edward Z. Yang's avatar
    Refactor ProjectPlanning. · 9752f287
    Edward Z. Yang authored
    
    
    * toConfiguredComponents and friends are now monadic.  This means
      we can report a user-friendly error when we fail to find a
      dependency in the dependency map.  I had to rejigger a bit
      of the logic in ProjectPlanning since we were knot-tying through
      this function, but it all worked out.  This means
      that unbuildable_external_lib_deps is no more.
    
    * cc_internal_build_tools is no more; instead it's cc_exe_deps,
      which tracks ALL dependencies.  It also comes with a PackageId
      so we can build ConfiguredId cabal-install side.  This change
      propagates all the way to 'ReadyComponent'
    
    * ProjectPlanning: Instead of recomputing dependencies from scratch,
      we instead use the ElaboratedConfiguredPackages we just finished
      making to build the ComponentDeps.
    
    * ProjectPlanning now constructs a skeletal setupComponent.  This
      is used to setup the above with correct setup dependencies.
      In principle this component might also be used for building, but
      lots of functionality isn't written in yet.
    
    * filterExeMapDep is no more; it's all handled by Cabal now.
    
    * The ConfiguredComponentMap now handles both libraries and
      executables in one data structure.  This is nice.
    
    * compSetupDependencies is no more, because elaborated components
      never have custom setup.
    
    Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
    9752f287