Note: This directory contains older feature specifications, new ones should be submitted to the language repository here.
The existing feature specifications in this directory will have their status updated as we proceed, and in particular each of them will become ‘background’ material as it is integrated into the language specification. When all feature specifications in this directory (that is, all other files than this one) have become background material, this directory will serve only as documentation for the process whereby each feature was designed and the associated motivation.
That said, the following section contains a few words about what a feature specification is, and how it can be used.
In order to move faster and get better feedback, we implement and iterate on language changes before the full official specification has been written. Still, the implementers need something to go on.
For that, the language team writes feature specifications. These are intended to be precise enough for a good faith implementer to correctly understand the syntax and semantics of the language, but when the contents of a feature specification is integrated into the language specification we expect the extra processing to give rise to additional clarifications and corrections, which means that a feature specification is expected to be nearly as complete and correct as the language specification.