(original) (raw)
I think it was tripping-up the folks working on the C implementation. Georg can speak to it more directly. IIRC, the issue was that the context object exposed a dictionary which a user could update directly and there was no notification back to the surrounding object so it could update an underlying bitfield representation.Yes, that's exactly what the problem was. Working with bitfields internally is fine as long as Python code doesn't want to change the dicts exposed as a wrapper.
If you want to stick with dictionary-like access to traps and flags, then use a dict subclass that overrides each of the mutating methods.
Even then, we need to drop the concept of having the flags as counters rather than booleans.
Raymond