> ! /* XXX Warn if (supplied_flags & PyCF_MASK_OBSOLETE) != 0? */ [Michael Hudson] > I think not. > > If, as I *think*, all code objects compiled in 2.2 have > > ob.co_flags & __future__.nested_scopes.compiler_flag > > non-zero, then, eg., idle will compile all code typed interactively > (after the first line, anyway) with > __future__.nested_scopes.compiler_flag in the supplied_flags argument > to compile(). This could be wormed around, obviously, but I don't see > the point. Your belief was true of 2.2a1 but not of 2.2a2. For 2.2a1, Guido simply turned on nested_scopes by default (and so every code object had CO_NESTED set). For 2.2a2, Jeremy returned from paternity leave and took away the *possibility* of turning nested scopes off. As a result, the *only* reference to CO_NESTED now in the C part of Python is in the #define of PyCF_MASK_OBSOLETE, and Python itself never sets CO_NESTED. That's part of what I meant when I said (in a different recent thread) that any piece of code using these flags is eventually going to get surprised: these implementation details are as internal and transient as they get. This isn't critical now, but I can't help but notice that we've got 8 bit positions assigned in the co_flags int. One is meaningless in 2.2a2 (CO_NESTED), and two more will eventually become meaningless (CO_GENERATOR_ALLOWED and CO_FUTURE_DIVISION). I'm not worried about running out of "real" co_flags bits, but so long as we're stuck *also* using co_flags to communicate-- from caller to dynamically-compiled callee --which still-optional future-features are in effect, we burn another bit position every time we dream up a future-feature with semantic content. So, but later rather than sooner, I expect we're going to have to recycle these temporary future-feature co_flags bits. When that happens, it may be prudent to *warn* about obsolete flag values for a release cycle (before recycling them), for the benefit of insane people who can't restrain themselves from playing with undocumented bits <wink>.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4