Re: [csswg-drafts] [Meta] Modular/distributed grammar definitions (#6744)

This centralization can be a big problem when multiple specs with varying levels of maturity extend the same tokens however. Consider the following:

Spec A, very mature:
```
<a> = a | b | c
```

Spec B, Early draft, extends with `d` token:
```
<a> = a | b | c | d
```

Spec C, Early draft, extends with `e` token:

```
<a> = a | b | c | e
```

None of these definitions is now correct. Should C take B into account? Should B take C into account? Depending on their maturity levels, that may or may not make sense. But the maturity level can change at any point, which imposes an undue burden on editors of all three specs because the definition in spec C may need to change even without any changes being made to spec C, just because spec B became more mature.

While this is a simplified example, I cannot count the times where definitions got out of sync because one thing was updated and another thing somewhere else (even within the same spec) was not. Specs are essentially coding in natural language, and the same reasons one modularizes code, apply here too. When humans keep making the same mistake, it's not a good policy to argue that they should "just be more careful", when the problem can be solved with tooling.

-- 
GitHub Notification of comment by LeaVerou
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6744#issuecomment-955201297 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Saturday, 30 October 2021 12:28:44 UTC