to post messages and comments.

← All posts tagged random

В продолжение #2513200 и #2514081
Решил накатать бенчмарк: gist.github.com
Собственно вопрос скорее по адекватности бенчмарка. Там есть вызов функции без IO (genSys и genAes), так вот их результаты не зависят от размера списка. Т.е. я явно что-то не так делаю. Возможно, критерион не так готовлю.
Посмотрите плз.

В продолжение #2513200.
А для hackage.haskell.org генератора код из gist.github.com работает как ожидается.
Посмотрел я на реализацию Crypto.PubKey.DSA.sign — она использует, в итоге, withRandomBytes, а она, в свою очередь, cprgGenerate.
Собственно отсюда следует, что не стоит полагаться на реализацию SystenRNG, т.е. лучше вернуть IORef с генератором.

Господа гляньте плз код gist.github.com . Если расскомментить 14 строку и закоментить 13-ю вывод не измениться. Кажется ли это вам нормальным?
Собственно есть библитека Crypto.Random hackage.haskell.org замечательного параноика Vincent Hanquez . Он её запилил на замену своей же Crypto.Random.API . С предыдущей версией я просто хранил глобально IORef на какой-то системный инстанс CPRG и в ус не дул, просто подменял при использовании старый генератор на новый. Сейчас же появился EnthropyPool который держит байтстринг и MVar с текущей позицией в нём и каждый раз при вызове генератора обновляет этот MVar. При таком раскладе можно просто хранить глобальный EnthropyPool . Это здорово, но меня как-то напрягает смена подхода без смены интерфейса. Нафига тогда генератор возвращать?
ЗЫ Винсенту я уже написал, он пока молчит. Хочется знать ваше мнение.