Date: Wed, 07 Apr 2021 22:24:27 -0400 From: wor...@alum.mit.edu (Dale R. Worley) Message-ID: <87a6q9ikdg....@hobgoblin.ariadne.com>
| "The documentation is the contract between the user and | the implementer." If something undocumented happens to work, there is | no requirement on the implementer to maintain its functionality. That might, or might not, be true - in both directions (implementors are often constrained to keep old things, that were never documented, working, because they became known, and are used - similarly some things were once documented, but are no longer, as a better solution was implemented - but the old undocumented code has to stay, essentially forever, for the benefit of those who used it when it was documented). But whatever all that ends up meaning, if anything significant here, it certainly does not mean that the implementation is required to reject extensions that are not documented. Or that it is any kind of bug for it not to do so. As long as you stick to using the implementation as documented (you keep up your end of the "contract"), you will never observe this happening. But when someone else does not, and asks about something that looks like it is using undocumented behaviour, it might be OK to suggest to them that what they're doing is unsafe - but not to suggest that the implementation should reject what they are doing. That is ' "{" should not be recognized as a reserved word in this situation. ' is simply wrong. The situation mentioned was "else {", which actually is documented as working, but never mind. kre