Some exciting PRs landing this week. First, nrc’s first HIR PR, which itself doesn’t do much, but hopefully is a modest starting point for a stable AST API and so forth. Second, the MIR PR by yours truly looks likely to land, if I can find the time to fix a lingering issues on Windows. Third, a small tweak to the trait matching code by arielb1 that yields a nice little performance improvement.
It’s been a busy week this week! First off, we accepted a number of RFCs:
RFC #953 – overloaded
- RFC #1135 – raw fat pointer comparisons
- RFC #1192 – inclusive ranges
- RFC #1229 – overflow in constant evaluation
RFC #1234 –
We also moved a number of RFCs to final comment period:
- RFC #1199 – SIMD groundwork, which describes a flexible set of intrinsics that enable SIMD computation. These intrinsics are not intended to be used directly; rather, they are meant to be a foundation for third-party packages. See also Huon’s excellent blog post on the topic.
- RFC #1224 – RFC process, which helps to clarify when an RFC is needed.
- RFC #1237 – clarify operator behavior in extreme conditions, which amends the overflow RFC with some more specifics documenting various bits of the implementation.
- RFC #1238 – nonparametric dropck, which reverts some of the more subtle aspects of the current dropck rules, helping to restore soundness and pave the way for specialization.
RFC #1240 – creating
#[repr(packed)]structs should be unsafe, as they can violate alignment requirements and cause crashes.
We didn’t hold a triage meeting this week so no report for now, but remember that FCP for library issues will be closing next week and we will discuss this at the next triage meeting.
Over the past month or so since our last report there have been some excellent tooling updates, I’ll try to list a bunch below but if any are left out please let me know and I’ll be sure to add them!
- Custom allocators have landed, allowing projects to customize precisely which allocator is in use for the compiled binary. This also affects static and dynamic libraries which now use the system allocator by default (Rust binaries continue to use jemalloc by default).
- Our bundled version of Hoedown was upgraded to fix a bug where you
couldn’t have a
|character in a table cell.
- The standard library now compiles and passes many tests on a
- New snapshots for DragonFly were registered to allow bootstrapping the platform again.
- The initial pass of the HIR has landed, paving the way for future tooling using the compiler!
- rustfmt is being used on a few modules in the compiler to test it out.
- crates.io now supports GitHub teams for specifying those who can publish a crate.
--manifest-pathoption to some Cargo subcommands has been made more consistent in its behavior.
cargo updatenow prints what was updated.