This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Ditch the custom extern/const model on VMS.
authorCraig A. Berry <craigberry@mac.com>
Sat, 3 Jan 2015 00:42:31 +0000 (18:42 -0600)
committerCraig A. Berry <craigberry@mac.com>
Sat, 3 Jan 2015 01:21:04 +0000 (19:21 -0600)
commit400638aa931c474ea2549c80aeb58d36a9f65db3
tree8456a4332e573a30326ae794a11eb9003d39eb97
parent4e2794096b6999123c408ee2ccfc3f1a92bd4bb2
Ditch the custom extern/const model on VMS.

We've been using globaldef/globalref for global data since eons
ago.  It was a requirement for the ancient and long-defunct VAXC
compiler (not to be confused with DEC C for OpenVMS VAX), but
DEC/Compaq/HP C supports extern and const pretty much the way
everybody else does, and has for many years. HP C also supports
globaldef/globalref for backward compatibility, but the C++ compiler
does not, so continuing to use it means two different models for
C and C++.

While there is a slight theoretical benefit to using the old model
and its fine-grained control of program section attributes and
having all the read-write variables in one program section and all
the read-only variables in another, there is no measureable
performance or code size benefit, and being different just isn't
worth the aggravation.

So let's resign ourselves to having a separate program section in
the shareable image for each global item and make a couple of places
in the code easier on everyone's eyeballs and less likely to collide
with other work.
EXTERN.h
INTERN.h
vms/gen_shrfls.pl