erlang "FunT"的射束文件格式

332nm8kg  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(134)

我们正在使用Erlang版本22。我们多次重建Beam文件。在Beam文件中,我们发现“FunT”和“LitT”之前的最后4个字节总是在变化(每次构建之间都不同)。是否有任何关于最后4个字节如何生成的解释?因为这些变化的4个字节,Beam图像的校验和总是在构建之后不同。

00000260: 4675 6e54 0000 001c 0000 0001 0000 0013  FunT............
    00000270: 0000 0001 0000 0011 0000 0000 0000 0001  ................
    00000280: 0432 95c1 4c69 7454 0000 00c3 0000 00f6  .2..LitT........
5anewei6

5anewei61#

据我所知,BEAM文件格式的最佳参考是this one。这四个字节是每个lambda函数的“旧的唯一”值。它在这里生成,使用模块的MD5和的一部分。
如果模块中的其他内容都没有改变,这个位也会改变,这很奇怪。我最好的猜测是将deterministic选项传递给编译器,希望它能修复一些问题。

相关问题