This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Magic word incorrect in Python 3
Type: Stage:
Components: Interpreter Core Versions: Python 3.1, Python 3.2
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: benjamin.peterson Nosy List: Arfrever, benjamin.peterson, gvanrossum, pitrou
Priority: normal Keywords: patch

Created on 2009-12-08 16:43 by Arfrever, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
python-3.2-fix_magic_word.patch Arfrever, 2009-12-08 16:43 Fix magic word (for 3.2)
python-3.1-fix_documentation_of_magic_word.patch Arfrever, 2009-12-08 16:52 Fix documentation of magic word (for 3.1)
Messages (4)
msg96138 - (view) Author: Arfrever Frehtes Taifersar Arahesis (Arfrever) * (Python triager) Date: 2009-12-08 16:43
Python/import.c defines magic word which is used in the beginning of
.pyc files to verify if .pyc files have been generated by compatible
version of Python.

Python 2 supports undocumented -U option increases magic word by 1.
Python 3 uses unicode strings by default and doesn't support -U option,
but seemingly incorrect change was committed in r55013, which causes
that magic word is always increased by 1 in Python 3 in contrary to
documentation, which says that it could only happen with some command
line options.

This problem cannot be fixed in Python 3.1.2 for compatibility with
e.g. 3.1.1, but it can be fixed in 3.2. Additionally documentation in
3.1.2 can be fixed.
msg96146 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2009-12-08 17:58
I don't see a bug here. The value returned by imp.get_magic() matches the 
first bytes of a bytecode file. That's all that matters.

Of course, we could remove the global variable and just use the defined 
constant; but that's just an optimization, not a bugfix.

PS. The two uploaded patches look about the same?
msg96167 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-12-09 11:29
I think the point is more of self-documentation not being deceiving.
Here someone tries to use import.c 's embedded documentation about
existing magic numbers and he/she gets mystified because the actual
magic number doesn't seem to correspond.

Also, it's true that the "Unicode mode fixup" is obsolete and should be
removed anyway.
msg96188 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2009-12-10 02:18
Fixed in r76731. Thanks.
History
Date User Action Args
2022-04-11 14:56:55adminsetgithub: 51708
2009-12-10 02:18:14benjamin.petersonsetstatus: open -> closed
resolution: fixed
messages: + msg96188
2009-12-09 16:33:39benjamin.petersonsetassignee: benjamin.peterson
2009-12-09 11:30:02pitrousetnosy: + benjamin.peterson
2009-12-09 11:29:12pitrousetnosy: + pitrou
messages: + msg96167
2009-12-08 17:58:10gvanrossumsetmessages: + msg96146
2009-12-08 16:52:14Arfreversetfiles: + python-3.1-fix_documentation_of_magic_word.patch
2009-12-08 16:43:39Arfrevercreate