2012/1/5 Steven D'Aprano <st...@pearwood.info>:
> Benjamin Peterson wrote:
>>
>> 2012/1/5 Nick Coghlan <ncogh...@gmail.com>:
>>>
>>> On Fri, Jan 6, 2012 at 10:07 AM, Steven D'Aprano <st...@pearwood.info>
>>> wrote:
>>>>
>>>> Surely the way to verify the behaviour is to run this from the shell:
>>>>
>>>> python -c print(hash("abcde"))
>>>>
>>>> twice, and see that the calls return different values. (Or have I
>>>> misunderstood the way the fix is going to work?)
>>>>
>>>> In any case, I wouldn't want to rely on the presence of a flag in the
>>>> sys
>>>> module to verify the behaviour, I'd want to see for myself that hash
>>>> collisions are no longer predictable.
>>>
>>> More directly, you can just check that the hash of the empty string is
>>> non-zero.
>>>
>>> So -1 for a flag in the sys module - "hash('') != 0" should serve as a
>>> sufficient check whether or not process-level string hash
>>> randomisation is in effect.
>>
>>
>> What exactly is the disadvantage of a sys attribute? That would seem
>> preferable to an obscure incarnation like that.
>
>
> There's nothing obscure about directly testing the hash. That's about as far
> from obscure as it is possible to get: you are directly testing the presence
> of a feature by testing the feature.

It's obscure because hash('') != 0 doesn't necessarily mean the hashes
are randomized. A different hashing algorithm could be in effect.


-- 
Regards,
Benjamin
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to