From: ojeda@kernel.org
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Miguel Ojeda" <ojeda@kernel.org>,
"Wedson Almeida Filho" <wedsonaf@gmail.com>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] Rust for 6.2
Date: Sun, 11 Dec 2022 01:56:09 +0100 [thread overview]
Message-ID: <20221211005609.270457-1-ojeda@kernel.org> (raw)
From: Miguel Ojeda <ojeda@kernel.org>
Hi Linus,
This is the first Rust PR after the merge.
It contains a set of new functionality to start the upstreaming of
the rest of the pieces we had. There are no changes to the C side.
The commits have been in linux-next for a week, though most of the
code has been there for months. No conflicts expected.
Please pull for v6.2 -- thanks!
Cheers,
Miguel
The following changes since commit f0c4d9fc9cc9462659728d168387191387e903cc:
Linux 6.1-rc4 (2022-11-06 15:07:11 -0800)
are available in the Git repository at:
https://github.com/Rust-for-Linux/linux tags/rust-6.2
for you to fetch changes up to b9ecf9b9ac5969d7b7ea786ce5c76e24246df2c5:
rust: types: add `Opaque` type (2022-12-04 01:59:16 +0100)
----------------------------------------------------------------
Rust changes for v6.2
The first set of changes after the merge, the major ones being:
- String and formatting: new types `CString`, `CStr`, `BStr` and
`Formatter`; new macros `c_str!`, `b_str!` and `fmt!`.
- Errors: the rest of the error codes from `errno-base.h`, as well as
some `From` trait implementations for the `Error` type.
- Printing: the rest of the `pr_*!` levels and the continuation one
`pr_cont!`, as well as a new sample.
- `alloc` crate: new constructors `try_with_capacity()` and
`try_with_capacity_in()` for `RawVec` and `Vec`.
- Procedural macros: new macros `#[vtable]` and `concat_idents!`, as
well as better ergonomics for `module!` users.
- Asserting: new macros `static_assert!`, `build_error!` and
`build_assert!`, as well as a new crate `build_error` to support them.
- Vocabulary types: new types `Opaque` and `Either`.
- Debugging: new macro `dbg!`.
----------------------------------------------------------------
Björn Roy Baron (1):
rust: macros: add `concat_idents!` proc macro
Finn Behrens (1):
rust: error: declare errors using macro
Gary Guo (9):
rust: macros: add `#[vtable]` proc macro
rust: macros: take string literals in `module!`
rust: str: add `BStr` type
rust: str: add `b_str!` macro
rust: str: add `CStr` type
rust: str: implement several traits for `CStr`
rust: str: add `c_str!` macro
rust: add `build_error` crate
rust: build_assert: add `build_{error,assert}!` macros
Miguel Ojeda (7):
rust: prelude: split re-exports into groups
rust: print: add more `pr_*!` levels
rust: print: add `pr_cont!` macro
rust: samples: add `rust_print` example
rust: alloc: add `RawVec::try_with_capacity_in()` constructor
rust: alloc: add `Vec::try_with_capacity{,_in}()` constructors
rust: static_assert: add `static_assert!` macro
Milan Landaverde (1):
rust: str: add `CStr` unit tests
Niklas Mohrin (1):
rust: std_vendor: add `dbg!` macro based on `std`'s one
Viktor Garske (1):
rust: error: add codes from `errno-base.h`
Wedson Almeida Filho (7):
rust: error: add `From` implementations for `Error`
rust: prelude: add `error::code::*` constant items
rust: str: add `Formatter` type
rust: str: add `CString` type
rust: str: add `fmt!` macro
rust: types: add `Either` type
rust: types: add `Opaque` type
lib/Kconfig.debug | 16 ++
rust/Makefile | 22 +-
rust/alloc/raw_vec.rs | 33 ++-
rust/alloc/vec/mod.rs | 89 +++++++
rust/build_error.rs | 31 +++
rust/exports.c | 5 +
rust/kernel/build_assert.rs | 82 ++++++
rust/kernel/error.rs | 90 ++++++-
rust/kernel/lib.rs | 9 +
rust/kernel/prelude.rs | 20 +-
rust/kernel/print.rs | 214 +++++++++++++++-
rust/kernel/static_assert.rs | 34 +++
rust/kernel/std_vendor.rs | 163 ++++++++++++
rust/kernel/str.rs | 523 +++++++++++++++++++++++++++++++++++++-
rust/kernel/types.rs | 37 +++
rust/macros/concat_idents.rs | 23 ++
rust/macros/helpers.rs | 24 +-
rust/macros/lib.rs | 108 +++++++-
rust/macros/module.rs | 10 +-
rust/macros/vtable.rs | 95 +++++++
samples/rust/Kconfig | 10 +
samples/rust/Makefile | 1 +
samples/rust/rust_minimal.rs | 8 +-
samples/rust/rust_print.rs | 54 ++++
scripts/generate_rust_analyzer.py | 8 +-
25 files changed, 1667 insertions(+), 42 deletions(-)
create mode 100644 rust/build_error.rs
create mode 100644 rust/kernel/build_assert.rs
create mode 100644 rust/kernel/static_assert.rs
create mode 100644 rust/kernel/std_vendor.rs
create mode 100644 rust/kernel/types.rs
create mode 100644 rust/macros/concat_idents.rs
create mode 100644 rust/macros/vtable.rs
create mode 100644 samples/rust/rust_print.rs
next reply other threads:[~2022-12-11 1:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-11 0:56 ojeda [this message]
2022-12-13 1:18 ` [GIT PULL] Rust for 6.2 Linus Torvalds
2022-12-13 11:25 ` Miguel Ojeda
2022-12-13 1:39 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221211005609.270457-1-ojeda@kernel.org \
--to=ojeda@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=wedsonaf@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.