[Info-vax] C and C++, Macro32 (was: Re: Fortran)
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Wed Dec 5 11:00:47 EST 2018
On 2018-12-05 15:18:43 +0000, John Reagan said:
> Not to worry. Under no circumstances would we add /STANDARD=VAXC to
> clang. That would be insanity.
The less y'all have or want or need to add to clang C and C++ and the
less divergent the clang library support for C and C++ is, the better.
Port over the DEC C environment (DEC C, Compaq C, HP C, HPE C, VSI C),
avoid embedding it any further than necessary, and announce its
maturity and plans for eventual deprecation.
Allow folks ~five years to migrate their C and C++ to clang and to the
separate clang C libraries. Then deprecate the DEC C environment. In
another five years, remove DEC C as a product.
Having RMS keywords embedded in C I/O is both handy and utterly
hideous. And the "fun" with SSIO and the OpenVMS-isms around file
handling and I/O continue to cause problems.
I'm of two minds around allowing C to handle OpenVMS file
specifications in C I/O statements, too. But it really doesn't do that
now. Not very well. Have a look at basename(3) for an example of that
omission.
I'd much rather see support for C and C++ blocks, and—with the
availability of the LLVM port—maybe eventually VSI or third-party ports
of Objective C, Objective C++, Swift and other LLVM languages. Beyond
possibly flang, that is.
Given the compiler sizes and the comparative storage capacities in this
era, I'd be tempted to roll together all of the major compilers and
DECset and the ports of git and cmake into a developer installation
kit, and roll Python 3 into the base distro. Simplify the OpenVMS
installation and management processes, and simplify the licensing. And
a DVCS means that mixed-architecture clustering isn't nearly as central
to porting code around, either. But I digress. Yeah, this
radical-tool-decomplexification project prolly won't happen any time
soon, as there's unfortunately little incentive to simplify. It's a
longer-term investment in OpenVMS. As for pricing, vendor development
tools are often free, and sometimes quite powerful. VSI already does
this in and in couple of different ways, but hasn't aligned and
integrated these practices with the development tool packaging.
> We're more likely to recode our Macro32 into JavaScript and PHP.
With tools akin to emscripten and binaryen, JavaScript may well be
easier than might be assumed. Even for at least some kernel Macro32
code, thanks to wasmjit.
https://github.com/kripken/emscripten
https://github.com/WebAssembly/binaryen
https://github.com/rianhunter/wasmjit
Yeah. I'm not serious about this Macro32 part. But I am serious about
deprecating the old DEC C and DEC C++ environment and getting everybody
over to clang.
Though there are some folks thinking about VAX Macro32 source code
translation: http://xtran-llc.com/vxmlbs.html — there's at least one
other bunch around, too.
Yeah. Development tools—well beyond compilers, these days—will be a
lively discussion. Port first. Etc.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list