> The vast majority of changes are due to our `alloc` fork being upgraded > at once. Ah this is annoying sometimes :/ > > There are two kinds of changes to be aware of: the ones coming from > upstream, which we should follow as closely as possible, and the updates > needed in our added fallible APIs to keep them matching the newer > infallible APIs coming from upstream. > > Instead of taking a look at the diff of this patch, an alternative > approach is reviewing a diff of the changes between upstream `alloc` and > the kernel's. This allows to easily inspect the kernel additions only, > especially to check if the fallible methods we already have still match > the infallible ones in the new version coming from upstream. > > Another approach is reviewing the changes introduced in the additions in > the kernel fork between the two versions. This is useful to spot > potentially unintended changes to our additions. > > To apply these approaches, one may follow steps similar to the following > to generate a pair of patches that show the differences between upstream > Rust and the kernel (for the subset of `alloc` we use) before and after > applying this patch: > > # Get the difference with respect to the old version. > git -C rust checkout $(linux/scripts/min-tool-version.sh rustc) > git -C linux ls-tree -r --name-only HEAD -- rust/alloc | > cut -d/ -f3- | > grep -Fv README.md | > xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH > git -C linux diff --patch-with-stat --summary -R > old.patch > git -C linux restore rust/alloc > > # Apply this patch. > git -C linux am rust-upgrade.patch > > # Get the difference with respect to the new version. > git -C rust checkout $(linux/scripts/min-tool-version.sh rustc) > git -C linux ls-tree -r --name-only HEAD -- rust/alloc | > cut -d/ -f3- | > grep -Fv README.md | > xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH > git -C linux diff --patch-with-stat --summary -R > new.patch > git -C linux restore rust/alloc > > Now one may check the `new.patch` to take a look at the additions (first > approach) or at the difference between those two patches (second > approach). For the latter, a side-by-side tool is recommended. > > Link: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1730-2023-10-05 [1] > Link: https://rust-for-linux.com/rust-version-policy [2] > Link: https://github.com/Rust-for-Linux/linux/issues/2 [3] > Link: https://github.com/rust-lang/compiler-team/issues/596 [4] > Signed-off-by: Miguel Ojeda <ojeda@xxxxxxxxxx> > --- > Documentation/process/changes.rst | 2 +- > rust/alloc/alloc.rs | 22 -------------- > rust/alloc/boxed.rs | 48 ++++++++++++++++++++----------- > rust/alloc/lib.rs | 5 ++-- > rust/alloc/raw_vec.rs | 30 ++++++++++++------- > rust/alloc/vec/mod.rs | 4 +-- > rust/alloc/vec/spec_extend.rs | 8 +++--- > rust/compiler_builtins.rs | 1 + > scripts/min-tool-version.sh | 2 +- > 9 files changed, 63 insertions(+), 59 deletions(-) > > diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst > index 731cc104c56f..bb96ca0f774b 100644 > --- a/Documentation/process/changes.rst Reviewed-by: Vincenzo Palazzo <vincenzopalazzodev@xxxxxxxxx>