Skip to content
  • Andres Löh's avatar
    Track language extensions and language flavours in the solver. · fd5e0c65
    Andres Löh authored
    Every package now "depends" on all language extensions
    (default-extensions and other-extensions) and language flavours
    (default-language and other-languages) it declares in its cabal file.
    
    During solving, we verify that the compiler we use actually
    supports selected extensions and languages. This has to be done
    during solving, because flag choices can influence the declared
    extensions and languages being used.
    
    There currently is no equivalent check performed on the generated
    install plans. In general, cabal-install performs a sanity check
    on the solver output, checking that the solver e.g. indeed includes
    all the declared dependencies of a package. There is no such
    double-checking for language extensions. This is not really
    problematic, as all that this change does is to make the solver
    more conservative rather than less. However, having a sanity check
    available might ultimately be nice to have.
    fd5e0c65