我们正在使用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........
1条答案
按热度按时间5anewei61#
据我所知,BEAM文件格式的最佳参考是this one。这四个字节是每个lambda函数的“旧的唯一”值。它在这里生成,使用模块的MD5和的一部分。
如果模块中的其他内容都没有改变,这个位也会改变,这很奇怪。我最好的猜测是将
deterministic
选项传递给编译器,希望它能修复一些问题。