In P6 culture, the word "spec" is considered an ambiguous word that can mean several very different things including:
* Specification. The P6 language is specified by a test suite called Roast. There are "release" tags, for example 6.c, 6.c.errata, and 6.d. If a program passes the suite it's "officially" entitled to call itself a P6 compiler for the language versions it passes.
* Speculation. Discussion, ideas, RFCs, a large range of design documents written in English that were once called "specification" documents but were never intended to be a substitute for the binary precision and decision of a test suite, multiple compiler prototypes, etc.
Thus:
> the first iteration of the language spec hasn't even been fully implemented yet.
Rakudo fully implemented 6.c, the first iteration of the electronic language spec, 3 years ago.
> I'm way more interested in "Clang/VC++ is now C++20 compliant", because then I can actually use it.
Exactly. P6 has focused on having a digital specification.
If someone wants to know if a compiler is compliant, they can run a test and know within minutes.
If you prefer a specification written in natural language, and claims of compliance to be relative to that natural language specification, and consider tests secondary, well, all I can say is that the P6 view is the other way around.
If your point is that a couple hundred thousand tests isn't enough, then yes, you have a very good point, one can never have too few tests, but one has to start somewhere.
(There's also Toast, which is like Roast, but applied to the entire ecosystem, running compilers against the test suites of all publicly available modules. cf cpantesters.)
* Specification. The P6 language is specified by a test suite called Roast. There are "release" tags, for example 6.c, 6.c.errata, and 6.d. If a program passes the suite it's "officially" entitled to call itself a P6 compiler for the language versions it passes.
* Speculation. Discussion, ideas, RFCs, a large range of design documents written in English that were once called "specification" documents but were never intended to be a substitute for the binary precision and decision of a test suite, multiple compiler prototypes, etc.
Thus:
> the first iteration of the language spec hasn't even been fully implemented yet.
Rakudo fully implemented 6.c, the first iteration of the electronic language spec, 3 years ago.
> I'm way more interested in "Clang/VC++ is now C++20 compliant", because then I can actually use it.
Exactly. P6 has focused on having a digital specification.
If someone wants to know if a compiler is compliant, they can run a test and know within minutes.
If you prefer a specification written in natural language, and claims of compliance to be relative to that natural language specification, and consider tests secondary, well, all I can say is that the P6 view is the other way around.
If your point is that a couple hundred thousand tests isn't enough, then yes, you have a very good point, one can never have too few tests, but one has to start somewhere.
(There's also Toast, which is like Roast, but applied to the entire ecosystem, running compilers against the test suites of all publicly available modules. cf cpantesters.)