<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Vince - I don't think dropping gcc on
      Linux is a great option, as other platforms (FreeBSD) use gcc. 
      The issue is also more related libc++ vs libstdc++<br>
      <br>
      Zachary - I believe the patch is meant to address problems like
      that, but I have only ever used lldb command line in a simplistic
      way.  I will test something more complex and verify it works same
      on linux as OSX.  <br>
      <br>
      The wchar_t is used by internally in libedit, then translated to
      utf8 when to interface to lldb.  I agree, utf8 std::string seems
      the cleanest way to go.<br>
      <br>
      Shawn.<br>
      <br>
      On 10/28/2014 1:45 PM, Vince Harron wrote:<br>
    </div>
    <blockquote
cite="mid:CAPPnPCfaMt--yf453Z_BCNmoB2MWefDZjHaUEWhqkYtVh=etog@mail.gmail.com"
      type="cite">
      <div dir="ltr"><span
          style="font-family:arial,sans-serif;font-size:13px">>
          codecvt> : the patch uses a c++ 11 class std::codecvt_utf8,
          this is a facet implementation that will do utf8 to wchar
          convervsion.  It is part of c++ 11 standard, but not yet
          supported in gcc. </span>
        <div><font face="arial, sans-serif"><br>
          </font></div>
        <div><font face="arial, sans-serif">Should we drop support for
            building with gcc on Linux?</font></div>
        <div><font face="arial, sans-serif"><br>
          </font></div>
        <div><font face="arial, sans-serif">> </font><span
            style="font-family:arial,sans-serif;font-size:13px">- take
            libedit source files (or subset) and add to the lldb
            project.  We could either build a .so file, or just
            statically link the .cpp files.</span></div>
        <div><font face="arial, sans-serif"><br>
          </font></div>
        <div><font face="arial, sans-serif">Is it a problem to drop
            these "berkeley stype license" files into the project?</font></div>
        <div><font face="arial, sans-serif"><br>
          </font></div>
        <div><font face="arial, sans-serif">> </font><span
            style="font-family:arial,sans-serif;font-size:13px">- rework
            the Editline rewrite, so it either uses standard 8 bit
            chars, or wchar_t/utf8 depending on the platform.  This
            would be conditionally built depending on the platform.</span></div>
        <div><span style="font-family:arial,sans-serif;font-size:13px"><br>
          </span></div>
        <div><span style="font-family:arial,sans-serif;font-size:13px">This
            would be my favorite option if possible.  wchar_t never
            really took roots in Linux AFAIK.</span></div>
        <div><span style="font-family:arial,sans-serif;font-size:13px"><br>
          </span></div>
        <div><font face="arial, sans-serif">> </font><span
            style="font-family:arial,sans-serif;font-size:13px">-
            introduce custom step for new linux lldb users, where they
            download libedit source and build and install a wchar
            version</span><br
            style="font-family:arial,sans-serif;font-size:13px">
          <div><span style="font-family:arial,sans-serif;font-size:13px"><br>
            </span></div>
        </div>
        <div>Not as good as options above but we can work with this.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Tue, Oct 28, 2014 at 12:42 PM, Shawn
          Best <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:sbest@blueshiftinc.com" target="_blank">sbest@blueshiftinc.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">There is a
            significant Editline rewrite, adding a bunch of
            improvements.  It has been well tested on OSx, but not yet
            upstreamed.  I have spent some time reviewing the proposed
            patch and working through issues to get it running on
            linux.  To see the patch and accompanying discussion, refer
            to: <a moz-do-not-send="true"
              href="http://reviews.llvm.org/D5835" target="_blank">http://reviews.llvm.org/D5835</a> 
              The main issues that came up are related to handling wide
            characters and differences between platforms.<br>
            <br>
            Internally, lldb uses std::string which is an array of 8 bit
            chars, that can either be 7 bit ascii, or utf8 encoded wide
            characters. Libedit uses either char, or wchar_t which is a
            32 bit char on linux.<br>
            <br>
            <codecvt> : the patch uses a c++ 11 class
            std::codecvt_utf8, this is a facet implementation that will
            do utf8 to wchar convervsion.  It is part of c++ 11
            standard, but not yet supported in gcc.  I can use #ifdef to
            temporarily write equivalent functionality in that case
            while we wait for gcc to catch up.<br>
            <br>
            libedit : libedit is a prerequisite that a new linux/lldb
            user installs ( sudo apt-get install libedit-dev ).  A few
            years ago, libedit added versions of its functions that work
            on wchar_t. Unfortunately, this option is not built by
            default, and not present in the Ubuntu distribution.  To get
            around this, I see a few options:<br>
            <br>
            - take libedit source files (or subset) and add to the lldb
            project.  We could either build a .so file, or just
            statically link the .cpp files.<br>
            <br>
            - rework the Editline rewrite, so it either uses standard 8
            bit chars, or wchar_t/utf8 depending on the platform.  This
            would be conditionally built depending on the platform.<br>
            <br>
            - modify Ubuntu, so 'sudo apt-get install dev-libedit'
            installs a version that has been built with wide character
            support enabled.<br>
            <br>
            - introduce custom step for new linux lldb users, where they
            download libedit source and build and install a wchar
            version<br>
            <br>
            The last 2 options don't seem that great.<br>
            <br>
            I expect there will be problems on Windows, which I think
            uses utf16 coding.  The file EditLineWin.cpp, contains
            prototypes for most of the structures and functions needed,
            but they look stubbed out.<br>
            <br>
            Any thoughts?<br>
            <br>
            Shawn.<br>
            _______________________________________________<br>
            lldb-dev mailing list<br>
            <a moz-do-not-send="true" href="mailto:lldb-dev@cs.uiuc.edu"
              target="_blank">lldb-dev@cs.uiuc.edu</a><br>
            <a moz-do-not-send="true"
              href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev"
              target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        <div dir="ltr"><br>
          <table style="font-family:'Times New Roman'" cellpadding="0"
            cellspacing="0">
            <tbody>
              <tr
                style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">
                <td
style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px"
                  nowrap="nowrap">Vince Harron |</td>
                <td
style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"
                  nowrap="nowrap"> Technical Lead Manager |</td>
                <td
style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"
                  nowrap="nowrap"> <a moz-do-not-send="true"
                    href="mailto:vharron@google.com" target="_blank">vharron@google.com</a> |</td>
                <td
style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"
                  nowrap="nowrap"> 858-442-0868</td>
              </tr>
            </tbody>
          </table>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>