N2807: identifiers for use by users

Submitter:Philipp Klaus Krause
Submission Date:2021-09-08

Summary:

Give some identifiers to the user.

This antireserves a class of identifiers.

Background:

While the standard does reserve some identifiers for use by the implementation, and now also has the concept of potentially reserved identifiers, programmerscan not rely on identifiers they chose still being available in future standards. WG14 has shown many times that it is willing to reverse many additional identifiers, and does not want to stick to already reserved identifiers for new functionality; large numbers of identifiers are reserved that do not fall into an easily discernable pattern. The C23 floating-point naming explosion is one such example, that could happen again any time in the future. Recently-introduced reservation for the cr prefix and the names chosen for the sized memory deallocation functions are other examples.

Unlike C++, which has the std namespace, C has no mechanism to help users who want their identifiers protected from future standards.

Given that the use of identifiers by the implementation in future C standards can't be restricted, an alternative would be to anti-reserve a small class of identifiers, i.e. explicitly state that some identifiers are available to the users, and hope that future C standards honour this statement.

Do we want to anti-reserve some identifiers?

In case we decide "yes" on the first question: Do we want to anti-reserve identifiers starting with usr, Usr, USR, User, user and USER by stating so in §6.11?

Proposed change (against N2596): Add §6.11.9, Anti-reserved identifiers: Future standardization should not reserve identifiers starting with usr, Usr, USR, User, user or USER.

In case we decide "yes" on the first question: Do we want to anti-reserve identifiers starting with prg, Prg, PRG, Programmer, programmer and PROGRAMMER by stating so in §6.11?

Proposed change (against N2596): Add §6.11.9, Anti-reserved identifiers: Future standardization should not reserve identifiers starting with prg, Prg, PRG, Programmer, programmer and PROGRAMMER.

In case we decide "yes" on the first question: Do we want to anti-reserve identifiers starting with usr, Usr, USR, User, user and USER by stating so in §J.6?

Proposed change (against N2596): Add a paragraph before J.6.1, Anti-reserved identifiers: Identifiers starting with usr, Usr, USR, User, user or USER should alway be available for the user, and not become reserved in future standards.

In case we decide "yes" on the first question: Do we want to anti-reserve identifiers starting with prg, Prg, PRG, Programmer, programmer and PROGRAMMER by stating so in §J.6?

Proposed change (against N2596): Add a paragraph before J.6.1, Anti-reserved identifiers: Identifiers starting with prg, Prg, PRG, Programmer, programmer and PROGRAMMER should alway be available for the user, and not become reserved in future standards.