跳到内容

硬连线为ghc提供更好的单元id

罗德里戈·梅斯基塔请求合并wip/romes/hardwire-ghc-unit-id 进入之内主人

硬连线为ghc提供更好的单元id

此前,ghc-the-library的单元id被固定为温室气体.这样做主要是因为编译器必须知道的unit-id一些包(包括ghc)预先定义了有线接入名称。

然而,如中所示#20742(已关闭),可重新安装温室气体其单位id是固定的温室气体当不同ghc交互时,可能会导致细微的错误。

一个很好的例子是让GHC_A加载GHC_B编译的插件,其中GHC_A和GHC_B链接到ABI的GHC-库不相容的。不区分ghc库的unit-idGHC_A与它加载的插件所在的GHC库相关联根据编译,我们无法检查兼容性。

此补丁通过以下方式为ghc(ghc-version)提供稍好的unit-id(1) 没有设置-这个单元id为ghc,而是为新的单元id(模stage0)(2) 将定义添加到全球总部。版本其值是新的单位id。此unit-id定义由导入全球总部。单位。类型并且习惯于设置之前固定为“ghc”的有线接入单元id

接下来的提交将

  • 使用cabal-style包散列改进unit-id
  • 确保cabal-build ghcs也正确使用更好的unit-id(并且package-key与unit-id匹配)
  • 并在加载插件时检查兼容性。

完成后,应关闭#20742(已关闭)

已编辑通过罗德里戈·梅斯基塔

合并请求报告