- 15 Şub, 2003 2 kayıt (commit)
-
-
Neal Norwitz yazdı
-
Tim Peters yazdı
the optional proto 2 slot state. pickle.py, load_build(): CAUTION: Noted that cPickle's load_build and pickle's load_build really don't do the same things with the state, and didn't before this patch either. cPickle never tries to do .update(), and has no backoff if instance.__dict__ can't be retrieved. There are no tests that can tell the difference, and part of what cPickle's load_build() did looked accidental to me, so I don't know what the true intent is here. pickletester.py, test_pickle.py: Got rid of the hack for exempting cPickle from running some of the proto 2 tests. dictobject.c, PyDict_Next(): documented intended use.
-
- 14 Şub, 2003 1 kayıt (commit)
-
-
Tim Peters yazdı
how to unpickle the new slot-full state tuples.
-
- 13 Şub, 2003 5 kayıt (commit)
-
-
Tim Peters yazdı
-
Tim Peters yazdı
version was moved into import.c long ago), so squashed the duplication.
-
Tim Peters yazdı
-
Tim Peters yazdı
exercised by the test suite before cPickle knows how to create NEWOBJ too. For now, it was just tried once by hand (via loading a NEWOBJ pickle created by pickle.py).
-
Tim Peters yazdı
-
- 12 Şub, 2003 1 kayıt (commit)
-
-
Tim Peters yazdı
-
- 11 Şub, 2003 2 kayıt (commit)
-
-
Tim Peters yazdı
attempts to merge the C list-batch and dict-batch code -- they worked, but it was a godawful mess to read.
-
Tim Peters yazdı
-
- 05 Şub, 2003 2 kayıt (commit)
-
-
Tim Peters yazdı
-
Tim Peters yazdı
-
- 04 Şub, 2003 7 kayıt (commit)
-
-
Tim Peters yazdı
guarantee to keep valid pointers in its slots. tests: Moved ExtensionSaver from test_copy_reg into pickletester, and use it both places. Once extension codes get assigned, it won't be safe to overwrite them willy nilly in test suites, and ExtensionSaver does a thorough job of undoing any possible damage. Beefed up the EXT[124] tests a bit, to check the smallest and largest codes in each opcode's range too.
-
Tim Peters yazdı
Moved such EXT tests as currently exist from TempAbstractPickleTests to AbstractPickleTests, so that test_cpickle runs them too.
-
Tim Peters yazdı
-
Tim Peters yazdı
generate these opcodes.
-
Guido van Rossum yazdı
this clarifies that they are part of an internal API (albeit shared between pickle.py, copy_reg.py and cPickle.c). I'd like to do the same for copy_reg.dispatch_table, but worry that it might be used by existing code. This risk doesn't exist for the extension registry.
-
Tim Peters yazdı
-
Tim Peters yazdı
Imported the extension-registry dicts from copy_reg.py, in preparation for tackling EXT[124].
-
- 03 Şub, 2003 2 kayıt (commit)
-
-
Tim Peters yazdı
because it seems more consistent with the rest of the code. cPickle_PyMapping_HasKey(): This extern function isn't used anywhere in Python or Zope, so got rid of it.
-
Tim Peters yazdı
readability. load_bool(): Now that I know the intended difference between _PUSH and _APPEND, used the right one. Pdata_grow(): Squashed out a redundant overflow test.
-
- 02 Şub, 2003 10 kayıt (commit)
-
-
Tim Peters yazdı
overflow holes in Pdata_grow().
-
Tim Peters yazdı
a function, then p->f(arg1, arg2, ...) is semantically the same as (*p->f)(arg1, arg2, ...) Changed all instances of the latter into the former. Given how often the code embeds this kind of expression in an if test, the unnecessary parens and dereferening operator were a real drag on readability.
-
Tim Peters yazdı
embedded assignments, for readability.
-
Tim Peters yazdı
-
Tim Peters yazdı
loops. Renamed DATA and BINDATA to DATA0 and DATA1. Included disassemblies, but noted why we can't test them. Added XXX comment to cPickle about a mysterious comment, where pickle and cPickle diverge in how they number PUT indices.
-
Neal Norwitz yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
to have an effect before protocol 3 is invented, so no test can be written for this (yet).
-
Tim Peters yazdı
the hitherto unknown (to me) noload() cPickle function, which is (a) something we don't test at all, and (b) pickle.py doesn't have.
-
Tim Peters yazdı
Assorted code cleanups; e.g., sizeof(char) is 1 by definition, so there's no need to do things like multiply by sizeof(char) in hairy malloc arguments. Fixed an undetected-overflow bug in readline_file(). longobject.c: Fixed a really stupid bug in the new _PyLong_NumBits. pickle.py: Fixed stupid bug in save_long(): When proto is 2, it wrote LONG1 or LONG4, but forgot to return then -- it went on to append the proto 1 LONG opcode too. Fixed equally stupid cancelling bugs in load_long1() and load_long4(): they *returned* the unpickled long instead of pushing it on the stack. The return values were ignored. Tests passed before only because save_long() pickled the long twice. Fixed bugs in encode_long(). Noted that decode_long() is quadratic-time despite our hopes, because long(string, 16) is still quadratic-time in len(string). It's hex() that's linear-time. I don't know a way to make decode_long() linear-time in Python, short of maybe transforming the 256's-complement bytes into marshal's funky internal format, and letting marshal decode that. It would be more valuable to make long(string, 16) linear time. pickletester.py: Added a global "protocols" vector so tests can try all the protocols in a sane way. Changed test_ints() and test_unicode() to do so. Added a new test_long(), but the tail end of it is disabled because it "takes forever" under pickle.py (but runs very quickly under cPickle: cPickle proto 2 for longs is linear-time).
-
- 01 Şub, 2003 6 kayıt (commit)
-
-
Tim Peters yazdı
code cleanups, and purged more references to text-vs-binary modes.
-
Tim Peters yazdı
-
Tim Peters yazdı
already <wink>.
-
Tim Peters yazdı
-
Tim Peters yazdı
removed woefully inadequate opcode docs and pointed to pickletools.py instead.
-
Tim Peters yazdı
attr, and copy_reg.safe_constructors.
-
- 31 Ock, 2003 1 kayıt (commit)
-
-
Guido van Rossum yazdı
-
- 06 Ock, 2003 1 kayıt (commit)
-
-
Jason Tishler yazdı
The attached patch enables shared extension modules to build cleanly under Cygwin without moving the static initialization of certain function pointers (i.e., ones exported from the Python DLL core) to a module initialization function. Additionally, this patch fixes the modules that have been changed in the past to accommodate Cygwin.
-