[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