[Rd] Breaking Change in Rcomplex Layout?

Michael Milton ttm|gue|tt @end|ng |rom gm@||@com
Tue Apr 4 11:27:03 CEST 2023


I don't think an auto-generated name (along the lines of u or u2) for the
anonymous structs would be helpful here. You can see that bindgen is
already generating a placeholder name ("__bindgen_anon_1"). A meaningful
name might be nice instead, but I get the impression that isn't an option
here since that would break the C API.

Can I ask, would it make sense for us to hard code in R_LEGACY_RCOMPLEX so
that Rust can just ignore the union? Because as I understand the only
compiler that actually needs to "see" the union is gfortran, and if we
pretend it's still a struct in Rust everything should work as before, no?
Is this guaranteed to be a stable macro?

On Tue, Apr 4, 2023 at 5:50 PM Ivan Krylov <krylov.r00t using gmail.com> wrote:

> On Tue, 4 Apr 2023 09:31:33 +0200
> Tomas Kalibera <tomas.kalibera using gmail.com> wrote:
>
> > it also matters how Rust can handle anonymous nested structures, or
> > what is the right mapping of the involved C types to Rust
>
> It's worth mentioning that Rust's RFC 2102 [1] defines unnamed structs
> and unions for the purpose of C interoperability, but it's not yet
> implemented.
>
> Would it help Rust's bindgen (and, potentially, other C declaration
> parsers) if R could optionally give a name to the anonymous union
> member, like it's done in Windows API [2]?
>
> --
> Best regards,
> Ivan
>
> [1] https://github.com/rust-lang/rust/issues/49804
>
> [2] https://devblogs.microsoft.com/oldnewthing/20170907-00/?p=96956
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list