[Python-Dev] Counting collisions for the win (original) (raw)
Barry Warsaw barry at python.org
Fri Jan 20 14:10:30 CET 2012
- Previous message: [Python-Dev] Counting collisions for the win
- Next message: [Python-Dev] Counting collisions for the win
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Jan 20, 2012, at 01:50 PM, Victor Stinner wrote:
Counting collision doesn't solve this case, but it doesn't make the situation worse than before. Raising quickly an exception is better than stalling for minutes, even if I agree than it is not the best behaviour.
ISTM that adding the possibility of raising a new exception on dictionary insertion is more backward incompatible than changing dictionary order, which for a very long time has been known to not be guaranteed. You're running some application, you upgrade Python because you apply all security fixes, and suddenly you're starting to get exceptions in places you can't really do anything about. Yet those exceptions are now part of the documented public API for dictionaries. This is asking for trouble. Bugs will suddenly start appearing in that application's tracker and they will seem to the application developer like Python just added a new public API in a security release.
OTOH, if you change dictionary order and that breaks the application, then the bugs submitted to the application's tracker will be legitimate bugs that have to be fixed even if nothing else changed.
So I still think we should ditch the paranoia about dictionary order changing, and fix this without counting. A little bit of paranoia could creep back in by disabling the hash fix by default in stable releases, but I think it would be fine to make that a compile-time option.
-Barry
- Previous message: [Python-Dev] Counting collisions for the win
- Next message: [Python-Dev] Counting collisions for the win
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]