Hi Swift Evolution,
The core team has recently been discussing of a number of proposals that have been accepted but not implemented. You can see a list of these proposals on the evolution dashboard.
The core team feels that it's important to avoid a situation where evolution proposals remain accepted but unimplemented for long periods of time. The main cause of this was eliminated through the requirement that proposals come with an implementation prior to review. Some unimplemented proposals pre-date this rule. Another cause can be proposals that are implemented, but the implementation is not quite ready for production use. Finally, several proposals are mostly implemented, except for some small portion that proved problematic or was missed.
To resolve this, the core team has decided to make the following change to the evolution process:
- All accepted proposals must have their implementation fully merged within one year of acceptance.
- Proposals which are not implemented at all at that time will expire, and will require re-proposal.
- Proposals which are partially implemented will have a "shrink to fit" approach applied, where the unimplemented parts will be removed from the proposal. This approach has already been taken with SE-0057.
- Proposals which are accepted, but which have bugs relating to nuances in their implementation, but which aren't separable parts of the otherwise implemented proposal, will be treated as per the usual process for bug fixes in the language.
Any parts of a proposal that expire under this rule can of course be re-proposed, so long as this is done with an explanation of what caused the original proposal to expire and what is being done to avoid it happing again.
Given this, the following changes will be applied to the the list of accepted proposals:
- SE-0153 is fully unimplemented and will be expired.
- SE-0155 is partly implemented. The portion relating to changes to pattern matching behavior will be removed. There are also some bugs in the implementation (SR-12206 and SR-12229) which should be treated as existing bugs in the language.
- SE-0163 proposed the addition of a Latin1 codec, but this was not implemented. This will be removed, and could be re-proposed via a stand-alone evolution proposal.
SE-0174 is mostly implemented, except for the addition of a
Filteredassociated type on
Sequence(being previously blocked on recursive generic constraints). This aspect will be removed.
- SE-0220 and SE-0246 are both unimplemented due to their impact on type checker performance. These could be reproposed once the type checker issues are addressed. Note that the full implementation of SE-0246 is available via the Numerics package.
- SE-0283 is accepted but its implementation is not yet merged. It will be evaluated on the anniversary of its acceptance.