Skip to content
Snippets Groups Projects
user avatar
Henri Beauchamp authored
This commit adds the HBXX64 and HBXX128 classes for use as a drop-in
replacement for the slow LLMD5 hashing class, where speed matters and
backward compatibility (with standard hashing algorithms) and/or
cryptographic hashing qualities are not required.
It also replaces LLMD5 with HBXX* in a few existing hot (well, ok, just
"warm" for some) paths meeting the above requirements, while paving the way for
future use cases, such as in the DRTVWR-559 and sibling branches where the slow
LLMD5 is used (e.g. to hash materials and vertex buffer cache entries), and
could be use such a (way) faster algorithm with very significant benefits and
no negative impact.

Here is the comment I added in indra/llcommon/hbxx.h:

// HBXXH* classes are to be used where speed matters and cryptographic quality
// is not required (no "one-way" guarantee, though they are likely not worst in
// this respect than MD5 which got busted and is now considered too weak). The
// xxHash code they are built upon is vectorized and about 50 times faster than
// MD5. A 64 bits hash class is also provided for when 128 bits of entropy are
// not needed. The hashes collision rate is similar to MD5's.
// See https://github.com/Cyan4973/xxHash#readme for details.
9438ef5f
History
Second Life Logo

Second Life is a free 3D virtual world where users can create, connect and chat with others from around the world. This repository contains the source code for the official client.

Open Source

Second Life provides a huge variety of tools for expression, content creation, socialization and play. Its vibrancy is only possible because of input and contributions from its residents. The client codebase has been open source since 2007 and is available under the LGPL license. The Open Source Portal contains additional information about Linden Lab's open source history and projects.

Download

Most people use a pre-built viewer release to access Second Life. Windows and macOS builds are published on the official website. More experimental viewers, such as release candidates and project viewers, are detailed on the Alternate Viewers page.

Third Party Viewers

Third party maintained forks, which include Linux compatible builds, are indexed in the Third Party Viewer Directory.

Build Instructions

Windows

Mac

Linux

Contribute

Help make Second Life better! You can get involved with improvements by filing bugs, suggesting enhancements, submitting pull requests and more. See the open source portal for details.