lua-users home
lua-l archive

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


On Fri, Jan 6, 2012 at 12:17, Roberto Ierusalimschy
<roberto@inf.puc-rio.br> wrote:
>> If I am not mistaken current Lua implementation computes hash value by
>> iterating through a string one character at a time. Would it be faster
>> to iterate one word at a time (4 bytes at a time in 32bit
>> architecture)?  It will require changing hash function implementation
>> but it could speed up the calculations. Hopefully, we can still treat
>> 127-byte long strings as short strings.
>
> I do not see a simple way to write this in a portable way (respecting
> alignment requirements for word access). For strings already internal to
> Lua we know about their alignment, but external strings (the ones to be
> internalized) may start anywhere. We would need to do some arithmetic
> with addresses, something invalid in ANSI C.
>
> -- Roberto
>

That seems terribly amusing, given that C is supposed to be low-level.
There's no way to convert the address to an integer and slow-copy the
first few bytes until we're at an aligned address?

-- 
Sent from my toaster.