Ugh, I forgot to check the output of my test run before submitting the last reply. With the patch applied, "make test" fails with:
test_pickle
Fatal Python error: Cannot recover from stack overflow.
Fatal Python error: Cannot recover from stack overflow.
make: *** [test] Aborted (core dumped)
This is on Python 3 trunk, with the pickle3.patch applied (which applied cleanly).
For the Misc/NEWS I propose (in the Library section):
- Issue #3119: pickle.py can now handle deeply-nested data-structures
without reaching the Python call stack limit. NOTE: the pickle save()
method is now a generator, though sub-classes of Pickler shouldn't
override save().