The LLSC probe in `build.rs` checks for the presence of the
`clrex` instruction and assumes the target also has both `ldrex`
and `strex`.
In AArch64 `clrex` is a known mnemonic but `ldrex` and `strex`
are not. This caused the `arm_llsc` feature (and subsequently the
oiik module) to be included in the crate for AArc64 which is invalid.
from [this](https://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html#threadsanitizer)
> To work correctly ThreadSanitizer needs to be "aware" of all synchronization operations in a program. It generally achieves that through \[...\] and compile time instrumentation (e.g. atomic operations). Using it without instrumenting all the program code can lead to false positive reports.
and the example uses -Zbuild-std ... of course, std has to be instrumented. Adding -Zbuild-std fixes it, indeed.
338: export all IndexMap iterators r=korken89 a=jeandudey
Exports all the iterator types of `IndexMap`.
I wonder if it'd make sense to have a module structure such as the one in `alloc::collections`, e.g.: `heapless::indexmap` and re-export `heapless::indexmap::IndexMap` on the crate root, to have all the iterator types inside the `indexmap` module but still public.
Co-authored-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
337: Update spin dependency to newer version r=korken89 a=the-real-adammork
This updates `spin` to the newest version, this change helps us in one of our repos.
Co-authored-by: Adam Mork <adam@mobilecoin.com>
326: Recover StableDeref trait for pool::object::Object and pool::boxed::Box r=korken89 a=qwerty19106
I add ReadBuffer and WriteBuffer to pool::object::Object and pool::box::Box.
It allows to use embedded DMA of HAL crates, such as [stm32f4xx_hal::dma::Transfer](https://docs.rs/stm32f4xx-hal/latest/stm32f4xx_hal/dma/struct.Transfer.html).
Co-authored-by: Роман Кривенков <qwerty19106@gmail.com>
327: Add HistoryBuffer::as_slices() r=korken89 a=hulthe
This method returns the contents of a HistoryBuffer as two ordered slices, similar to [Deque::as_slices()](https://docs.rs/heapless/0.7.16/heapless/struct.Deque.html#method.as_slices).
Co-authored-by: Joakim Hulthe <joakim@hulthe.net>
Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
335: Implement retain for IndexSet/IndexMap. r=korken89 a=jeandudey
Needed to remove IndexMap/IndexSet elements while iterating over it.
Co-authored-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
332: Export Iter from IndexSet and IndexMap r=korken89 a=jeandudey
Exports the `Iter` types for `IndexSet` and `IndexMap`.
My use case is having a trait generic over a `BTreeSet` and `IndexSet` which has a `type Iter`.
Co-authored-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
331: Relax trait requirements on IndexMap/IndexSet. r=korken89 a=jeandudey
Some requirements are not necessary and the specification can be removed/simplified. This makes these types a bit more ergonomic when using them in a trait or function definition as not all traits need to be specified for some cases.
Co-authored-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>