STINNER Victor <victor.stin...@haypocalc.com> added the comment:

> To support bigger timestamps, we have to change the file format 
> of .pyc files.

write_compiled_module(), check_compiled_module() and other functions use the 
marshal module to read/write binary file, but marshal has no function for 
int64_t, only for long (which may be 32 bits, especially on Windows).

I don't know if Python has a builtin 64 bits integer type. There is 
PY_LONG_LONG, but this type is optional. A possible solution is to always store 
timestamp as 64 bits signed integer, but reject timestamp > 2^32 (as currently) 
if we don't have 64 bits integer type (like PY_LONG_LONG). Something like:

#ifdef PY_LONG_LONG
   write_timestamp64(t);
#else
   if (t << 32) { error; }
   write_timestamp32(t);
   write_long32(0); /* emulate 64 bits in big endian */
#endif

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11235>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to