Гарантируется ли стабильный вывод функции Джулии `ha sh ()` для всех сеансов, платформ и версий? - PullRequest
6 голосов
/ 19 июня 2020

Я пробовал запустить следующий код в нескольких разных сеансах Julia REPL, на MacOSX и Linux, и всегда получал одни и те же результаты:

julia> hash(123), hash("123"), hash([1,2,3]), hash((1,2,3)), hash(Set([1,2,3])), hash(:123)
(0x54657e9dbfd649e5, 0xb4e92987fa06fcab, 0xecc5186e7be222c6, 0xafc764e9c2b7cde5, 0x66406071c4c9b92a,
0x54657e9dbfd649e5)

Вопрос: гарантировано ли такое поведение по языку? Или результаты могут отличаться (как в Python, для разных сеансов, платформ и версий)?

Примечание: этот вопрос связан с моим другим вопросом о стабильности порядка наборов на основе ha sh, таких как Set и Dict (это тесно связано, но отличается).

1 Ответ

2 голосов
/ 19 июня 2020

Они нестабильны и могут меняться от версии к версии или платформам. Они уже различаются между системами с разным размером слов.

...