-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

# Especially to Technorama Ltd.

We're discussing about introducing Random class for PRNG on ruby-dev ML.

 * current rand and srand changes global state.  it should be the
   source of a security problem sooner or later in this "framework" era.
   (I claimed)
 * Mats agreed to introduce a class for PRNG based on current Mersenne
   Twister implementation.  class name is "Random".
 * no plan to introduce another PRNG based on other PRNG algorithm.
   MT is the only PRNG engine for "Random".
 * we're now discussing what methods "Random" should have.

Here's my proposal (no agreement for now);

Random#integer(max)
Ramdom#bytes(size)
Random#float         # same as Random#rand(0).  not needed?
Random#rand(max = 0)
Random#srand(seed = nil)
Random#seed=(seed = nil) # same as Random#srand(seed)

Random.rand(max = 0) # calls Random#rand(max) of the singleton Random
                     # object which is initialized with the current
                     # srand().

rand(max = nil)      # calls Random.rand(max)
srand()              # srand() now takes no argument for 1.9.

Comments needed.

Regards,
// NaHi

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRm49vB9L2jg5EEGlAQIhCAf/cUqxCF7wkEwakEPkTaonfVvO5Firz1jh
obm8cr3tr4+8sEiY5WX6nLoI3laEOgVfiyjgmTmFY2L6b4ghyU3fcynzlLINSbPn
MehyWaSscamlaN28DkPv8Jq51hoIMTNsmTyA6QEVIKkN+m9DFdd4Jk0505kB9/yH
RdhMFsZ/wZXjJkbAEVIIxaenfn90tRydwcXF/PZRHNVjbi/r0U57wlmni+aoGWrO
3bafFWymg0t+nlKY1Kajgy4cle/Cx3WaeZ2YoRTyp5HsBS5Tw0cUbwZDF8G14bVW
TWkDEe9nRG0e82Hh8ow6jqoUqOgIJBqi6/KfaoR7JQtXC2Bi0DbHiQ==
=ORxD
-----END PGP SIGNATURE-----