here's an attempt at incorporating this into the draft:
Namespaces are meant for future extensions which make internal state
available through variables. These variables SHOULD be put in a
- namespace with the same name as its capability string. Notice that
- the user can not specify a namespace when setting variables with
+ namespace whose first component is the same as its capability
+ Such extensions should state whether its namespace is modifiable
+ the "set" action.
Now I'm nervous about an extension which exposes some const and some non
const variables in a namespace.... :o/ I guess we could expose two
namespaces which goes against the SHOULD but then you didn't say MUST so
maybe that's ok...
Should we say:
- Such extensions should state whether its namespace is modifiable
+ Such extensions SHOULD state whether its namespace is modifiable
4. Action set
Syntax: set [MODIFIER] [COMPARATOR] <name: string> <value: string>
The "set" action stores the specified value in the variable
identified by name. The name MUST be a constant string and conform
- to the syntax of identifier. An illegal name MUST be detected as a
- syntax error.
+ to the syntax of variable-name. Numbered variables can not be set.
+ A namespace can not be used unless an extension explicitly allows
+ use in "set". An invalid name MUST be detected as a syntax error.
I'm wondering if saying that "Numbered variables can not be set" is made
redundant by your comments that an extension should state whether its
namespace is modifiable with the set action. Certainly it feels quite
restrictive to have it said in both places.