Daria Sukhonina
Daria Sukhonina
- [x] `-Zmiri-ignore-leaks` baseline - [x] `-Zmiri-tag-raw-pointers` - [x] `-Zmiri-strict-provenance` (`cargo miri --version` f76ebd6 2022-07-02) - [ ] eliminate `-Zmiri-ignore-leaks` Also adds `test_skip_miri_quickchecks` default feature. Fixes #166, fixes #164
This is a library, so it should have `Cargo.lock` gitignored.
`quickcheck` tests are super long for miri (`14m24s` enabled vs. `1m48s` disabled). Perhaps it is better to separate "try to break the program by massaging input for a while" tests...
I would argue that it is our best to name methods like in `allocator_api` feature (`Box::allocator`, `Box::into_inner_with_allocator`, etc.)
Enables a small(?) but valid set of cases. May come with a small penalty, until we have `Unique` built-in. Tho it seems like even in std `Unique` does not enable...
https://github.com/fitzgen/bumpalo/blob/f5e01a7b498077f181a81e2db1be2a0e8c579435/src/collections/vec.rs#L520 This lifetime bound disallows `T` to outlive `'bump`, i.e. its allocator borrow. `std::vec::Vec` doesn't have anything remotely like that. Also it disallows me to add some drop check tests...
While i hope it's not, it seems intentional. If it is... why? https://github.com/fitzgen/bumpalo/blob/fa52577688284d73b44cc8f49671ef02ebdea14b/src/collections/vec.rs#L1028-L1042
Switches wrapped type from `&mut T` to `&mut mem::ManuallyDrop`, which may improve correctness of the code, see details: https://users.rust-lang.org/t/correctness-of-untouched-mutable-borrow-of-a-value-in-post-drop-state/77047?u=zetanumbers Fixes #161
Basically, `std::boxed::Box` allows us to move the stored value out of it just by dereferencing it: ```rust fn foo(b: Box) -> AtomicI32 { *b } ``` But equivalent code does...
Previously converted such character to UTF-16 char code, so large unicode characters would have been truncated. Now it's possible to pass unicode characters.