You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Over the next year, we will build on the foundational work from 2025 to stabilize
the Sized trait hierarchy and continue nightly support for scalable vectors:
Stabilize the refined Sized trait hierarchy (without constness), unblocking extern types
Propose and implement const Sized to support scalable vectors
Achieve RFC acceptance for [RFC #3838] (Scalable Vectors)
Land SVE types and intrinsics in stdarch for nightly experimentation
Continue addressing stabilization blockers for SVE itself
Begin design work for supporting the Scalable Matrix Extension (SME)
The const Sized work (Part II of [RFC #3729]) is deferred to a future goal,
allowing us to deliver value sooner through the trait hierarchy stabilization.
This future work interacts with ongoing const generics
efforts, as const Sized depends on progress in const traits.
This issue is intended for status updates only.
For general questions or comments, please contact a goal owner or post in the Zulip topic.
Reacted by Nazar Mokrynskyi and Dmitry Mottl
Reacted by Laine Taffin Altman, Jan-Kristian Mathisen, Sayed Awad, dbck, Lilith River, Cathal and Rob Ede
An initial update on what we've been up to and some background:
This goal is submitted on behalf of the Rust team at Arm, but primarily worked on by myself (@davidtwco) and @JamieCunliffe. Anyone interested can always contact me for updates and I'll keep this issue up-to-date.
Through this work, we've discovered other changes to the language necessary to be able to support these types without special cases in the type system, which we're also working on (see below).
Jamie is still resolving feedback on this RFC and its implementation, and keeping it rebased. We hope that it can be landed experimentally now that there's a feasible path to remove the special cases in the type system (see below).
The next steps for this RFC and implementation are..
..to continue to respond to feedback on the RFC and implementation.
I've (@davidtwco) been working on Hierarchy of Sized traits rfcs#3729 which improves Rust's support for exotically sized types, and would allow scalable vectors to be represented in the type system without special cases.
We've had two design meetings with the language team about the RFC and had a broadly positive reception.
There is a non-strict dependency on const traits (Make trait methods callable in const contexts rfcs#3762) which has created uncertainty as to whether this RFC could be accepted without the specifics of const traits being nailed down.
I've been working on implementing the RFC: an initial implementation of the non-const traits has been completed and adding the const traits is in-progress.
The language team have indicated interest in seeing this land experimentally, but this will depend on whether the implementors of const traits are okay with this, as it would add to the work they need to do to make any syntactic changes requested by the language team in Make trait methods callable in const contexts rfcs#3762.
I'm continuing to respond to feedback on the RFC, but as this has largely trailed off, the next steps for this RFC are..
..for the language team to decide to accept, reject, or request further changes to the RFC.
A small update, we've opened a draft PR for the initial implementation of this - rust-lang/rust#137944. Otherwise, just continued to address feedback on the RFCs.
Since our last update, on the Scalable Vector half of the goal:
We've landed SVE intrinsics on nightly (initial SVE intrinsics stdarch#2071), enabling users to experiment with SVE for the first time. We've since been working on a bunch of follow-ups:
We had a session at the All Hands, primarily with t-libs, on the naming of the traits in the Sized Hierarchy proposal and believe we've come to some early consensus on Sized, MetadataSized and MaybeSized
We had a session at the All Hands and a follow-up call with @lcnr and @yoshuawuyts to understand the migration strategy for the Sized Hierarchy traits and new default auto traits, and how we could work together with the other ongoing project goals
We're going to start implementing the FCW-approach so we can start understanding what challenges the implementation side of that work will have
We're aware of LLVM ICEs that can be triggered when using SVE, which we'll focus on looking into in the next month or two
On the Sized Hierarchy half of the goal:
@lqd has continued working on an implementation of the FCW that we plan for the migration
We concluded that there wouldn't be any major issues with adding a contextual only keyword, just the usual edition churn, once we've confirmed that's what t-lang want, we can go ahead with it
@lqd continues working on the FCW for migration, but with the stabilisation of Polonius on nightly ( 🎉 ), we've not made as much progress here as planned
We've not made much progress discussing syntax and naming with lang due to holidays/relocations/conferences/etc. I expect more progress on this front by the next update.
We had a constructive meeting with @nikomatsakis in our regular sync where we agreed on a path forward for the open syntax/naming questions from lang, which we'll update our RFC with (perhaps once we know more about the migration part from the FCW work) and the implementation with
Activity
nikomatsakis commentedon Feb 18, 2025
This issue is intended for status updates only.
For general questions or comments, please contact the owner(s) directly.
davidtwco commentedon Feb 19, 2025
An initial update on what we've been up to and some background:
davidtwco commentedon Mar 3, 2025
A small update, we've opened a draft PR for the initial implementation of this - rust-lang/rust#137944. Otherwise, just continued to address feedback on the RFCs.
35 remaining items
[-]SVE and SME on AArch64[/-][+]Sized Hierarchy and Scalable Vectors[/+]tomassedovic commentedon May 5, 2026
This is a continuing project goal, and the updates below this comment will be for the new period 2026
davidtwco commentedon Jun 16, 2026
Since our last update, on the Scalable Vector half of the goal:
cfgto ensure little endian for SVE stdarch#2145)svpfalseintrinsic emit apfalseintrinsic - either adding a compiler intrinsic for that (Create asve_zeroinitializercompiler intrinsic rust#157110) or usingmem::zeroedintrinsic-testsupport for SVE in intrinsic-test: sve support stdarch#2160arm::argumentmodule stdarch#2127, intrinsic-test: refactorpopulate_randomand related code stdarch#2126, updatearm_intrinsics.jsonforsvsetandsvgetstdarch#2162, intrinsic-test: fwd args inintrinsic-test.shstdarch#2164 and core_arch: redefinesvrev,svzipandsvuzpstdarch#2163)On the Sized Hierarchy half of the goal:
onlykeyword (crater: contextual implementation ofonlytrait bound modifier rust#157696)Sized,MetadataSizedandMaybeSizedclippy::needless-maybe-sizedinto rustc rust#145924)We plan to update the RFC to reflect all of the above once we've made a little bit more progress.
davidtwco commentedon Jul 15, 2026
Since our last update, on the Scalable Vector half of the goal:
-O0rust#158088vscalerust#158253arm_intrinsics.jsonforsvsetandsvgetstdarch#2162svrev,svzipandsvuzpstdarch#2163intrinsic-test.shstdarch#2164SupportedArchitecturestdarch#2170concatln!and redundant newlines stdarch#2171-O0rust#158088On the Sized Hierarchy half of the goal:
onlykeyword, just the usual edition churn, once we've confirmed that's what t-lang want, we can go ahead with itdavidtwco commentedon Sep 3, 2026
Since our last update, on the Scalable Vector half of the goal:
-O0" rust#160558 and sve: re-enablesveorvtesting after LLVM upgrade stdarch#2204 to remove a workaround and enable more testing respectivelyOn the Sized Hierarchy half of the goal:
davidtwco commentedon Oct 15, 2026
Since our last update, on the Scalable Vector half of the goal:
f16bSVE vectors and intrinsics (see Tracking Issue for f16b rust#160630 forf16b)And on the Sized Hierarchy half of the goal: