跳到内容

重构由Word64表示的唯一

Jaro Reinders公司请求合并wip/T22010年 进入之内主人

修复#22010(已关闭)

我没碰过快速静音和相关的uniques,例如快速字符串.

我在用来自Integral在许多地方进行转换国际64字。最好使用具有更具体类型的函数来避免意外。我也在使用来自Integral转换文字64国际在一些我认为无害的地方。

剩下三大待办事项:

  • genSym公司应生成64字.这可能需要使用未装箱的原语,甚至可能需要一个新的fetchAddWord64地址#基本的。我只是在非64位系统上回退到C。
  • 统治者图表类型需要从更改IntMap IntSet(IntMap集成集)Word64映射Word64集.
  • 解释器中的EvalBreak构造函数携带需要装箱的唯一项并将其取消装箱带BreakAction.

当前问题:

  • 达尔文构建仍然不喜欢我的定义原子_inc64

  • 由于未知的已知密钥uniques,测试失败。

  • i386构建因一场奇怪的恐慌而失败#23537:

    iselExpr64(i386)
    _so3n::I64-16::W64

    (通过解决方法修复;真正修复需要新的GHC版本)

  • JS构建失败,出现“ReferenceError:h$genSym is not defined”https://gitlab.haskell.org/ghc/ghc/-/jobs/1567116

  • 由于MultiLayerModulesTH_OneShot(+4.2%)和T13719(+2.3%)上的性能下降,发布版本失败。!10568(评论505751)

长期待办事项:

  • 使用类型同义词使Dominators.hs更漂亮。
  • 看看64字应替换为独特(和Word64集合通过唯一设置). (目前可能不值得)
  • 检查其他unique是否也需要更改,例如与FastString关联的unique。
  • 上游Word64地图Word64集合进入之内容器.
  • 重新评估中的更改编译器/GHC/Types/Var.hs
已编辑通过Jaro Reinders公司

合并请求报告