<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 24, 2019 at 12:01 AM Tom Honermann <<a href="mailto:tom@honermann.net">tom@honermann.net</a>> 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">
<div class="gmail-m_7166301413242416467moz-cite-prefix">On 1/21/19 11:06 PM, Hubert Tong wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr" class="gmail-m_7166301413242416467gmail_attr">On Wed, Jan 9, 2019 at
11:21 PM Tom Honermann <<a href="mailto:tom@honermann.net" target="_blank">tom@honermann.net</a>>
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></div></blockquote><div>I expect that some lag will continue to be present, but no intention to increase the lag. All I can say is that IBM is investing in supporting today's C++ standards (and my participation on the committee should be evidence that IBM is investing in future C++ standards).<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>
</p>
<p>Tom.<br>
</p>
<p>[1]: <a class="gmail-m_7166301413242416467moz-txt-link-freetext" href="https://www.ibm.com/us-en/marketplace/xl-cpp-compiler-zos" target="_blank">https://www.ibm.com/us-en/marketplace/xl-cpp-compiler-zos</a><br>
[2]:
<a class="gmail-m_7166301413242416467moz-txt-link-freetext" href="https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170508/004572.html" target="_blank">https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170508/004572.html</a><br>
[3]: <a class="gmail-m_7166301413242416467moz-txt-link-freetext" href="http://www.dignus.com/" target="_blank">http://www.dignus.com/</a><br>
</p>
</div>
</blockquote></div></div>