lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On 26 January 2012 10:29, Florian Weimer <> wrote:
> * Roberto Ierusalimschy:
>>> OK.  Cool.  This is a showstopper for the company I am working with for
>>> rolling out embedded Lua with nginx.  Is there anything I can do to help?
>> what it is still missing now is how to create the initial per-state
>> random seed. Suggestions included some address and arc4random. I am
>> afraid that, for the backup ANSI implementation, we cannot do much
>> better than something like this:
>>   seed = (unsigned int)time() + (unsigned int)L;
> Addresses of a stack variable and a public Lua function should provide
> a few bits of randomness, too.
> Instead of addition, you should use one of Bob Jenkin's mixing
> functions.  This means that it's not important where the randomness is
> inside the initial values (sometimes, it's in the lower bits,
> sometimes, somewhere in the middle).
> Reading from /dev/urandom might be problematic because drains entropy
> from the whole system.
>> We can have better implementations for particular system. For
>> instance, we can use arc4random if present, but how to detect it?
>> Are there any other suggestions?
> Have you tried using PATRICIA and similar trie structures for
> interning strings?  I'm just curious how large the performance impact
> would be.  I suspect it's so large that it's not worth it.

I'm personally wondering what the downsides are to using a tree to
store conflicting keys. It doesn't seem to be the popular approach to
fixing this problem. Is the code complexity deemed too great? Too much
(runtime) overhead? Laziness?