[Haskell-cafe] Annoyed at System.Random

Ryan Newton rrnewton at gmail.com
Fri May 4 02:18:37 CEST 2012

Hi Thomas,

Personally, I would love to see that happen.  It seems like the best way to
make split acceptable.

Is Brian Gladman's C implementation still best in class?  In my tests even
without AESNI it could exceed the traditional System.Random in performance (
https://github.com/rrnewton/intel-aes/wiki), while providing much better
randomness and splitability.

Re: AESNI, my attempt at using the Intel provided asm for this introduced
build fragility.  What would be the more portable way to do it?  Rewrite it
using GCC intrinsics?



On Thu, May 3, 2012 at 7:43 PM, Thomas DuBuisson <thomas.dubuisson at gmail.com
> wrote:

> Ryan,
> I've grown annoyed at System.Random enough (specifically, StdGen).
> How much, if any, pushback would there be if I put together a FFI
> binding to a C AES-CTR based RNG.  There are many advantages:
> 0) The API wouldn't have to change (though some parts should, and some
> change is already planned)
> 1) It can be fast (maybe not MT fast, but really quite good)
> 2) It's secure and the splitting properties can be related to
> cryptographic problems.
> 3) It could use Intel NI instructions when available.
> 4) It's NIST standardized, so there exist known answer tests.
> 5) We could expose a method to fill an arbitrary buffer :: Storable a
> => Ptr a -> Int -> IO ()
> 6) The rest of the community doesn't have to do any of the work.
> I'd be tempted to pull in the 'entropy' package for seeding, but will
> make that a separate proposal.
> Cheers,
> Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120503/1402ea62/attachment.htm>

More information about the Haskell-Cafe mailing list