<br><br><div><span class="gmail_quote">On 9/19/07, <b class="gmail_sendername">stephane ducasse</b> &lt;<a href="mailto:stephane.ducasse@free.fr">stephane.ducasse@free.fr</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
the problem with per namespace is that you can get unanticipated<br>conflicts.<br>here is a scenario that klaus from Smalltalk/x explained to me once<br><br>you have two namespace<br><br>N1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br><br><br>N2 import N1
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method foo<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^ B<br><br>everthing compiles<br><br>now you add a new class B in N1<br>and the system does not bark....<br><br>a while later you recompile the method foo and now you may be in
<br>trouble.<br></blockquote></div><br>This is a problem that I&#39;m currently working with. I think I&#39;ll try completely disallowing ambiguous names. If a name in a method can resolve to anything other than exactly one binding, then the compiler complains. The user will have to resolve this either by reorganising the local import list, or making the name less ambiguous using either dotted notation or Krampe notation (&#39;::&#39;).
<br><br>Michael.<br>