James Liu
James Liu
Without something like `stackalloc` or unsized locals, runtime length determined and stack allocated buffers are going to be difficult. Unfortunately that crate adds a C job to the dependency tree,...
Updated the PR to use `std::ptr::swap_non_overlapping`. Ran some benchmarks. Looks to be non-regressing for the affected benchmarks with a significant improvement for removing bigger components. This should also carry over...
On a deeper inspection, it seems like we're doing one extra copy on `BlobVec` moves: - Initial `swap_remove_and_forget_unchecked` swaps with the last element int the `BlobVec` - `BlobVec::push` then copies...
I really don't want us to be adding miri exceptions this deep in the stack. Marking this as blocked on https://github.com/rust-lang/miri/issues/2181
Caved in: disabling the pointer based types in miiri tests for now via `#[cfg(not(miri))]`, until the upstream issue is fixed with miri itself, as this issue seems to be pretty...
Nevermind, this seems to impact pretty much every test moving data into or out of BlobVec, which involves pretty much every add/remove component test. Going to have to shelve this...
Revived this since there was an interest in optimizing the commands used in rendering. The components added/removed there can be quite big (140+ bytes), which lines up with some of...
rust-lang/rust#104054 should fix the miri issue. Once this is ready in nightly, this PR should be mergable.