On 1/21/19 11:06 PM, Hubert Tong wrote:
On Wed, Jan 9, 2019 at 11:21 PM Tom Honermann <tom@honermann.net> 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:

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?


[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/