530 Commits

Author SHA1 Message Date
Emil Fresk
7546c64e79
Merge pull request #266 from finnbear/feature/historybuf_ordered_iterator
Feature/historybuf `OldestOrdered` iterator
2022-01-17 08:11:52 +01:00
Finn Bear
4d0a160638
Merge branch 'master' into feature/historybuf_ordered_iterator 2022-01-15 23:34:01 -08:00
Finn Bear
60da0951f3 Changelog. 2022-01-15 23:32:03 -08:00
Finn Bear
55a1ec9ea3 Cleanup tests. 2022-01-15 16:58:10 -08:00
Finn Bear
4132b5115c Fix termination behavior and add comprehensive test cases. 2022-01-15 16:41:33 -08:00
Finn Bear
77adbab007 Fix panic if buffer was empty. 2022-01-15 15:48:05 -08:00
Emil Fresk
e33646c189 Add changelog enforcer 2022-01-10 08:27:52 +01:00
Emil Fresk
0eff6364fb
Merge pull request #254 from eivindbergem/master
Implemented sealed traits according to Rust API Guidelines
2022-01-10 08:27:02 +01:00
Emil Fresk
180db255c7
Merge pull request #261 from haata/zero_capacity_vec
Relax Vec bounds to allow for zero-length Vecs
2022-01-10 08:26:03 +01:00
Jacob Alexander
0b92953ef1 Adding is_empty and is_full tests for zero capacity 2021-12-29 12:01:45 -08:00
Jacob Alexander
bc2cd1be70 Relax Vec bounds to allow for zero-length Vecs
Use when building generated code where it's possible to have a zero
length array/vector (e.g. wire-format). See #252

- Added vec::tests::zero_capacity test
- Added sealed::greater_than_eq_0
2021-12-28 11:11:20 -08:00
Eivind Alexander Bergem
df0a0af884 Implemented sealed traits according to Rust API Guidelines 2021-12-16 16:16:30 +01:00
Emil Fresk
f3af76d607
Merge pull request #260 from japaric/fix-index-structs
Fix bounds in IndexMap and IndexSet, IndexSet::new() is now const
v0.7.9
2021-12-16 10:57:58 +01:00
Emil Fresk
318da23c43 Fix bounds in IndexMap and IndexSet, IndexSet::new() is now const 2021-12-16 10:37:23 +01:00
Emil Fresk
e3c536b3c2
Merge pull request #255 from robinkrahl/vec-try-from
Implement TryFrom<&[T]> for Vec<T, N>
2021-11-24 16:11:29 +01:00
Robin Krahl
a9756bd652
Implement TryFrom<&[T]> for Vec<T, N>
There already is the Vec::from_slice method that does the same, but
implementing the TryFrom trait makes it easier to write code that works
both with heapless::Vec and std::vec::Vec.
2021-11-23 12:54:55 +01:00
Donny Zimmanck
ae103535d3 Added doc string to the OrderedIter struct 2021-11-12 13:30:58 -08:00
Donny Zimmanck
8b320e64e7 Derive the clone trait for the OrderedIter making it easy for users to use an iterator on a History Buffer more than once. 2021-11-12 12:54:53 -08:00
Donny Zimmanck
6a8fa3a475 Expose the OrderedIterator for external use. 2021-11-12 11:37:14 -08:00
Donny Zimmanck
21a856d434 Added a ordered() method to the History Buffer which returns an iterator on the data that starts from the oldest data and stops at the last data entered. 2021-11-12 10:14:12 -08:00
Emil Fresk
f3175ee2f6
Merge pull request #251 from japaric/defmt-version-span
defmt version range
v0.7.8
2021-11-11 10:40:13 +01:00
Emil Fresk
cd754b7936 Support defmt version range (0.2 and 0.3) 2021-11-11 10:25:10 +01:00
Emil Fresk
8a77f3237f
Merge pull request #246 from Dirbaio/ci-miri
Run tests with MIRI in CI
2021-09-29 09:03:38 +02:00
Dario Nieuwenhuis
932760f3b7 Run tests with MIRI in CI 2021-09-24 23:48:36 +02:00
Emil Fresk
80cbe663f5
Merge pull request #244 from chemicstry/master
Fix MPMC size asserts
2021-09-22 21:14:31 +02:00
chemicstry
bd3cbaba61 Fix MPMC size asserts 2021-09-22 17:48:53 +03:00
Emil Fresk
1c1dd43e08 Preparing 0.7.7 release v0.7.7 2021-09-22 07:12:04 +02:00
Emil Fresk
23627b9dd0 Prepare v0.7.6 release v0.7.6 2021-09-21 17:43:21 +02:00
Emil Fresk
95f122a0d9
Merge pull request #241 from japaric/arc-thumbv6
Allow arc pool on thumbv6
2021-09-21 17:39:21 +02:00
Emil Fresk
751f24e928 Allow arc pool on thumbv6 2021-09-21 17:32:45 +02:00
Emil Fresk
3adc93a605
Merge pull request #242 from japaric/fix-miri
fix miri errors
2021-09-20 09:10:42 +02:00
Jorge Aparicio
8cf5a26347 use plain arithmetic instead of ptr::offset API
the offset from the anchor was computed used plain arithmetic
so to do the reverse (go from offset to a pointer) also use plain arithmetic

we were using the offset API for the reverse operation but miri doesn't like that: it consider the
pointer to be out of bounds wrt to the ANCHOR static variable
2021-09-15 11:08:39 +02:00
Jorge Aparicio
aa017a5606 fix ZST check in Pool::grow
Node<T> always has non-zero size; we want to check the size of the data T
2021-09-15 11:06:36 +02:00
Jorge Aparicio
0717a8c1ce avoid pointer arithmetic on pool::Box node when handling ZST 2021-09-15 11:05:28 +02:00
Emil Fresk
d3be154506
Merge pull request #240 from Dirbaio/miri-fixes
Miri fixes
2021-09-13 08:39:35 +02:00
Dario Nieuwenhuis
4c203532ba Ignore slow tests when running in miri.
There's a few tests that do millions of iterations. Miri is incredibly
slow and takes too long to run these (I gave up waiting after 5+ minutes),
so we ignore them when testing with miri.
2021-09-13 01:22:38 +02:00
Dario Nieuwenhuis
c98804daec deque: Fix miri error due to too small raw pointer borrow.
`&mut buffer[0]` only grants access to the first item, we need access
to the entire buffer.
2021-09-13 01:22:38 +02:00
Dario Nieuwenhuis
350e112db0 deque: fix miri error with raw-borrowing twice.
When you take a raw pointer, previous raw pointers are invalidated.
We get the pointer just once and use it twice.
2021-09-13 00:41:26 +02:00
Emil Fresk
0738b3cefc
Merge pull request #238 from japaric/arc-pool
add Arc pointer backed by a memory pool
2021-09-10 16:27:40 +02:00
Jorge Aparicio
6e8e26cc40 add grow_exact + docs 2021-09-10 16:16:58 +02:00
Jorge Aparicio
adee3a067d fix build for ARMv6-M 2021-09-10 13:16:43 +02:00
Jorge Aparicio
a4f33b4768 add Arc pointer backed by a memory pool 2021-09-10 12:56:16 +02:00
Emil Fresk
05c21c4b49
Merge pull request #237 from toku-sa-n/impl_debug_for_deque
feat: implement `Debug` for `Deque`
2021-09-05 08:55:02 +02:00
Hiroki Tokunaga
9c0c565178
feat: implement Debug for Deque 2021-09-05 15:44:30 +09:00
Emil Fresk
59bc89f297
Merge pull request #236 from japaric/lazy-init-anchor
CAS Pool x86_64: lazily initialized ANCHOR
2021-08-26 15:43:12 +02:00
Emil Fresk
d5e092575b
Merge pull request #235 from japaric/well-aligned-dangling-pointer
CAS Pool: make dangling Ptr well aligned
2021-08-26 15:42:49 +02:00
Jorge Aparicio
25b9b06d1c CAS Pool x86_64: lazily initialized ANCHOR
this reduces the chances of hitting the 32-bit address space issue on x86_64

instead of (always) using a static ANCHOR variable located in .bss we lazily initialize the ANCHOR
variable using the value passed to the first `Ptr::new` invocation. In practice, this means the very
first `Pool::grow` (on x86_64) call is guaranteed to work (use the given memory). Follow up `grow`
invocations are *more likely* to work (but not guaranteed) *if* all given memory comes from the
heap.

We still need an ANCHOR in .bss as a fallback because it's possible to allocate ZST on a pool
without calling `Pool::grow` (= the lazily init ANCHOR is never initialized *but* it can be read)
2021-08-26 14:17:43 +02:00
Jorge Aparicio
46d1361f72 offset can be zero 2021-08-26 13:57:01 +02:00
Jorge Aparicio
cfbc9a9ef7 also test larger alignment 2021-08-26 13:53:52 +02:00
Jorge Aparicio
959fc9b683 CAS Pool: make dangling Ptr well aligned
the old logic didn't consider the pointee's alignment when creating a dangling pointer

dangling pointers are used in pools of ZST (Zero Sized Types). the old logic resulted in these Boxed
ZST not being well aligned. the test added in this PR was failing
2021-08-26 13:14:34 +02:00