[Info-vax] OpenVMS Development Annoyances
John Reagan
xyzzy1959 at gmail.com
Sun Apr 7 01:55:10 EDT 2019
On Sunday, April 7, 2019 at 4:07:58 AM UTC+2, Stephen Hoffman wrote:
> On 2019-02-08 16:08:30 +0000, Stephen Hoffman said:
>
> > Things about developing for OpenVMS that have annoyed me (again) this month:
> > ...
>
> C++ has little OpenVMS system integration. Outside of OpenVMS message
> files, there seems little else. Nothing obvious in iostream, for that
> matter.
>
> Specifying RMS file attributes on the fopen() is entertaining when
> working with the strict compilation mode, as the compilations produce
> (expected) diagnostics for the OpenVMS fopen extensions.
>
> Which meant reverting and switching to __USE_STD_IOSTREAMS to get the
> C++98-era "modern" behavior.
>
> C does slightly here with OpenVMS, but still lacks OpenVMS integration.
>
> OpenVMS descriptors, RMS, etc., most of what could be useful for
> working with C++ on OpenVMS is seemingly missing.
>
> Keeping old code mostly-working is certainly valuable, but the
> "Specifying /DEFINE=__USE_STD_IOSTREAM forces the inclusion of the ANSI
> standard version of the iostream header file.
>
> This is the default in STRICT_ANSI mode. Otherwise, the pre-standard
> AT&T-compatible version of iostream is used." is a stinky default for
> anything other than remedial work.
>
Well, then you'll like clang on x86. We're not going to put ancient stuff back into clang or the headers. Standard IOSTREAM is the only choice; standard STAT is the only choice; etc. Of course, we'll have to VMS-ize things where needed, but the closer we get to a standard distribution is better for everybody.
I counted the other day on how many lines we've added to LLVM and we're only at 561 lines (I didn't count the lines to workaround the Itanium C++ compiler or missing stuff from inttypes.h/stdint.h). I suspect the count will grow to close to 1000, but looking around at other target-specific changes inside of LLVM, that is a reasonable #. I'm not ready to guess at the clang side.
As for platform-specific addons for descriptors, etc. Would you rather have things added to std::string (like being able to ask for a descriptor of the data) or a new vms::string that inherits from std::string? I've play with both (and even considered C++17's string_view) and none jump out as the "best".
More information about the Info-vax
mailing list