An all-in-one allocation mini-cache. This uses invasive containment to keep a hash table as well as an LRU list. It allocates a statically configurable space in which the elements are allocated in-place.
using TMiniCache to replace an unordered_map cache inside TStream. This reduced the average instruction count of a look-up from 332 to 129 for the TStream::FetchBuf() call in a sample test. It also cuts the heap allocations down to 0 as all the space for the cache is pre-allocated inside the containing object.
Adding a space-efficient empty specialization of TMiniCache
Merge pull request #184 from jmlvanre/perf-mini-cache

Perf mini cache
If we check the timestamp of make_dep_file itself, we rebuild always for buildbots since they always re-bootstrap jhm and make_dep_file.

For now work around this by not timestamping make_dep_file (Do g++ instead). Less than ideal but functional. In the future we will ideally only re-bootstrap as necessary, but that requires considerably more engineering effort.
Updating Base/TMiniCache:
  1. Using anonymous union trick to prevent default constructor requirement for pre-allocated space
  2. Switched (remove + insert) in LRU membership to just insert as that call already handles the remove
  3. Added comments and an example in the header
Merge pull request #187 from cmaloney/jhm-make-dep-file-timestamp

If we check the timestamp of make_dep_file itself, we rebuild always for...
Merge pull request #188 from jmlvanre/perf-mini-cache

Updating Base/TMiniCache
Bootstrap nycr along with everything else
Merge pull request #190 from cmaloney/nicer-bootstrap

Bootstrap nycr along with everything else
Confirming that arena notes containing strings are always null-terminated.  The null terminator counts toward the raw size of the note, but does not count toward the logical size.  The limit-pointer will therefore always point to a null byte.
Demangling a search-and-replace error.
Merge pull request #191 from JasonL9000/null-term

Confirming that arena notes containing strings are always null-terminate...
Fixing a bug where the hinted pin size for a core string was short by 1 because the null-terminator was not included in the calculated size.
Merge pull request #192 from jmlvanre/core-str-pin-size-fix

Atom Core string pin fix