* msvc: set __cplusplus to the actual value in use * ds_core/bits: add mask_bits; convert one_at_bit-s * remotecache: enable reserve_space multiple objects * nits * Small changes to tracing - Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of https://github.com/microsoft/snmalloc/issues/634 * freelist builder: allow forcibly tracking length * Try forward declaring freelist::Builder to appease macos-14 * freelist: tweak intra-slab obfuscation keys by meta address * NFC: freelist: allow `next` to be arbitrary value * Switch to a central, tweaked key for all free lists * allocconfig: introduce some properties of slabs We'll use these to pack values in message queues. - Maximum distance between two objects in a single slab - Maximum number of objects in a slab * NFC: Templatize LocalCache on Config * NFC: split dealloc_local_object_slow We'll use the _slower form when we're just stepping a slab through multiple rounds of state transition (to come), which can't involve the actual memory object in question. * NFC: make freelist::Object::T-s by placement new * NFC: CoreAlloc: split dealloc_local_object The pattern of `if (!fast()) { slow() }` occurs in a few places, including in contexts where we already know the entry and so don't need to look it up.
23 KiB
23 KiB