Bug report
Bug description:
Tested on commit: e9b00cc
Order of strings in __static_attributes__ is not deterministic
Running the following a couple of times produces different hashes:
/opt/cpython/cross-build/build/python ../../Programs/_freeze_module.py zipimport ../../Lib/zipimport.py Python/frozen_modules/zipimport.h
sha256sum ./Python/frozen_modules/zipimport.h
I patched this generator to output dis as follows:
diff --git a/Programs/_freeze_module.py b/Programs/_freeze_module.py
index ba638ee..7e837e9 100644
--- a/Programs/_freeze_module.py
+++ b/Programs/_freeze_module.py
@@ -24,6 +24,9 @@ def compile_and_marshal(name: str, text: bytes) -> bytes:
filename = f"<frozen {name}>"
# exec == Py_file_input
code = compile(text, filename, "exec", optimize=0, dont_inherit=True)
+ import dis
+ with open("/tmp/a", "at") as f:
+ dis.dis(code, file=f)
return marshal.dumps(code)
Then disassembly differs in one place (after removing at 0x[a-f0-9]*):
diff --git a/tmp/a b/tmp/b
index 372a97c..4010046 100644
--- a/tmp/a
+++ b/tmp/b
@@ -291,7 +291,7 @@ Disassembly of <code object zipimporter , file "<frozen zipimport>", line 50>:
289 LOAD_CONST 15 (<code object __repr__ , file "<frozen zipimport>", line 289>)
MAKE_FUNCTION
STORE_NAME 16 (__repr__)
- LOAD_CONST 16 (('archive', 'prefix'))
+ LOAD_CONST 16 (('prefix', 'archive'))
STORE_NAME 17 (__static_attributes__)
RETURN_CONST 4 (None)
diff in .h files is quite small, so I assume only sorting is affected:
- 0,0,0,41,2,114,46,0,0,0,114,44,0,0,0,169,
+ 0,0,0,41,2,114,44,0,0,0,114,46,0,0,0,169,
CPython versions tested on:
3.13
Operating systems tested on:
No response
Linked PRs
Bug report
Bug description:
Tested on commit: e9b00cc
Order of strings in
__static_attributes__is not deterministicRunning the following a couple of times produces different hashes:
I patched this generator to output dis as follows:
Then disassembly differs in one place (after removing
at 0x[a-f0-9]*):diff in
.hfiles is quite small, so I assume only sorting is affected:CPython versions tested on:
3.13
Operating systems tested on:
No response
Linked PRs
__static_attributes__deterministic by sorting #124492__static_attributes__deterministic by sorting (GH-124492) #124738