[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22533: Non-determinism in python-3 ".pyc" bytecode
From: |
Leo Famulari |
Subject: |
bug#22533: Non-determinism in python-3 ".pyc" bytecode |
Date: |
Thu, 4 Feb 2016 18:17:08 -0500 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Tue, Feb 02, 2016 at 09:41:19PM +0100, Ludovic Courtès wrote:
> Could you give it a try and refine as needed? :-)
I altered your example as shown in the attached patch. It causes some
tests related to timestamps to fail, so I disabled them in a very crude
way. The final patch should address those tests more carefully.
But, the patch doesn't seem to have the desired effect so I'm asking for
help!
Here is how I tested the patch:
I build python-3 with it, and then `export SOURCE_DATE_EPOCH=1` and
enter the resulting Python shell. I manually define the '_w_long'
function used by the patched function. Then:
print (_w_long(locale.atoi(os.getenv('SOURCE_DATE_EPOCH'))))
b'\x01\x00\x00\x00'
But, when I leave the Python shell and issue `python3 -m compileall
helloworld.py`, the timestamps are present in the compiled bytecode. I
can watch the clock "tick" by doing this repeatedly:
$ touch helloworld.py && rm -r __pycache__ && \
python3 -m compileall helloworld.py && \
hexdump __pycache__/helloworld.cpython-34.pyc | head -n1
I'm not much of a Python programmer, so I'm stumped.
0001-SOURCE_DATE_EPOCH.patch
Description: Text Data