This new patch adds another improvement where tuples can be "optimized".
Optimized means that tuples which don't contain any GC-tracked object
become themselves untracked. Since tuples are immutable this
optimization is valid, and since it is common to store lots of tuples as
very simple containers of atomic objects this can be an interesting
optimization.

Now an additional patch which applies over the basic gctrigger4.patch.
It adds dict optimizations so that dicts with only atomic or immutable
elements are also untracked (they get tracked later when other trackable
elements are added).
Since dicts are often used as mappings of simple objects (int, str,
tuple) over other simple objects, this can be very useful.

Looking at gctrigger5.patch, my only thought is that it would be
helpful for posterity to include more verbose comments about why this
new behaviour was chosen; chunks of Martin's proposal from the
referenced python-dev thread could be included verbatim.
Otherwise, LGTM.