C++ Logo

SG16

Advanced search

Subject: Re: [SG16-Unicode] [isocpp-direction] DG answer to the Unicode Direction paper (P1238R0)
From: Hubert Tong (hubert.reinterpretcast_at_[hidden])
Date: 2019-01-23 23:39:06


On Thu, Jan 24, 2019 at 12:01 AM Tom Honermann <tom_at_[hidden]> wrote:

> On 1/21/19 11:06 PM, Hubert Tong wrote:
>
> On Wed, Jan 9, 2019 at 11:21 PM Tom Honermann <tom_at_[hidden]> wrote:
>
>> 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.
>>
> 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.
>
> As best I've been able to tell, IBM offers two C++ compilers for z/OS:
>
> - 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.
> - 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.
>
> 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.
>
> 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.
>
> 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.
>
> 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?
>
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).

> Tom.
>
> [1]: https://www.ibm.com/us-en/marketplace/xl-cpp-compiler-zos
> [2]:
> https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20170508/004572.html
> [3]: http://www.dignus.com/
>



SG16 list run by sg16-owner@lists.isocpp.org