Hi,
I’ve been working on making Poly/ML build reproducibly 
(https://reproducible-builds.org), specifically the Debian package, although it 
should be distro-agnostic. The first step was getting timestamps to be 
deterministic using SOURCE_DATE_EPOCH (see 
https://reproducible-builds.org/docs/timestamps/), and I have done this, both 
for libpolyml’s different export formats, and for PolyML.make. This was 
sufficient when disabling native code generation. However, using x86 native 
code generation, ioarea is not reproducible. Specifically, for every defined 
entry, the first word (which I believe is the length word?) differs, with the 
rest of the entry zero. An example (ioarea starts at 0x01029010; 
sizeof(PolyWord) is 8 and IO_SPACING is 8, so 0x01029050 is entry 1):

1       Hex·​dump·​of·​section·​'.​data’:           ​                           
        1       Hex·​dump·​of·​section·​'.​data':​
2       
·​·​0x01029000·​00000000·​00000000·​08900201·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        2       
·​·​0x01029000·​00000000·​00000000·​08900201·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
3       
·​·​0x01029010·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        3       
·​·​0x01029010·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
4       
·​·​0x01029020·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        4       
·​·​0x01029020·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
5       
·​·​0x01029030·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        5       
·​·​0x01029030·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
6       
·​·​0x01029040·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        6       
·​·​0x01029040·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
7       
·​·​0x01029050·​cc495964·​797f0000·​00000000·​00000000·​.​IYdy.​.​.​.​.​.​.​.​.​.​.​
    7       
·​·​0x01029050·​cc1944ae·​577f0000·​00000000·​00000000·​.​.​D.​W.​.​.​.​.​.​.​.​.​.​.​
8       
·​·​0x01029060·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        8       
·​·​0x01029060·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
9       
·​·​0x01029070·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        9       
·​·​0x01029070·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
10      
·​·​0x01029080·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        10      
·​·​0x01029080·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
11      
·​·​0x01029090·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        11      
·​·​0x01029090·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
12      
·​·​0x010290a0·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        12      
·​·​0x010290a0·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
13      
·​·​0x010290b0·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        13      
·​·​0x010290b0·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
14      
·​·​0x010290c0·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​
        14      
·​·​0x010290c0·​00000000·​00000000·​00000000·​00000000·​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​.​

Where are these coming from, and do you have any ideas for how to make sure 
they are reproducible?

Regards,
James

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to