[Python-Dev] Guarantee ordered dict literals in v3.7? (original) (raw)
Paul Moore p.f.moore at gmail.com
Tue Nov 7 16:15:15 EST 2017
- Previous message (by thread): [Python-Dev] Guarantee ordered dict literals in v3.7?
- Next message (by thread): [Python-Dev] Guarantee ordered dict literals in v3.7?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 7 November 2017 at 20:35, Paul G <paul at ganssle.io> wrote:
If dictionary order is not guaranteed in the spec and the dictionary order isn't randomized (which I think everyone agrees is a bit messed up), it would probably be useful if you could enable "random order mode" in CPython, so you can stress-test that your code isn't making any assumptions about dictionary ordering without having to use an implementation where order isn't deterministic.
I could either be something like an environment variable SCRAMBLEDICTORDER or a flag like --scramble-dict-order. That would probably help somewhat with the very real problem of "everyone's going to start counting on this ordered property".
This seems like overkill to me. By the same logic, we should add a "delay garbage collection" mode, that allows people to test that their code doesn't make unwarranted assumptions that a reference-counting garbage collector is in use.
Most public projects (which are the only ones that really need to worry about this sort of detail) will probably be supporting Python 3.5 and likely even Python 2.7 for some time yet. So they test under non-order-preserving dictionary implementations anyway. And if code that's only targeted for Python 3.7 assumes order preserving dictionaries, it's likely not got a huge user base anyway, so what's the problem?
Paul
- Previous message (by thread): [Python-Dev] Guarantee ordered dict literals in v3.7?
- Next message (by thread): [Python-Dev] Guarantee ordered dict literals in v3.7?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]