python/dist/src/Python import.c,2.229,2.230
Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32543 Modified Files: import.c Log Message: Bump the magic number to avoid sharing bytecode between 2.3 and 2.4. Revise the long comment that explained details of the magic number in gory detail. Index: import.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/import.c,v retrieving revision 2.229 retrieving revision 2.230 diff -C2 -d -r2.229 -r2.230 *** import.c 26 Mar 2004 15:09:27 -0000 2.229 --- import.c 1 Apr 2004 02:45:22 -0000 2.230 *************** *** 20,56 **** /* In getmtime.c */ ! /* Magic word to reject .pyc files generated by other Python versions */ ! /* Change for each incompatible change */ ! /* The value of CR and LF is incorporated so if you ever read or write a .pyc file in text mode the magic number will be wrong; also, the Apple MPW compiler swaps their values, botching string constants. - XXX That probably isn't important anymore. - */ - /* XXX Perhaps the magic number should be frozen and a version field - added to the .pyc file header? */ - /* New way to come up with the low 16 bits of the magic number: - (YEAR-1995) * 10000 + MONTH * 100 + DAY - where MONTH and DAY are 1-based. - XXX Whatever the "old way" may have been isn't documented. - XXX This scheme breaks in 2002, as (2002-1995)*10000 = 70000 doesn't - fit in 16 bits. - XXX Later, sometimes 1 gets added to MAGIC in order to record that - the Unicode -U option is in use. IMO (Tim's), that's a Bad Idea - (quite apart from that the -U option doesn't work so isn't used - anyway). ! XXX MAL, 2002-02-07: I had to modify the MAGIC due to a fix of the ! UTF-8 encoder (it previously produced invalid UTF-8 for unpaired ! high surrogates), so I simply bumped the month value to 20 (invalid ! month) and set the day to 1. This should be recognizable by any ! algorithm relying on the above scheme. Perhaps we should simply ! start counting in increments of 10 from now on ?! ! ! MWH, 2002-08-03: Removed SET_LINENO. Couldn't be bothered figuring ! out the MAGIC schemes, so just incremented it by 10. ! GvR, 2002-08-31: Because MWH changed the bytecode again, moved the ! magic number *back* to 62011. This should get the snake-farm to ! throw away its old .pyc files, amongst others. Known values: --- 20,37 ---- /* In getmtime.c */ ! /* Magic word to reject .pyc files generated by other Python versions. ! It should change for each incompatible change to the bytecode. ! ! The value of CR and LF is incorporated so if you ever read or write a .pyc file in text mode the magic number will be wrong; also, the Apple MPW compiler swaps their values, botching string constants. ! Apparently, there was a distinction made between even and odd ! bytecodes that is related to Unicode. The details aren't clear, ! but the magic number has been odd for a long time. ! There were a variety of old schemes for setting the magic number. ! The current working scheme is to increment the previous value by ! 10. Known values: *************** *** 67,72 **** Python 2.3a0: 62021 Python 2.3a0: 62011 (!) */ ! #define MAGIC (62011 | ((long)'\r'<<16) | ((long)'\n'<<24)) /* Magic word as global; note that _PyImport_Init() can change the --- 48,54 ---- Python 2.3a0: 62021 Python 2.3a0: 62011 (!) + Python 2.4a0: 62031 */ ! #define MAGIC (62031 | ((long)'\r'<<16) | ((long)'\n'<<24)) /* Magic word as global; note that _PyImport_Init() can change the
participants (1)
-
jhylton@users.sourceforge.net