[PATCH v2 0/7] Additional methods for Vec

Alice Ryhl posted 7 patches 9 months ago
There is a newer version of this series
rust/kernel/alloc/kvec.rs | 202 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 202 insertions(+)
[PATCH v2 0/7] Additional methods for Vec
Posted by Alice Ryhl 9 months ago
This adds various Vec methods. Some of them are needed by Rust Binder,
and others are needed in other places. Each commit explains where it is
needed.

I'm not sure what we concluded on the set_len / dec_len changes, so I
don't depend on that series for now.

This series is based on top of Vec::truncate from
https://lore.kernel.org/rust-for-linux/20250316111644.154602-1-andrewjballance@gmail.com/

Signed-off-by: Alice Ryhl <aliceryhl@google.com>
---
Changes in v2:
- Add two more methods that I needed.
- Introduce some uses of set_len.
- Add example to retain.
- Simplify pop.
- Adjust 11 to 10 in push_within_capacity example.
- Link to v1: https://lore.kernel.org/r/20250320-vec-methods-v1-0-7dff5cf25fe8@google.com

---
Alice Ryhl (7):
      rust: alloc: add Vec::clear
      rust: alloc: add Vec::pop
      rust: alloc: add Vec::push_within_capacity
      rust: alloc: add Vec::drain_all
      rust: alloc: add Vec::retain
      rust: alloc: add Vec::remove
      rust: alloc: add Vec::insert_within_capacity

 rust/kernel/alloc/kvec.rs | 202 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 202 insertions(+)
---
base-commit: a337a03281efc4553191b432d757d4c04884bf4c
change-id: 20250320-vec-methods-adfa41e55311

Best regards,
-- 
Alice Ryhl <aliceryhl@google.com>
Re: [PATCH v2 0/7] Additional methods for Vec
Posted by Alice Ryhl 9 months ago
On Fri, Mar 21, 2025 at 12:09:55PM +0000, Alice Ryhl wrote:
> This adds various Vec methods. Some of them are needed by Rust Binder,
> and others are needed in other places. Each commit explains where it is
> needed.
> 
> I'm not sure what we concluded on the set_len / dec_len changes, so I
> don't depend on that series for now.
> 
> This series is based on top of Vec::truncate from
> https://lore.kernel.org/rust-for-linux/20250316111644.154602-1-andrewjballance@gmail.com/
> 
> Signed-off-by: Alice Ryhl <aliceryhl@google.com>

Oops, this doesn't compile. Looks like I've already gone on vacation
mentally. Sorry guys!

Alice
Re: [PATCH v2 0/7] Additional methods for Vec
Posted by Tamir Duberstein 9 months ago
On Fri, Mar 21, 2025 at 8:10 AM Alice Ryhl <aliceryhl@google.com> wrote:
>
> This adds various Vec methods. Some of them are needed by Rust Binder,
> and others are needed in other places. Each commit explains where it is
> needed.
>
> I'm not sure what we concluded on the set_len / dec_len changes, so I
> don't depend on that series for now.
>
> This series is based on top of Vec::truncate from
> https://lore.kernel.org/rust-for-linux/20250316111644.154602-1-andrewjballance@gmail.com/
>
> Signed-off-by: Alice Ryhl <aliceryhl@google.com>
> ---
> Changes in v2:
> - Add two more methods that I needed.
> - Introduce some uses of set_len.
> - Add example to retain.
> - Simplify pop.
> - Adjust 11 to 10 in push_within_capacity example.
> - Link to v1: https://lore.kernel.org/r/20250320-vec-methods-v1-0-7dff5cf25fe8@google.com
>
> ---
> Alice Ryhl (7):
>       rust: alloc: add Vec::clear
>       rust: alloc: add Vec::pop
>       rust: alloc: add Vec::push_within_capacity
>       rust: alloc: add Vec::drain_all
>       rust: alloc: add Vec::retain
>       rust: alloc: add Vec::remove
>       rust: alloc: add Vec::insert_within_capacity
>
>  rust/kernel/alloc/kvec.rs | 202 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 202 insertions(+)
> ---
> base-commit: a337a03281efc4553191b432d757d4c04884bf4c
> change-id: 20250320-vec-methods-adfa41e55311

I think this doesn't specify the dependencies properly. The
base-commit looks to be
https://lore.kernel.org/all/20250316111644.154602-3-andrewjballance@gmail.com/
locally applied. This prevents `b4 shazam` from working with this
series.
Re: [PATCH v2 0/7] Additional methods for Vec
Posted by Danilo Krummrich 9 months ago
On Fri, Mar 21, 2025 at 12:09:55PM +0000, Alice Ryhl wrote:
> This adds various Vec methods. Some of them are needed by Rust Binder,
> and others are needed in other places. Each commit explains where it is
> needed.
> 
> I'm not sure what we concluded on the set_len / dec_len changes, so I
> don't depend on that series for now.

So far I see no reason to assume otherwise, so it probably makes sense to
rebase. Unless Tamir is fine to rebase his changes onto this series.

> 
> This series is based on top of Vec::truncate from
> https://lore.kernel.org/rust-for-linux/20250316111644.154602-1-andrewjballance@gmail.com/
> 
> Signed-off-by: Alice Ryhl <aliceryhl@google.com>
> ---
> Changes in v2:
> - Add two more methods that I needed.
> - Introduce some uses of set_len.

I think the added Vec::remove() modifies self.len directly.

> - Add example to retain.
> - Simplify pop.
> - Adjust 11 to 10 in push_within_capacity example.
> - Link to v1: https://lore.kernel.org/r/20250320-vec-methods-v1-0-7dff5cf25fe8@google.com
> 
> ---
> Alice Ryhl (7):
>       rust: alloc: add Vec::clear
>       rust: alloc: add Vec::pop
>       rust: alloc: add Vec::push_within_capacity
>       rust: alloc: add Vec::drain_all
>       rust: alloc: add Vec::retain
>       rust: alloc: add Vec::remove
>       rust: alloc: add Vec::insert_within_capacity
> 
>  rust/kernel/alloc/kvec.rs | 202 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 202 insertions(+)
> ---
> base-commit: a337a03281efc4553191b432d757d4c04884bf4c
> change-id: 20250320-vec-methods-adfa41e55311
> 
> Best regards,
> -- 
> Alice Ryhl <aliceryhl@google.com>
>
Re: [PATCH v2 0/7] Additional methods for Vec
Posted by Benno Lossin 9 months ago
On Fri Mar 21, 2025 at 1:25 PM CET, Danilo Krummrich wrote:
> On Fri, Mar 21, 2025 at 12:09:55PM +0000, Alice Ryhl wrote:
>> This adds various Vec methods. Some of them are needed by Rust Binder,
>> and others are needed in other places. Each commit explains where it is
>> needed.
>> 
>> I'm not sure what we concluded on the set_len / dec_len changes, so I
>> don't depend on that series for now.
>
> So far I see no reason to assume otherwise, so it probably makes sense to
> rebase. Unless Tamir is fine to rebase his changes onto this series.

I haven't yet taken a look at the reworked version of dec_len, so I'd
wait until we have finished discussion on that.

---
Cheers,
Benno
Re: [PATCH v2 0/7] Additional methods for Vec
Posted by Danilo Krummrich 9 months ago
On Fri, Mar 21, 2025 at 01:10:43PM +0000, Benno Lossin wrote:
> On Fri Mar 21, 2025 at 1:25 PM CET, Danilo Krummrich wrote:
> > On Fri, Mar 21, 2025 at 12:09:55PM +0000, Alice Ryhl wrote:
> >> This adds various Vec methods. Some of them are needed by Rust Binder,
> >> and others are needed in other places. Each commit explains where it is
> >> needed.
> >> 
> >> I'm not sure what we concluded on the set_len / dec_len changes, so I
> >> don't depend on that series for now.
> >
> > So far I see no reason to assume otherwise, so it probably makes sense to
> > rebase. Unless Tamir is fine to rebase his changes onto this series.
> 
> I haven't yet taken a look at the reworked version of dec_len, so I'd
> wait until we have finished discussion on that.

What I mean is, everything looks like I'll pick them up eventually, so it makes
sense to base a subsequent version of this series onto Tramir's (even if the
current one of dec_len() is not the final one).