Status of SE-0283? (Tuples Conform to Equatable, Comparable, and Hashable)

Does anyone know the status of this proposal? From the breadcrumbs I found:

But I didn't see any discussion of next steps, nor has the proposal been updated to reflect its current status: swift-evolution/0283-tuples-are-equatable-comparable-hashable.md at 130066d2b8b30f110b3f753807432d346ac9ff06 · apple/swift-evolution · GitHub

7 Likes

CC @Alejandro

SE-0283 will expire in 8 weeks.

@stephencelis I think you’re looking at an older version of the proposal. The latest version says “Accepted” as the status - swift-evolution/0283-tuples-are-equatable-comparable-hashable.md at main · apple/swift-evolution · GitHub

The proposal is still accepted. When we attempted to integrate the implementation last, we ran into linkage issues with the backward-deployment compatibility libraries, as well as some issues with ptrauth integration. Unfortunately we haven't since had time to investigate those issues on our end to complete the integration, and concurrency work has saturated most of the core team's bandwidth. I would personally still like to see this get integrated sooner than later. Now that we've implemented availability for conformances, the backward compatibility part of the implementation could be separated out from the core implementation, allowing us to integrate that first and address backward deployment separately.

18 Likes

I wanted to write a reply in here, but figured it would be better suited in a compilerish topic thread here Implementation issues with SE-0283 (Tuples are EHC)

5 Likes

Sorry for the necropost, but this came up at work today: is the implementation of this SE still planned for investigation and reintegration?

6 Likes

And it came up again at work @tonyarnold - Fortunately with generic parameter packs in iOS 17+ you can use something like Composite.swift · GitHub

5 Likes

this might be little out of scope for this particular conversation but variadic generics have their own problems at the moment. you will get a crash if you access the key paths.

Good to know. Gotta love these half implemented language features.