ES4 note: Reserved namespaces

Waldemar Horwat waldemar at google.com
Tue Apr 29 11:34:10 PDT 2008


Lars Hansen wrote:
>> -----Original Message-----
>> From: Waldemar Horwat [mailto:waldemar at google.com] 
>> Sent: 28. april 2008 18:39
>> To: Lars Hansen
>> Cc: es4-discuss
>> Subject: Re: ES4 note: Reserved namespaces
>>
>> I agree with everything except:
>>
>> * reserved namespaces may not be aliased (ie they are illegal
>>   on the right hand side of "=" in "namespace ns1 = ns2")
>>
>> If we want to make reserved namespaces into keywords, 
> 
> We do not...
> 
>> that 
>> might be ok.  However, at the current time they're not 
>> keywords, and one could write:
>>
>>   const foo = intrinsic;
> 
> But "foo" can't be used as a namespace qualifier in any
> context, so that's OK.
> 
>> and:
>>
>>   namespace instrinsic = my_namespace;
> 
> That one either shadows an existing namespace or causes an 
> ambiguity, so I don't think that's a problem either.
> 
>> Being able to write those but not:
>>
>>   namespace foo = intrinsic;
>>
>> is just splitting hairs without achieving anything important. 
> 
> I disagree.  The rules guarantee that it is possible for the
> implementation to determine statically whether a particular
> fixture definition introduces a binding in one of the reserved
> namespaces.  (That actually depends on namespace annotations
> always being statically resolvable.   Some of the details
> of how that's handled are still open but that's the goal.)

That's missing the point.  As far as I've seen in this discussion so far, prohibiting

  namespace foo = intrinsic;

does not achieve anything important and it does introduce a weird asymmetry (and yet another strange rule for programmers to memorize) into the language.  It does *not* achieve the guarantee that it's statically possible to determine whether a particular fixture definition introduces a binding in one of the reserved namespaces.  That guarantee is satisfied by resolving namespaces at compile time, with or without this prohibition.

    Waldemar



More information about the Es4-discuss mailing list