<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 1/21/19 11:06 PM, Hubert Tong wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CACvkUqaswtLMk9RT_KVaci3urjntYdjZWD-_+Zo7zM3QrXO54g@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">On Wed, Jan 9, 2019 at
              11:21 PM Tom Honermann &lt;<a
                href="mailto:tom@honermann.net" moz-do-not-send="true">tom@honermann.net</a>&gt;
              wrote:<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 bgcolor="#FFFFFF">
                <p>The constraint I'd most like feedback on is 1.1 (The
                  ordinary and wide execution encodings are
                  implementation defined).  If Microsoft were to support
                  use of UTF-8 as the execution encoding (something they
                  are making steps towards), it may be conceivable that
                  we could standardize the execution encoding as UTF-8
                  and have that actually reflect existing practice
                  (implementations would presumably continue to offer
                  support for legacy encodings as an extension). 
                  However, this would leave some platforms behind; z/OS
                  being the primary example.  z/OS continues to maintain
                  a significant presence in the industry (as I
                  understand it, good numbers are hard to find), but IBM
                  has not been keeping up with C++ standards.  Some
                  guidance regarding how to think about platforms that
                  are not keeping up with the standard would be
                  appreciated.<br>
                </p>
              </div>
            </blockquote>
            <div>IBM offers C++11 compilers compiling EBCDIC
              applications from EBCDIC source on z/OS. IBM also produces
              offerings of applications based on LLVM on z/OS, which
              would necessitate advances in the C++ support on the
              platform. Note that one of the advantages C++ has on z/OS
              over Java is that it is capable of communicating with the
              EBCDIC-based libraries and system services without a
              translation layer. If "C++ leaves no room for another
              language between itself and the hardware", then C++ for
              z/OS would have EBCDIC execution character sets.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <p>As best I've been able to tell, IBM offers two C++ compilers for
      z/OS:</p>
    <ul>
      <li>z/OS XL C/C++ [1].  The latest version is 2.3 released in
        September 2017.  This release includes some, but not all,
        features of C++11.  I've heard rumors that IBM internally has a
        C++11 compliant version of this compiler that is not publicly
        available (due to ABI differences with the publicly released
        version), but I don't know if that is true.<br>
      </li>
      <li>njsc/njsc++.  This compiler is included with the IBM SDK for
        Node.js.  I've so far been unable to find any documentation
        regarding this compiler; just statements in the accessible
        Node.js SDK docs indicating its existence and that it has C++11
        language support.</li>
    </ul>
    <p>I've also found hints [2] that IBM has internally ported LLVM and
      Clang to z/OS as part of its Swift effort.  For all I know, the
      njsc/njsc++ compiler could be related to this LLVM/Clang port.</p>
    <p>I've been unable to find any evidence of IBM working towards
      providing a C++14 or C++17 (or C++20) compliant compiler for z/OS.</p>
    <p>It appears that Dignus, LLC provides a C++14 compiler [3] for
      z/OS based on LLVM.  The latest version of their compiler,
      Systems/C++, is 2.10 released in July of 2017.  Their website
      doesn't indicate whether or when a new release should be expected.<br>
    </p>
    <p>I find the above a bit bleak.  If IBM isn't going to invest in
      supporting current and future C++ standards, then I find it
      unnecessary for the C++ standard to continue supporting
      implementation variances that are particular to z/OS; particularly
      when removing such variances could bring benefits for all other
      implementations.  I'm sure you can't comment publicly on internal
      IBM product plans, but is there something that can be said about
      the prospect for C++ compilers on z/OS that implement the latest
      standards?<br>
    </p>
    <p>Tom.<br>
    </p>
    <p>[1]: <a class="moz-txt-link-freetext" href="https://www.ibm.com/us-en/marketplace/xl-cpp-compiler-zos">https://www.ibm.com/us-en/marketplace/xl-cpp-compiler-zos</a><br>
      [2]:
<a class="moz-txt-link-freetext" href="https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170508/004572.html">https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170508/004572.html</a><br>
      [3]: <a class="moz-txt-link-freetext" href="http://www.dignus.com/">http://www.dignus.com/</a><br>
    </p>
  </body>
</html>