<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/tests/ui/transmutability/enums/repr/padding_differences.rs, branch master</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=master</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-08-27T14:05:54+00:00</updated>
<entry>
<title>safe transmute: Rename `BikeshedIntrinsicFrom` to `TransmuteFrom`</title>
<updated>2024-08-27T14:05:54+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2024-08-27T14:05:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1ad218f3af806c1f0c14e8b44656318b913a3906'/>
<id>urn:sha1:1ad218f3af806c1f0c14e8b44656318b913a3906</id>
<content type='text'>
As our implementation of MCP411 nears completion and we begin to
solicit testing, it's no longer reasonable to expect testers to
type or remember `BikeshedIntrinsicFrom`. The name degrades the
ease-of-reading of documentation, and the overall experience of
using compiler safe transmute.

Tentatively, we'll instead adopt `TransmuteFrom`.

This name seems to be the one most likely to be stabilized, after
discussion on Zulip [1]. We may want to revisit the ordering of
`Src` and `Dst` before stabilization, at which point we'd likely
consider `TransmuteInto` or `Transmute`.

[1] https://rust-lang.zulipchat.com/#narrow/stream/216762-project-safe-transmute/topic/What.20should.20.60BikeshedIntrinsicFrom.60.20be.20named.3F
</content>
</entry>
<entry>
<title>Compute transmutability from `rustc_target::abi::Layout`</title>
<updated>2024-04-08T15:36:52+00:00</updated>
<author>
<name>Jack Wrenn</name>
<email>jack@wrenn.fyi</email>
</author>
<published>2024-03-19T14:49:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3aa14e3b2e61739e8d0ec7883f9c185821ca5da2'/>
<id>urn:sha1:3aa14e3b2e61739e8d0ec7883f9c185821ca5da2</id>
<content type='text'>
In its first step of computing transmutability, `rustc_transmutability`
constructs a byte-level representation of type layout (`Tree`). Previously, this
representation was computed for ADTs by inspecting the ADT definition and
performing our own layout computations. This process was error-prone, verbose,
and limited our ability to analyze many types (particularly default-repr types).

In this PR, we instead construct `Tree`s from `rustc_target::abi::Layout`s. This
helps ensure that layout optimizations are reflected our analyses, and increases
the kinds of types we can now analyze, including:
- default repr ADTs
- transparent unions
- `UnsafeCell`-containing types

Overall, this PR expands the expressvity of `rustc_transmutability` to be much
closer to the transmutability analysis performed by miri. Future PRs will work
to close the remaining gaps (e.g., support for `Box`, raw pointers, `NonZero*`,
coroutines, etc.).
</content>
</entry>
</feed>
