GNU bug report logs -
#22533
Non-determinism in python-3 ".pyc" bytecode
Previous Next
Reported by: Leo Famulari <leo <at> famulari.name>
Date: Tue, 2 Feb 2016 05:17:02 UTC
Severity: important
Done: Ricardo Wurmus <rekado <at> elephly.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi Guix,
Marius Bakke <mbakke <at> fastmail.com> writes:
> It would be great to revive this longstanding bug!
Indeed.
Here’s another attempt. As far as I understand, the timestamp in the
pyc files only affects the header.
Up until Python 3.6 (incl) the header looks like this:
magic | timestamp | size
Since Python 3.7 the header may either contain a timestamp or a hash:
magic | 00000000000000000000000000000000 | timestamp | size
magic | 00000000000000000000000000000001 | hash | size
This means we likely won’t have this problem any more with Python 3.7.
For Python 3.6 I guess we could add a final build phase that overwrites
the timestamp in the *binary*. This needs to happen before any of the
compiled files are wrapped up in a wheel.
Should we just wait for Python 3.7 which is expected to be released in
June 2018? We’d still have to deal with this problem in Python 2,
though.
Is it a bad idea to override the timestamps in the generated binaries?
I think that we could avoid the recency check then, which was an
obstacle to resetting the timestamps of the source files.
--
Ricardo
GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
https://elephly.net
This bug report was last modified 6 years and 106 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.