<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 2/19/23 8:45 PM, Archie Cobbs wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CANSoFxsW7-oe=j2qiFb=W11qx8kf+-rYZyBdd=AL5VbnantF5Q@mail.gmail.com">
      
      <div dir="ltr">
        <div dir="ltr">On Sun, Feb 19, 2023 at 9:04 PM David Alayachew
          <<a href="mailto:davidalayachew@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">davidalayachew@gmail.com</a>>
          wrote:</div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div dir="auto">Maybe I am naive, but why not add a
              signifier/suffix to the resulting .class file name to
              differentiate? Java already does this. Going back to my
              local classes example, if 2 local classes have the exact
              same name (where even the cases are the same), javac will
              call them Abc.java and Abc$1.java, or something like that.
              The point is, appending a signifier at the end is
              apparently good enough for the compiler to be able to tell
              which class to load when we run the compiled code. Would
              that not be an effective solution here too?<br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>That would work for synthetic inner classes. It still
            doesn't solve the larger problem though.<br>
          </div>
          <div><br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div dir="auto">
              <div dir="auto">> So fixing this is do-able but not
                trivial</div>
              <div dir="auto"><br>
              </div>
              <div dir="auto">I see what you mean. One thing that may be
                helpful as an intermediate goal would be to emit a
                warning/error on compile when running into this. At
                least then, we can minimize the impact of developers
                unexpectedly running into this during runtime. In the
                meantime, a more complex and long term solution can be
                developed.</div>
            </div>
          </blockquote>
          <div> </div>
        </div>
        <div>Even a warning is non-trivial. It's normal to overwrite
          existing class files, so you couldn't rely on checking whether
          the file already existed. The file manager would have to keep
          track of every class file that it has written out so it could
          detect when a clash occurs, or something like that.<br>
        </div>
      </div>
    </blockquote>
    <p>Even that is not enough; the files may be written by different
      compilations. The file manager would potentially read the contents
      of every file before overwriting it, to decide whether to generate
      a message.</p>
    <p>-- Jon<br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite" cite="mid:CANSoFxsW7-oe=j2qiFb=W11qx8kf+-rYZyBdd=AL5VbnantF5Q@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>Also note that what exactly case-insensitive means depends
          on your choice of Locale (see also <a href="https://stackoverflow.com/q/8899929/263801" moz-do-not-send="true">this link</a>). That may or may not
          matter depending on the approach.<br>
        </div>
        <div><br>
        </div>
        <div>-Archie<br>
        </div>
        <div><br>
          -- <br>
          <div dir="ltr">Archie L. Cobbs<br>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>