[Python-Dev] PEP 509 (original) (raw)
Jim J. Jewett jimjjewett at gmail.com
Tue Jan 12 13:34:07 EST 2016
- Previous message (by thread): [Python-Dev] PEP 509: Add a private version to dict
- Next message (by thread): [Python-Dev] PEP 509
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
(1) Please make it clear within the abstract what counts as a change.
(1a) E.g., a second paragraph such as "Adding or removing a key, or replacing a value, counts as a change. Modifying an object in place, or replacing it with itself may not be picked up."
(1b) Is there a way to force a version update?
d[k]=d[k] seems like it should do that (absent the optimization to prevent it), but I confess that I can't come up with a good use case that doesn't start seeming internal to a specific optimizer.
(1c) Section "Guard against changing dict during iteration" says "Sadly, the dictionary version proposed in this PEP doesn't help to detect dictionary mutation." Why not? Wouldn't that mutation involve replacing a value, which ought to trigger a version change?
(2) I would like to see a .get on the guard object, so that it could be used in place of the dict lookup even from python. If this doesn't make sense (e.g., doesn't really save time since the guard has to be used from python), please mention that in the Guard Example text.
(3) It would be possible to define the field as reserved in the main header, and require another header to use it even from C.
(3a) This level of privacy might be overkill, but I would prefer that the decision be explicit.
(3b) The change should almost certainly be hidden from the ABI / Py_LIMITED_API
-jJ
- Previous message (by thread): [Python-Dev] PEP 509: Add a private version to dict
- Next message (by thread): [Python-Dev] PEP 509
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]