<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Cameron forwarded the following to me
      after our meeting yesterday.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">C#'s grammar for identifiers is defined
      at the following link.  Basically, identifiers match UAX#31 with a
      few additions (most of which make sense for C++ as well).<br>
    </div>
    <div class="moz-cite-prefix">-
<a class="moz-txt-link-freetext" href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#identifiers">https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#identifiers</a></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">A fun blog post exploring C# Unicode
      identifiers and the possibility of character classification
      changing over time resides at the following link.  <br>
    </div>
    <div class="moz-cite-prefix">-
<a class="moz-txt-link-freetext" href="https://codeblog.jonskeet.uk/2014/12/01/when-is-an-identifier-not-an-identifier-attack-of-the-mongolian-vowel-separator/">https://codeblog.jonskeet.uk/2014/12/01/when-is-an-identifier-not-an-identifier-attack-of-the-mongolian-vowel-separator/</a><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Tom.<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 5/15/19 1:39 PM, Tom Honermann
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:34a9ae7e-ac68-711b-e737-19d9cec4315c@honermann.net">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div class="moz-cite-prefix">Thanks for bringing this to our
        attention.  I agree there are opportunities for improvement
        here.  I filed a new SG16 issue to track this.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix"><a class="moz-txt-link-freetext"
          href="https://github.com/sg16-unicode/sg16/issues/48"
          moz-do-not-send="true">https://github.com/sg16-unicode/sg16/issues/48</a></div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">I encourage anyone interested in this
        to sign up to write a paper or provide additional background
        material in the issue (e.g., more history about the current list
        of ranges, an analysis of UAX#31 and its applicability to C++,
        etc...).<br>
      </div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Tom.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">On 5/10/19 12:43 PM, JF Bastien
        wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:CACeCrovOGwngO8PBa+skKXzTr=6SosJ0a-MQCXJijJ+67C7SQw@mail.gmail.com">
        <meta http-equiv="content-type" content="text/html;
          charset=UTF-8">
        <div dir="ltr">
          <div dir="ltr"><font face="arial, helvetica, sans-serif">Hi
              C++ <span style="color:rgb(0,0,0);font-size:medium">પกٱƈѻɗﻉ</span> <span
                style="color:rgb(0,0,0);font-size:medium">ḟäṅṡ 👋</span>!</font>
            <div><font face="arial, helvetica, sans-serif"><br>
              </font></div>
            <div><font face="arial, helvetica, sans-serif">The current
                list of valid identifier characters is pretty silly (see
                [<b><a href="http://lex.name" moz-do-not-send="true">lex.name</a></b>]
                5.10 Identifiers or <a
                  href="https://en.cppreference.com/w/cpp/language/identifiers"
                  moz-do-not-send="true">cppreference summary</a>). It
                allows characters such as zero-width joiner and
                zero-width space among a few silly things (see <a
                  href="https://godbolt.org/z/sBJk1k"
                  moz-do-not-send="true">how bad this can get</a>,
                h/t Richard Kogelnig</font><span
                style="font-family:arial,helvetica,sans-serif">).</span></div>
            <div><font face="arial, helvetica, sans-serif"><br>
              </font></div>
            <div><font face="arial, helvetica, sans-serif">I asked where
                it came from, and IIUC John looked at Unicode and
                cobbled the list of valid ranges manually. That ain't
                great.</font></div>
            <div><font face="arial, helvetica, sans-serif"><br>
              </font></div>
            <div><font face="arial, helvetica, sans-serif">Is this group
                interested in fixing things?</font></div>
            <div><font face="arial, helvetica, sans-serif"><br>
              </font></div>
            <div><font face="arial, helvetica, sans-serif">There's
                already an existing standard for this, maybe it's a
                thing we can adopt as-is or use as a starting point:</font></div>
            <blockquote style="margin:0px 0px 0px
              40px;border:none;padding:0px">
              <div><a href="https://unicode.org/reports/tr31/"
                  moz-do-not-send="true"><font face="arial, helvetica,
                    sans-serif">https://unicode.org/reports/tr31/</font></a></div>
            </blockquote>
            <div><font face="arial, helvetica, sans-serif"><br>
              </font></div>
            <div><font face="arial, helvetica, sans-serif">Further, the
                tooling group was just talking about module names. I
                think we should allow any valid identifier name as
                module name, and look at how this could map to file
                names for a tooling TR's purpose.</font></div>
            <div><font face="arial, helvetica, sans-serif"><br>
              </font></div>
            <div><font face="arial, helvetica, sans-serif">Thanks,</font></div>
            <div><font face="arial, helvetica, sans-serif"><br>
              </font></div>
            <div><span style="color:rgb(0,0,0);font-size:medium"><font
                  face="arial, helvetica, sans-serif">J̙̘̗̘̟͐̀̎F͚̜͈̖͉̗̘̊</font></span><br>
            </div>
          </div>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
SG16 Unicode mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Unicode@isocpp.open-std.org" moz-do-not-send="true">Unicode@isocpp.open-std.org</a>
<a class="moz-txt-link-freetext" href="http://www.open-std.org/mailman/listinfo/unicode" moz-do-not-send="true">http://www.open-std.org/mailman/listinfo/unicode</a>
</pre>
      </blockquote>
      <p><br>
      </p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
SG16 Unicode mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Unicode@isocpp.open-std.org">Unicode@isocpp.open-std.org</a>
<a class="moz-txt-link-freetext" href="http://www.open-std.org/mailman/listinfo/unicode">http://www.open-std.org/mailman/listinfo/unicode</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>