Impl get_size::GetSize (behind feature flag) (v1 branch)#335
Impl get_size::GetSize (behind feature flag) (v1 branch)#335
Conversation
src/tests.rs
Outdated
| assert_eq!(a, SmallVec::<[i32; 3]>::from_slice(&[1i32, 3, 5, 6, 7, 8])); | ||
| } | ||
|
|
||
| #[cfg(feature = "get-size")] |
There was a problem hiding this comment.
It looks like this test is failing when both the "get-size" and "union" features are enabled. You can reproduce this failure by running cargo test --features get-size,union.
The test will also fail on non-64-bit platforms. You can fix both issues by changing this line to something like
#[cfg(all(feature = "get-size", target_pointer_with = "64", not(feature = "union")))]There was a problem hiding this comment.
👍 Fixed. & new branch (w. clean history) pushed. I've also added some tests for when the union feature is active.
Shows memory usage of the struct cf. issue servo#331
40460fc to
b6b55c0
Compare
|
Thanks! Published as smallvec 1.13.0. |
|
Unfortunately, this has a bug. a [dependencies]
get-size = { version = "0.1.4", features = ["derive"] }
smallvec = { version = "1.13.0", features = ["get-size"] }will fail to compile with: However these dependencies works: [dependencies]
get-size = { version = "0.1.4", features = ["derive"] }
smallvec = { git = "https://github.com/servo/rust-smallvec.git", rev="v1.13.0", features = ["get-size"] }😖😖 But the |
|
Hmm, that's annoying. As a workaround you can do this: [dependencies]
get-size = "0.1.4"
get-size-derive = "0.1"
smallvec = { version = "1.13.0", features = ["get-size"] }and replace #[derive(get_size_derive::GetSize)]but things will still break if you have dependencies outside of your control that enable the Perhaps it would be better to remove these impls from the
Using a git dependency breaks the cycle because Cargo considers it a different crate than the crates.io dependency, so it ends up building two different copies of the |
|
I have reverted this change and yanked version 1.13.0 for now, until we figure out the best solution. Sorry about this. :( |
[](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [smallvec](https://togithub.com/servo/rust-smallvec) | workspace.dependencies | minor | `1.11.1` -> `1.13.2` | --- ### Release Notes <details> <summary>servo/rust-smallvec (smallvec)</summary> ### [`v1.13.2`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.13.2) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.13.1...v1.13.2) #### What's Changed - Add more tests for UB by [@​workingjubilee](https://togithub.com/workingjubilee) in [https://github.com/servo/rust-smallvec/pull/346](https://togithub.com/servo/rust-smallvec/pull/346) - Fix UB on out-of-bounds insert() by [@​mbrubeck](https://togithub.com/mbrubeck) in [https://github.com/servo/rust-smallvec/pull/345](https://togithub.com/servo/rust-smallvec/pull/345) **Full Changelog**: servo/rust-smallvec@v1.13.1...v1.13.2 ### [`v1.13.1`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.13.1) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.13.0...v1.13.1) - Remove the optional `get-size` feature, to avoid a cyclic dependency ([#​335](https://togithub.com/servo/rust-smallvec/issues/335)). **Full Changelog**: servo/rust-smallvec@v1.13.0...v1.13.1 ### [`v1.13.0`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.13.0) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.12.0...v1.13.0) #### What's Changed - Impl get_size::GetSize (behind feature flag) by [@​amandasaurus](https://togithub.com/amandasaurus) in [https://github.com/servo/rust-smallvec/pull/335](https://togithub.com/servo/rust-smallvec/pull/335) **Full Changelog**: servo/rust-smallvec@v1.12.0...v1.13.0 ### [`v1.12.0`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.12.0) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.11.2...v1.12.0) #### What's Changed - Add `from_const_with_len_unchecked` by [@​Expyron](https://togithub.com/Expyron) in [https://github.com/servo/rust-smallvec/pull/329](https://togithub.com/servo/rust-smallvec/pull/329) #### New Contributors - [@​Expyron](https://togithub.com/Expyron) made their first contribution in [https://github.com/servo/rust-smallvec/pull/329](https://togithub.com/servo/rust-smallvec/pull/329) **Full Changelog**: servo/rust-smallvec@v1.11.2...v1.12.0 ### [`v1.11.2`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.11.2) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.11.1...v1.11.2) #### What's Changed - Automated testing improvements by [@​waywardmonkeys](https://togithub.com/waywardmonkeys) in [https://github.com/servo/rust-smallvec/pull/322](https://togithub.com/servo/rust-smallvec/pull/322) and [https://github.com/servo/rust-smallvec/pull/326](https://togithub.com/servo/rust-smallvec/pull/326) - fix: don't special-case `doc` for `feature = "const_generics"` by [@​mkroening](https://togithub.com/mkroening) in [https://github.com/servo/rust-smallvec/pull/328](https://togithub.com/servo/rust-smallvec/pull/328) - Code cleanup by [@​emilio](https://togithub.com/emilio) in [https://github.com/servo/rust-smallvec/pull/316](https://togithub.com/servo/rust-smallvec/pull/316) and [@​waywardmonkeys](https://togithub.com/waywardmonkeys) in [https://github.com/servo/rust-smallvec/pull/323](https://togithub.com/servo/rust-smallvec/pull/323) - Minor tweaks to doc formatting. by [@​waywardmonkeys](https://togithub.com/waywardmonkeys) in [https://github.com/servo/rust-smallvec/pull/318](https://togithub.com/servo/rust-smallvec/pull/318) #### New Contributors - [@​mkroening](https://togithub.com/mkroening) made their first contribution in [https://github.com/servo/rust-smallvec/pull/328](https://togithub.com/servo/rust-smallvec/pull/328) **Full Changelog**: servo/rust-smallvec@v1.11.1...v1.11.2 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzguMCIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [smallvec](https://togithub.com/servo/rust-smallvec) | workspace.dependencies | minor | `1.11.1` -> `1.13.2` | --- ### Release Notes <details> <summary>servo/rust-smallvec (smallvec)</summary> ### [`v1.13.2`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.13.2) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.13.1...v1.13.2) #### What's Changed - Add more tests for UB by [@&zed-industries#8203;workingjubilee](https://togithub.com/workingjubilee) in [https://github.com/servo/rust-smallvec/pull/346](https://togithub.com/servo/rust-smallvec/pull/346) - Fix UB on out-of-bounds insert() by [@&zed-industries#8203;mbrubeck](https://togithub.com/mbrubeck) in [https://github.com/servo/rust-smallvec/pull/345](https://togithub.com/servo/rust-smallvec/pull/345) **Full Changelog**: servo/rust-smallvec@v1.13.1...v1.13.2 ### [`v1.13.1`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.13.1) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.13.0...v1.13.1) - Remove the optional `get-size` feature, to avoid a cyclic dependency ([#&zed-industries#8203;335](https://togithub.com/servo/rust-smallvec/issues/335)). **Full Changelog**: servo/rust-smallvec@v1.13.0...v1.13.1 ### [`v1.13.0`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.13.0) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.12.0...v1.13.0) #### What's Changed - Impl get_size::GetSize (behind feature flag) by [@&zed-industries#8203;amandasaurus](https://togithub.com/amandasaurus) in [https://github.com/servo/rust-smallvec/pull/335](https://togithub.com/servo/rust-smallvec/pull/335) **Full Changelog**: servo/rust-smallvec@v1.12.0...v1.13.0 ### [`v1.12.0`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.12.0) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.11.2...v1.12.0) #### What's Changed - Add `from_const_with_len_unchecked` by [@&zed-industries#8203;Expyron](https://togithub.com/Expyron) in [https://github.com/servo/rust-smallvec/pull/329](https://togithub.com/servo/rust-smallvec/pull/329) #### New Contributors - [@&zed-industries#8203;Expyron](https://togithub.com/Expyron) made their first contribution in [https://github.com/servo/rust-smallvec/pull/329](https://togithub.com/servo/rust-smallvec/pull/329) **Full Changelog**: servo/rust-smallvec@v1.11.2...v1.12.0 ### [`v1.11.2`](https://togithub.com/servo/rust-smallvec/releases/tag/v1.11.2) [Compare Source](https://togithub.com/servo/rust-smallvec/compare/v1.11.1...v1.11.2) #### What's Changed - Automated testing improvements by [@&zed-industries#8203;waywardmonkeys](https://togithub.com/waywardmonkeys) in [https://github.com/servo/rust-smallvec/pull/322](https://togithub.com/servo/rust-smallvec/pull/322) and [https://github.com/servo/rust-smallvec/pull/326](https://togithub.com/servo/rust-smallvec/pull/326) - fix: don't special-case `doc` for `feature = "const_generics"` by [@&zed-industries#8203;mkroening](https://togithub.com/mkroening) in [https://github.com/servo/rust-smallvec/pull/328](https://togithub.com/servo/rust-smallvec/pull/328) - Code cleanup by [@&zed-industries#8203;emilio](https://togithub.com/emilio) in [https://github.com/servo/rust-smallvec/pull/316](https://togithub.com/servo/rust-smallvec/pull/316) and [@&zed-industries#8203;waywardmonkeys](https://togithub.com/waywardmonkeys) in [https://github.com/servo/rust-smallvec/pull/323](https://togithub.com/servo/rust-smallvec/pull/323) - Minor tweaks to doc formatting. by [@&zed-industries#8203;waywardmonkeys](https://togithub.com/waywardmonkeys) in [https://github.com/servo/rust-smallvec/pull/318](https://togithub.com/servo/rust-smallvec/pull/318) #### New Contributors - [@&zed-industries#8203;mkroening](https://togithub.com/mkroening) made their first contribution in [https://github.com/servo/rust-smallvec/pull/328](https://togithub.com/servo/rust-smallvec/pull/328) **Full Changelog**: servo/rust-smallvec@v1.11.1...v1.11.2 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzguMCIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Shows memory usage of the struct
cf. issue #331
This includes unittests, and I have briefly used this in real programmes successfully.