All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Benno Lossin" <lossin@kernel.org>
To: "Tamir Duberstein" <tamird@gmail.com>
Cc: "Gary Guo" <gary@garyguo.net>, "Miguel Ojeda" <ojeda@kernel.org>,
	"Boqun Feng" <boqun.feng@gmail.com>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Andreas Hindborg" <a.hindborg@kernel.org>,
	"Alice Ryhl" <aliceryhl@google.com>,
	"Trevor Gross" <tmgross@umich.edu>,
	"Danilo Krummrich" <dakr@kernel.org>,
	"Fiona Behrens" <me@kloenk.dev>,
	"Christian Schrefl" <chrisi.schrefl@gmail.com>,
	"Alban Kurti" <kurti@invicto.ai>,
	linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org
Subject: Re: [PATCH v3 09/15] rust: pin-init: rewrite the initializer macros using `syn`
Date: Fri, 16 Jan 2026 17:37:29 +0100	[thread overview]
Message-ID: <DFQ5STPL7L5L.2HEHEF8VDFFP9@kernel.org> (raw)
In-Reply-To: <CAJ-ks9mcwoSfRwBhvZTDkQk=Rt+YPWtfK_6rDqnkSb2mi7Ok-g@mail.gmail.com>

On Fri Jan 16, 2026 at 4:39 PM CET, Tamir Duberstein wrote:
> On Fri, Jan 16, 2026 at 4:28 AM Benno Lossin <lossin@kernel.org> wrote:
>>
>> On Fri Jan 16, 2026 at 1:19 AM CET, Tamir Duberstein wrote:
>> > On Thu, Jan 15, 2026 at 5:43 PM Benno Lossin <lossin@kernel.org> wrote:
>> >>
>> >> On Thu Jan 15, 2026 at 10:45 PM CET, Tamir Duberstein wrote:
>> >> > On Wed, Jan 14, 2026 at 1:20 PM Benno Lossin <lossin@kernel.org> wrote:
>> >> >>
>> >> >> Rewrite the initializer macros `[pin_]init!` using `syn`. No functional
>> >> >> changes intended aside from improved error messages on syntactic and
>> >> >> semantical errors. For example if one forgets to use `<-` with an
>> >> >> initializer (and instead uses `:`):
>> >> >>
>> >> >> <snip>
>> >> >>
>> >> >> Tested-by: Andreas Hindborg <a.hindborg@kernel.org>
>> >> >> Signed-off-by: Benno Lossin <lossin@kernel.org>
>> >> >> ---
>> >> >>
>> >> >> <snip>
>> >> >>
>> >> >> -#[cfg(kernel)]
>> >> >> -pub use ::macros::paste;
>> >> >> -#[cfg(not(kernel))]
>> >> >> -pub use ::paste::paste;
>> >> >
>> >> > Now that `cfg(kernel)` is gone, can we also remove it from `rust/Makefile`
>> >> > and `scripts/generate_rust_analyzer.py`? That is already done for
>> >> > pin-init in patch 3 of this series:
>> >> > https://lore.kernel.org/all/20260114181934.1782470-4-lossin@kernel.org/.
>> >>
>> >> I'm still using `cfg(kernel)` in `src/lib.rs` for linking to the std
>> >> Box and Arc types.
>> >
>> > Are you sure? I'm not seeing it. It looks like the crate is no_std
>> > unless the std feature is activated and no features are activated in
>> > the kernel.
>>
>> Yes:
>>
>>     $ rg 'cfg.*kernel'
>>
>>     src/lib.rs
>>     260:#![cfg_attr(not(kernel), doc = "[`Arc<T>`]: alloc::alloc::sync::Arc")]
>>     261:#![cfg_attr(not(kernel), doc = "[`Box<T>`]: alloc::alloc::boxed::Box")]
>>     921:#[cfg_attr(not(kernel), doc = "[`Arc<T>`]: alloc::alloc::sync::Arc")]
>>     922:#[cfg_attr(not(kernel), doc = "[`Box<T>`]: alloc::alloc::boxed::Box")]
>>     1020:#[cfg_attr(not(kernel), doc = "[`Arc<T>`]: alloc::alloc::sync::Arc")]
>>     1021:#[cfg_attr(not(kernel), doc = "[`Box<T>`]: alloc::alloc::boxed::Box")]
>>
>> >> Also I don't want to have to reintroduce all that infrastructure when I
>> >> inevitably have to add new kernel workarounds.
>> >
>> > Then why remove it for pin-init?
>>
>> I don't understand, what is removed where? In patch 3 the `--cfg kernel`
>> is kept in all locations.
>
> You're right, I must've misread. It's fine to keep & sorry for the noise.

Don't worry, I appreciate you taking a look :)

Cheers,
Benno

  reply	other threads:[~2026-01-16 16:37 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-14 18:18 [PATCH v3 00/15] `syn` rewrite of pin-init Benno Lossin
2026-01-14 18:18 ` [PATCH v3 01/15] rust: pin-init: remove `try_` versions of the initializer macros Benno Lossin
2026-01-14 18:18 ` [PATCH v3 02/15] rust: pin-init: allow the crate to refer to itself as `pin-init` in doc tests Benno Lossin
2026-01-14 18:18 ` [PATCH v3 03/15] rust: pin-init: add `syn` dependency and remove `proc-macro[2]` and `quote` workarounds Benno Lossin
2026-01-14 18:18 ` [PATCH v3 04/15] rust: pin-init: internal: add utility API for syn error handling Benno Lossin
2026-01-14 18:26   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 05/15] rust: pin-init: rewrite `derive(Zeroable)` and `derive(MaybeZeroable)` using `syn` Benno Lossin
2026-01-14 18:29   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 06/15] rust: pin-init: rewrite the `#[pinned_drop]` attribute macro " Benno Lossin
2026-01-14 18:34   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 07/15] rust: pin-init: rewrite `#[pin_data]` " Benno Lossin
2026-01-14 18:47   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 08/15] rust: pin-init: add `?Sized` bounds to traits in `#[pin_data]` macro Benno Lossin
2026-01-14 18:47   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 09/15] rust: pin-init: rewrite the initializer macros using `syn` Benno Lossin
2026-01-14 18:51   ` Gary Guo
2026-01-15 21:45   ` Tamir Duberstein
2026-01-15 22:43     ` Benno Lossin
2026-01-16  0:19       ` Tamir Duberstein
2026-01-16  9:28         ` Benno Lossin
2026-01-16 15:39           ` Tamir Duberstein
2026-01-16 16:37             ` Benno Lossin [this message]
2026-01-14 18:18 ` [PATCH v3 10/15] rust: pin-init: add `#[default_error(<type>)]` attribute to initializer macros Benno Lossin
2026-01-14 18:53   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 11/15] rust: init: use `#[default_error(err)]` for the " Benno Lossin
2026-01-14 18:18 ` [PATCH v3 12/15] rust: pin-init: internal: init: add support for attributes on initializer fields Benno Lossin
2026-01-14 18:57   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 13/15] rust: pin-init: internal: init: add escape hatch for referencing initialized fields Benno Lossin
2026-01-14 18:58   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 14/15] rust: pin-init: internal: init: simplify Zeroable safety check Benno Lossin
2026-01-14 18:58   ` Gary Guo
2026-01-14 18:18 ` [PATCH v3 15/15] MAINTAINERS: add Gary Guo to pin-init Benno Lossin

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=DFQ5STPL7L5L.2HEHEF8VDFFP9@kernel.org \
    --to=lossin@kernel.org \
    --cc=a.hindborg@kernel.org \
    --cc=aliceryhl@google.com \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=chrisi.schrefl@gmail.com \
    --cc=dakr@kernel.org \
    --cc=gary@garyguo.net \
    --cc=kurti@invicto.ai \
    --cc=linux-kernel@vger.kernel.org \
    --cc=me@kloenk.dev \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tamird@gmail.com \
    --cc=tmgross@umich.edu \
    /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.