{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":164874285,"defaultBranch":"main","name":"snmalloc","ownerLogin":"microsoft","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-01-09T14:05:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6154722?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1704404303.0","currentOid":""},"activityList":{"items":[{"before":"ab4fe848045a322c3568d7fb22e575616ccf4835","after":"f1df3d43bb4e6ce9d269a4f75945e0fa25966c19","ref":"refs/heads/main","pushedAt":"2024-09-28T21:02:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"override malloc, aligned_alloc calling libc::aligned_alloc (#681)","shortMessageHtmlLink":"override malloc, aligned_alloc calling libc::aligned_alloc (#681)"}},{"before":"fb776da909eeb68835294e351ecaf3ae270b6891","after":"ab4fe848045a322c3568d7fb22e575616ccf4835","ref":"refs/heads/main","pushedAt":"2024-09-25T10:27:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Provide option to CMake for Page Size (#664)\n\n* Pickup page size from unistd.h\r\n\r\nThis uses the PAGESIZE constant from the unistd.h on POSIX.\r\nThis should make the code more resilient to being compiled on platforms with\r\ndifferent page sizes.\r\n\r\n* Allow pagesize to come from cmake.\r\n\r\n* Update src/snmalloc/pal/pal_posix.h\r\n\r\nCo-authored-by: Nathaniel Filardo <105816689+nwf-msr@users.noreply.github.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Nathaniel Filardo <105816689+nwf-msr@users.noreply.github.com>","shortMessageHtmlLink":"Provide option to CMake for Page Size (#664)"}},{"before":"416fd39f6a423ff767cc0fdb080192af783425ef","after":"fb776da909eeb68835294e351ecaf3ae270b6891","ref":"refs/heads/main","pushedAt":"2024-09-23T18:18:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf","name":"Nathaniel Wesley Filardo","path":"/nwf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156882?s=80&v=4"},"commit":{"message":"WIP: BatchIt (#677)\n\n* Rename dealloc_local_object_slower to _meta\r\n\r\nUnlike its brethren, `dealloc_local_object` and\r\n`dealloc_local_object_slow`, the `dealloc_local_object_slower` method\r\ndoes not take a pointer to free space. Make this slightly more apparent\r\nby renaming it and adding some commentary to both definition and call\r\nsite.\r\n\r\n* corealloc: get meta in dealloc_local_object\r\n\r\nMake both _fast() and _slow() arms take the meta as an argument; _meta()\r\nalready did.\r\n\r\n* Introduce RemoteMessage structure\r\n\r\nPlumb its use around remoteallocator and remotecache\r\n\r\n* NFC: Plumb metadata to remotecache dealloc\r\n\r\n* Initial steps in batched remote messages\r\n\r\nThis prepares the recipient to process a batched message.\r\n\r\n* Initial dealloc-side batching machinery\r\n\r\nExercise recipient machinery by having the senders collect adjacent frees to\r\nthe same slab into a batch.\r\n\r\n* Match free batch keying to slab freelist keying\r\n\r\n* freelist: add append_segment\r\n\r\n* SlabMetadata: machinery for returning multiple objects\r\n\r\nThis might involve multiple (I think at most two, at the moment) transitions in\r\nthe slab lifecycle state machine. Towards that end, return indicators to the\r\ncaller that the slow path must be taken and how many objects of the original\r\nset have not yet been counted as returned.\r\n\r\n* corealloc: operate ring-at-a-time on remote queues\r\n\r\n* RemoteCache associative cache of rings\r\n\r\n* RemoteCache: N-set caching\r\n\r\n* Initial CHERI support for free rings\r\n\r\n* Matt's fix for slow-path codegen\r\n\r\n* Try: remotecache: don't store allocator IDs\r\n\r\nWe can, as Matt so kindly reminds me, go get them from the pagemap. Since we\r\nneed this value only when closing a ring, the read from over there is probably\r\nnot very onerous. (We could also get the slab pointer from an object in the\r\nring, but we need that whenever inserting into the cache, so it's probably more\r\nsensible to store that locally?)\r\n\r\n* Make BatchIt optional\r\n\r\nMove ring set bits and associativity knobs to allocconfig and expose them via\r\nCMake. If associtivity is zero, use non-batched implementations of the\r\n`RemoteMessage` and `RemoteDeallocCacheBatching` classes.\r\n\r\nBy default, kick BatchIt on when we have enough room in the minimum allocation\r\nsize to do it. Exactly how much space is enough is a function of which\r\nmitigations we have enabled and whether or not we are compiling with C++20.\r\n\r\nThis commit reverts the change to `MIN_ALLOC_SIZE` made in \"Introduce\r\nRemoteMessage structure\" now that we have multiple types, and zies, of\r\nremote messages to choose from.\r\n\r\n* RemoteDeallocCacheBatching: store metas as address\r\n\r\nThere's no need for a full pointer here, it'd just make the structure larger on\r\nCHERI.\r\n\r\n* NFC: plumb entropy from LocalAlloc to BatchIt\r\n\r\n* BatchIt random eviction\r\n\r\nIn order not to thwart `mitigations(random_preserve)` too much, if it's on in\r\ncombination with BatchIt, roll the dice every time we append to a batch to\r\ndecide if we should stochastically evict this batch. By increasing the number\r\nof batches, we allow the recipient allocator increased opportunity to randomly\r\nstripe batches across the two `freelist::Builder` segments associated with each\r\nslab.\r\n\r\n---------\r\n\r\nCo-authored-by: Nathaniel Wesley Filardo \r\nCo-authored-by: Matthew Parkinson ","shortMessageHtmlLink":"WIP: BatchIt (#677)"}},{"before":"19259095c6e2e7468de577fcc04e779f3580f2d5","after":"416fd39f6a423ff767cc0fdb080192af783425ef","ref":"refs/heads/main","pushedAt":"2024-09-21T14:48:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf","name":"Nathaniel Wesley Filardo","path":"/nwf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156882?s=80&v=4"},"commit":{"message":"gcc UAF warning in test/perf/singlethread -malloc\n\nWhen building test/perf/singlethread to use the system allocator, gcc\n(Debian 14.2.0-3) correctly sees that we were using the value of a\npointer after it had been passed to the privileged free(), which is UB.\n\nFlip the check and dealloc, so that we query the set of pointers we're\ntracking first, using the pointer while the allocation is still live.","shortMessageHtmlLink":"gcc UAF warning in test/perf/singlethread -malloc"}},{"before":"d537d352683799beea94c0698d85bcfa7f6f4ece","after":"19259095c6e2e7468de577fcc04e779f3580f2d5","ref":"refs/heads/main","pushedAt":"2024-09-21T10:32:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf","name":"Nathaniel Wesley Filardo","path":"/nwf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/156882?s=80&v=4"},"commit":{"message":"Further gcc -Werror=array-bounds fix\n\nIn test/perf/startup, gcc (Debian 14.2.0-3) seems to get confused about\nthe size of the counters vector as the code was written. Rewrite the\ncode to pass the same value (`std::thread::hardware_concurrency()`, but\nin a local) to both `counters.resize()` and the `ParallelTest` ctor.","shortMessageHtmlLink":"Further gcc -Werror=array-bounds fix"}},{"before":"8b95b9a916c2ba76fba334b18b7e4e51eac03a26","after":"d537d352683799beea94c0698d85bcfa7f6f4ece","ref":"refs/heads/main","pushedAt":"2024-09-19T15:54:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"export snmalloc::alloc_size to rust wrappers. (#676)","shortMessageHtmlLink":"export snmalloc::alloc_size to rust wrappers. (#676)"}},{"before":"12f2b1012279391d0b275b23b84ae5ad4ba18435","after":"8b95b9a916c2ba76fba334b18b7e4e51eac03a26","ref":"refs/heads/main","pushedAt":"2024-09-12T21:06:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"Bottom commits from BatchIt (#675)\n\n* msvc: set __cplusplus to the actual value in use\r\n\r\n* ds_core/bits: add mask_bits; convert one_at_bit-s\r\n\r\n* remotecache: enable reserve_space multiple objects\r\n\r\n* nits\r\n\r\n* Small changes to tracing\r\n\r\n- Trace \"Handling remote\" once per batch, rather than per element\r\n\r\n- Remote queue events also log the associated metaslab; we'll use this\r\n to assess the efficacy of https://github.com/microsoft/snmalloc/issues/634\r\n\r\n* freelist builder: allow forcibly tracking length\r\n\r\n* Try forward declaring freelist::Builder to appease macos-14\r\n\r\n* freelist: tweak intra-slab obfuscation keys by meta address\r\n\r\n* NFC: freelist: allow `next` to be arbitrary value\r\n\r\n* Switch to a central, tweaked key for all free lists\r\n\r\n* allocconfig: introduce some properties of slabs\r\n\r\nWe'll use these to pack values in message queues.\r\n\r\n- Maximum distance between two objects in a single slab\r\n- Maximum number of objects in a slab\r\n\r\n* NFC: Templatize LocalCache on Config\r\n\r\n* NFC: split dealloc_local_object_slow\r\n\r\nWe'll use the _slower form when we're just stepping a slab through\r\nmultiple rounds of state transition (to come), which can't involve\r\nthe actual memory object in question.\r\n\r\n* NFC: make freelist::Object::T-s by placement new\r\n\r\n* NFC: CoreAlloc: split dealloc_local_object\r\n\r\nThe pattern of `if (!fast()) { slow() }` occurs in a few places, including in\r\ncontexts where we already know the entry and so don't need to look it up.","shortMessageHtmlLink":"Bottom commits from BatchIt (#675)"}},{"before":"7fbca11527573d39ca2fef344e0e2c02f4bf04d8","after":"12f2b1012279391d0b275b23b84ae5ad4ba18435","ref":"refs/heads/main","pushedAt":"2024-09-10T14:07:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"Rework CI (#674)\n\n- Split ubuntu and macos CI actions, even though they use very similar steps\r\n- Remove macos-11, keep -12, and add -14\r\n- Have all macos platforms build with and without C++17\r\n- Remove duplicated dependency lines in ubuntu matrix entries; push this down\r\n to the steps\r\n- Ensure that all added ubuntu matrix tuples have non-empty build-type\r\n- Add all jobs to all-checks' \"needs:\" to ensure we wait for everything","shortMessageHtmlLink":"Rework CI (#674)"}},{"before":"fcad15456b04ec59e2ab7df7ba27a4d8933c7f6a","after":"7fbca11527573d39ca2fef344e0e2c02f4bf04d8","ref":"refs/heads/main","pushedAt":"2024-09-09T16:25:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"0-length arrays in Buddy ranges (#672)\n\n* backend_helpers: introduce NopRange\r\n\r\n* Fix to Buddy MIN == MAX case\r\n\r\nThis fixes the 0-length arrays discussed (and made into assertion failures) in\r\nthe next commit. This works because the Buddy's `MIN_SIZE_BITS` is instantiated\r\nat `MIN_CHUNK_BITS`, and so we ensure that we instantiate the LargeBuddyRange\r\nonly with `max_page_chunk_size_bits` above `MIN_CHUNK_BITS`.\r\n\r\n* Buddy range: assert that MAX > MIN\r\n\r\nNow that the case leading to several 0-sized arrays in Buddy ranges, that then\r\ncause gcc's -Warray-bounds to trip, has been removed, add a static assert so\r\nthat we can catch this with better error messages next time.","shortMessageHtmlLink":"0-length arrays in Buddy ranges (#672)"}},{"before":"6af38acd94d401313b7237bb7c2df5e662e135cf","after":"fcad15456b04ec59e2ab7df7ba27a4d8933c7f6a","ref":"refs/heads/main","pushedAt":"2024-08-27T21:16:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"aligned_alloc: Permit alignment values smaller than sizeof(uintptr_t) (#671)\n\nposix_memalign() requires alignment values of at least\nsizeof(uintptr_t), but aligned_alloc() does not. memalign() regressed\nto require larger alignment in commit\n6cbc50fe2c255b5b47ea63f4cf759a6a20f6e7a6.\n\nFixes #668","shortMessageHtmlLink":"aligned_alloc: Permit alignment values smaller than sizeof(uintptr_t) ("}},{"before":"6bd6db5f615b09cc56e5e03f61191fae03d39d5f","after":"6af38acd94d401313b7237bb7c2df5e662e135cf","ref":"refs/heads/main","pushedAt":"2024-06-28T14:43:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Implement MCS Combining lock (#666)\n\n* Added lambda lock primitive\r\n\r\n* Implement MCS Combining lock\r\n\r\nThis is hybrid of Flat Combining and the MCS queue lock. It uses\r\nthe queue like the MCS queue lock, but each item additionally\r\ncontains a thunk to perform the body of the lock. This enables\r\nother threads to perform the work than initially issued the request.\r\n\r\n* Add a fast path flag\r\n\r\nThis update adds a fast path flag for the uncontended case. This\r\nreduces the number of atomic operations in the uncontended case.\r\n\r\n* CR feedback","shortMessageHtmlLink":"Implement MCS Combining lock (#666)"}},{"before":"4620220080d2582c829954624c5a84175c05fd93","after":"6bd6db5f615b09cc56e5e03f61191fae03d39d5f","ref":"refs/heads/main","pushedAt":"2024-06-28T14:19:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"Remove the SNMALLOC_USE_CXX17 C preprocessor symbol (#667)\n\n* Revise search for no-unique-addres\r\n\r\n* Remove SNMALLOC_USE_CXX17 as preprocessor symbol\r\n\r\nJust test __cplusplus in the last place we were using it.","shortMessageHtmlLink":"Remove the SNMALLOC_USE_CXX17 C preprocessor symbol (#667)"}},{"before":"835ab5186325736ff5aa8ef53728970d1d74c3bc","after":"4620220080d2582c829954624c5a84175c05fd93","ref":"refs/heads/main","pushedAt":"2024-06-26T20:34:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Startup speed (#665)\n\n* Refactor buddy allocator\r\n\r\nMake it clearer the structure of add_block by pulling out remove_buddy.\r\n\r\n* Give buddy a few elements so don't have to touch pagemap earlie on.\r\n\r\n* Only use do and dont dump on pagemap\r\n\r\nThe do and dont dump calls were costings a lot during start up of snmalloc. This reduces the times they are called to only be for the pagemap.","shortMessageHtmlLink":"Startup speed (#665)"}},{"before":"2a7eabef6c7017bfed911869113700bbeee0befe","after":"835ab5186325736ff5aa8ef53728970d1d74c3bc","ref":"refs/heads/main","pushedAt":"2024-06-13T21:28:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"msgpass benchmark and its refactoring dependencies (#659)\n\n* NFC: split freelist_queue from remoteallocator\r\n\r\nThis lets us use freelists as message queues in contexts other than\r\nthe remoteallocator. No functional change indended.\r\n\r\n* freelist_queue: add and use destroy_and_iterate\r\n\r\n* freelist: make backptr obfuscation key \"tweakable\"\r\n\r\n* freelist: tweakable keys in forward direction, too\r\n\r\n* test/perf/msgpass: ubench a producer-consumer app\r\n\r\nApproximate a message-passing application as a set of producers, a set of\r\nconsumers, and a set of proxies that do both. We'll use this for some initial\r\ninsight for https://github.com/microsoft/snmalloc/issues/634 but it seems worth\r\nhaving in general.","shortMessageHtmlLink":"msgpass benchmark and its refactoring dependencies (#659)"}},{"before":"2dba088d243e24d4ff09a016ef33a8a06f298980","after":"2a7eabef6c7017bfed911869113700bbeee0befe","ref":"refs/heads/main","pushedAt":"2024-06-13T13:32:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Configurable client meta-data (#662)\n\nThis provide a way to configure snmalloc to provide per object meta-data that is out of band. This can be used to provide different mitigations on top of snmalloc, such as storing memory tags in a compressed form, or provide a miracle pointer like feature.\r\n\r\nThis also includes a couple of TSAN fixes as it wasn't fully on in CI.","shortMessageHtmlLink":"Configurable client meta-data (#662)"}},{"before":"846a926155976b07a16425352dd5fed0858c5c97","after":"2dba088d243e24d4ff09a016ef33a8a06f298980","ref":"refs/heads/main","pushedAt":"2024-06-06T09:23:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Refactor new/delete overrides (#660)\n\nProduce static library that only overrides new and delete. This allows for a static library to be added that only overrides new and delete.","shortMessageHtmlLink":"Refactor new/delete overrides (#660)"}},{"before":"b1d0d7dc78d8d75d6f8729772df6207a0cc37c66","after":"846a926155976b07a16425352dd5fed0858c5c97","ref":"refs/heads/main","pushedAt":"2024-05-24T17:49:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"NFC: sizeclass: differentiate minimum step size and minimum allocation sizes (#651)\n\n* Move sizeclass debugging code to sizeclass test\r\n\r\nThe sizeclass was already testing most of this, so just add the missing bits.\r\nForgo some tests whose failure would have implied earlier failures.\r\n\r\nThis moves the last dynamic call of size_to_sizeclass_const into tests\r\n(and so, too, to_exp_mant_const). sizeclasstable.h still contains a static\r\ncall to compute NUM_SMALL_SIZECLASSES from MAX_SMALL_SIZECLASS_SIZE.\r\n\r\n* Remove unused to_exp_mant\r\n\r\nOnly its _const sibling is used, and little at that, now that almost everything\r\nto do with sizes and size classes is table-driven.\r\n\r\n* test/memcpy: trap, if we can, before exiting\r\n\r\nThis just means I don't need to remember to set a breakpoint on exit\r\n\r\n* test/memcpy: don't assume sizeclass 0 is allocable\r\n\r\n* test/memory: don't assume sizeclass 0 is allocable\r\n\r\n* test/sizeclass: handle nonzero minimum sizeclasses\r\n\r\n* sizeclass: distinguish min alloc and step size\r\n\r\nAdd support for a minimum allocation size that isn't the minimum step of\r\nthe sizeclass table.\r\n\r\n* Expose MIN_ALLOC_{,STEP}_SIZE through cmake\r\n\r\n* test/sizeclass: report MIN_ALLOC_{STEP_,}SIZE","shortMessageHtmlLink":"NFC: sizeclass: differentiate minimum step size and minimum allocatio…"}},{"before":"d9bca644260847f3b325f4d0e12f0360ed1c0dac","after":"b1d0d7dc78d8d75d6f8729772df6207a0cc37c66","ref":"refs/heads/main","pushedAt":"2024-05-23T15:07:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Remove unnecessary assertion from aligned_alloc (#658)\n\nWith [DR460](https://open-std.org/JTC1/SC22/WG14/www/docs/summary.htm#dr_460) the undefined behaviour for size not being a multiple of alignment was remove.\n\nThe [N2072](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2072.htm) allows for this to return memory.\n\nSo we can remove this assert and keep the same conditions as memalign.","shortMessageHtmlLink":"Remove unnecessary assertion from aligned_alloc (#658)"}},{"before":"b8e9e99cf096357d37c67d423ccb657652879ba1","after":"d9bca644260847f3b325f4d0e12f0360ed1c0dac","ref":"refs/heads/main","pushedAt":"2024-04-10T05:31:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Add Windows ARM64 support (#656)\n\n* Add Windows ARM64 support\n\n* Add Windows ARM64/ARM64EC CI workflows","shortMessageHtmlLink":"Add Windows ARM64 support (#656)"}},{"before":"dc2b97ea16860b53ecf7209b0a8814406568ad41","after":"a85d0ef62491515d04687929c0d97e1020777e21","ref":"refs/heads/202401-morello-workflow-llvm","pushedAt":"2024-01-05T18:07:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"test/jemalloc: notch *allocm out from CheriBSD","shortMessageHtmlLink":"test/jemalloc: notch *allocm out from CheriBSD"}},{"before":"640cacf90ee83697d082c8fc758f0ea762e5e27a","after":"b8e9e99cf096357d37c67d423ccb657652879ba1","ref":"refs/heads/main","pushedAt":"2024-01-05T17:29:09.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"NFC: Remove \"Backend\" from MetaEntry template arg\n\nThis parameter is in fact instantiated with FrontendSlabMetadata, so the use of\nBackend here is confusing.","shortMessageHtmlLink":"NFC: Remove \"Backend\" from MetaEntry template arg"}},{"before":"bfd9633cac7b2255e4e44bb52afd023f6cca417c","after":"dc2b97ea16860b53ecf7209b0a8814406568ad41","ref":"refs/heads/202401-morello-workflow-llvm","pushedAt":"2024-01-05T17:27:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"test/jemalloc: notch *allocm out from CheriBSD","shortMessageHtmlLink":"test/jemalloc: notch *allocm out from CheriBSD"}},{"before":"ccbf21fc45a2e8c4341abb3fcfdfea88e4411d4e","after":"bfd9633cac7b2255e4e44bb52afd023f6cca417c","ref":"refs/heads/202401-morello-workflow-llvm","pushedAt":"2024-01-04T21:47:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"github/morello: also explicitly install llvm\n\nThe 2023.11 ports tree no longer has llvm-localbase depend on llvm,\nso go ahead and install that too.","shortMessageHtmlLink":"github/morello: also explicitly install llvm"}},{"before":null,"after":"ccbf21fc45a2e8c4341abb3fcfdfea88e4411d4e","ref":"refs/heads/202401-morello-workflow-llvm","pushedAt":"2024-01-04T21:38:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nwf-msr","name":"Nathaniel Filardo, once at MS Research","path":"/nwf-msr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105816689?s=80&v=4"},"commit":{"message":"github/morello: also explicitly install llvm\n\nThe 2023.11 ports tree no longer has llvm-localbase depend on llvm,\nso go ahead and install that too.","shortMessageHtmlLink":"github/morello: also explicitly install llvm"}},{"before":"3c3739ddafa384da5c89984ec765a22af4d876a5","after":"640cacf90ee83697d082c8fc758f0ea762e5e27a","ref":"refs/heads/main","pushedAt":"2024-01-02T10:02:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Updated CI workaround. (#650)\n\nhttps://github.com/actions/runner-images/issues/8659","shortMessageHtmlLink":"Updated CI workaround. (#650)"}},{"before":"a781f96211b7e61d1ac0f33cc5a26640ed79e3ac","after":"3c3739ddafa384da5c89984ec765a22af4d876a5","ref":"refs/heads/main","pushedAt":"2023-11-09T06:24:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Update NetBSD runner (#648)","shortMessageHtmlLink":"Update NetBSD runner (#648)"}},{"before":"7d88f4d638c6708aa519ef01a038a823907b0267","after":"a781f96211b7e61d1ac0f33cc5a26640ed79e3ac","ref":"refs/heads/main","pushedAt":"2023-11-08T10:15:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"FreeBSD CI. (#647)","shortMessageHtmlLink":"FreeBSD CI. (#647)"}},{"before":"f38ee89e720cd6dad0b19d334ca32d73cf84f4eb","after":"7d88f4d638c6708aa519ef01a038a823907b0267","ref":"refs/heads/main","pushedAt":"2023-11-08T10:14:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Workaround runner issue. (#645)","shortMessageHtmlLink":"Workaround runner issue. (#645)"}},{"before":"554334754340920ce03c8ed36839c0ab816a9118","after":"f38ee89e720cd6dad0b19d334ca32d73cf84f4eb","ref":"refs/heads/main","pushedAt":"2023-10-03T13:59:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Template construction of Pool elements (#641)\n\n* Template construction of Pool elements\r\n\r\nThe Pool class is used by verona-rt. The recent changes made this\r\nless nice to consume as an API.\r\n\r\nThis change makes the construction logic a template parameter to the\r\nPool. This enables standard allocation to be used from Verona.\r\n\r\n* Drop parameter from acquire\r\n\r\nPool::acquire took a list of parameters to initialise the object that it\r\nconstructed. But if this was serviced from the pool, the parameter\r\nwould be ignored. This is not an ideal API.\r\n\r\nThis PR removes the ability to pass a parameter.","shortMessageHtmlLink":"Template construction of Pool elements (#641)"}},{"before":"126e77f2a524447b397bd7cf309ed3186d234a9b","after":"554334754340920ce03c8ed36839c0ab816a9118","ref":"refs/heads/main","pushedAt":"2023-09-28T13:53:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mjp41","name":"Matthew Parkinson","path":"/mjp41","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/270363?s=80&v=4"},"commit":{"message":"Startup improvements (#639)\n\n* Benchmark for testing startup performance.\r\n\r\n* Make pool pass spare space to pooled item\r\n\r\nThe pool will result in power of 2 allocations as it doesn't have a\r\nlocal state when it is initially set up.\r\n\r\nThis commit passes this extra space to the constructor of the pooled\r\ntype, so that it can be feed into the freshly created allocator.\r\n\r\nCo-authored-by: Nathaniel Wesley Filardo ","shortMessageHtmlLink":"Startup improvements (#639)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yOFQyMTowMjo0MC4wMDAwMDBazwAAAATDivfp","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wOS0yOFQxMzo1Mzo0MC4wMDAwMDBazwAAAAOLCTw4"}},"title":"Activity · microsoft/snmalloc"}