I won't comment on the content of this proposal, as I'm don't really see the implications, but I would like to correct one small mistake:

Under 'performance impact' you say this:

> In terms of memory impact, since there are typically not many CPython interpreters executing in a single process that means the impact of co_extra being added to PyCodeObject is the only worry. According to https://github.com/Microsoft/Pyjion/blob/master/pep.rst#code-object-count, a run of the Python test suite results in about 72,395 code objects being created. On a 64-bit CPU that would result in 4,633,280 bytes of extra memory being used if all code objects were alive at once and had nothing set in their co_extra fields.

The extra RAM used is a bit off. One 64-bit pointer extra takes only 8 bytes, which translates to about 579160 bytes extra used in in the test suite. I did not consider padding for accessibility, but that was also not considered in the draft.

-Matthias