Skip to content

rust-6.9

@ojeda ojeda tagged this 09 Mar 13:33
Another routine one in terms of features. We got two version upgrades
this time, but in terms of lines, 'alloc' changes are not very large.

Toolchain and infrastructure:

 - Upgrade to Rust 1.76.0.

   This time around, due to how the kernel and Rust schedules have
   aligned, there are two upgrades in fact. These allow us to remove two
   more unstable features ('const_maybe_uninit_zeroed' and
   'ptr_metadata') from the list, among other improvements.

 - Mark 'rustc' (and others) invocations as recursive, which fixes a new
   warning and prepares us for the future in case we eventually take
   advantage of the Make jobserver.

'kernel' crate:

 - Add the 'container_of!' macro.

 - Stop using the unstable 'ptr_metadata' feature by employing the now
   stable 'byte_sub' method to implement 'Arc::from_raw()'.

 - Add the 'time' module with a 'msecs_to_jiffies()' conversion function
   to begin with, to be used by Rust Binder.

 - Add 'notify_sync()' and 'wait_interruptible_timeout()' methods to
   'CondVar', to be used by Rust Binder.

 - Update integer types for 'CondVar'.

 - Rename 'wait_list' field to 'wait_queue_head' in 'CondVar'.

 - Implement 'Display' and 'Debug' for 'BStr'.

 - Add the 'try_from_foreign()' method to the 'ForeignOwnable' trait.

 - Add reexports for macros so that they can be used from the right
   module (in addition to the root).

 - A series of code documentation improvements, including adding
   intra-doc links, consistency improvements, typo fixes...

'macros' crate:

 - Place generated 'init_module()' function in '.init.text'.

Documentation:

 - Add documentation on Rust doctests and how they work.
Assets 2
Loading