Hello Swift Community,
During the review, the proposal changed in a number of ways, so you can find a changlog towards the end of the proposal.
The core team evaluated the new proposal and implementation of a generic-style spelling of the SIMD types, and believes that this fits best with the future direction of the language.
Some concern was expressed during the review and other discussions that the term
Vector had additional meaning in non-SIMD domains (as a synonym for a contiguous array, or as a mathematical term), and that e.g.
Vector4 was too general a name for a SIMD-specific type. Conversely, namespacing or prefixing these types would lead to overly verbose and noisy code. The core team felt that dropping the term
Vector in all names was just as clear. The resulting names are generally shorter, which is an nice benefit, and they now have a uniform SIMD prefix. In particular, this leaves the basic vector types as
SIMD4 (instead of
SIMDVector4). As a future direction, matrix types could be spelled as
Additionally, the team recommends dropping the underscores from the "implementation detail" types. While they are not important to users, only type implementors, the underscore should be reserved for API that only the core Swift libraries should use/implement. A future proposal for annotations to hide such implementation detail from code completion in inappropriate contexts would be welcomed.
Finally, a number of enhancements that could be made additively, such as arbitrary swizzling or testing of masks with
any, were deferred to later proposals.
Thank you to everyone who participated in the review!