[Info-vax] Open Source on OpenVMS - need some feedback
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Fri Jan 2 10:53:23 EST 2015
On 2015-01-02 15:18:47 +0000, John Reagan said:
> ...I'm just trying to collect input on things that could be
> better/faster/newer....
Reposted here....
Off the top, the following are some of the C features and omissions
from the past couple of months, dealing with a mix of C89, C99, BSD and
GNU code.
<stdint.h> (just nesting #include <inttypes.h> there seems to avoid
most of the chatter.)
intmax_t, uintmax_t and intptr_t types.
strtoumax()
strlcpy() and strlcat() — not part of the C standards AFAIK, but very
common in BSD code.
arc4random() and friends.
A fair amount of this code has been security-sensitive or
security-related, too.
Not technically part of the C standard libraries, but bits that are
common on OS X, BSD and Linux, and that I've needed to use on VMS:
libxml2
sqlite3
Some other missing routines and libraries from the recent past:
asprintf() and vasprintf(), and snprintf() and vsnprintf().
getopt_long()
OpenSSL 1.0.1 (there's a VMS port of this around, and it's also easier
to deal with 1.0.1 than with the "current" port from HP, as HP never
pushed their 0.9.x VMS changes upstream. Probably best via a second,
parallel, shareable to the 0.9.x routines, obviously. Until the 0.9.x
bits can get scrapped, that is.)
Features I'd like to see from C11. Beyond "most of it", of course...
<stdalign.h>
<uchar.h>
<threads.h>
<stdatomic.h>
strtok_s
Support that I'd like to see imported from clang:
blocks and queues, and libdispatch
One area that's been a problem for creating non-GPL'd portable code has
been a lack of a gettext equivalent. The POSIX-style message catalog
catopen() mechanisms just don't get used anywhere.
If you haven't used Xcode, definitely go load and go try it. That's
the sort of environment you'll be competing with in a few years, and
from most vendors...
ps: In the case of C11, it's now safe to shut off the existing check
that generates the /%CC-I-UNSTRUCTMEM, The declaration of a member that
is an unnamed struct or union type is an extension and might not be
portable./ diagnostic, as this is now part of C11.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list