diff options
author | Craig A. Berry <craigberry@mac.com> | 2012-02-11 14:17:12 -0600 |
---|---|---|
committer | Craig A. Berry <craigberry@mac.com> | 2012-02-11 14:47:25 -0600 |
commit | 24ad4a07e88519ae8e63d0b67d519e62a935b577 (patch) | |
tree | 99c7ecf78369b59dc562e0c18bb191ed8f79ddab /charclass_invlists.h | |
parent | 2bce2197f3ee44d0b4726e1ac8112b1c95457f7e (diff) | |
download | perl-24ad4a07e88519ae8e63d0b67d519e62a935b577.tar.gz |
General-purpose symbol shortening for VMS.
Some folks like to write long sentences and then use them as
variable names, which doesn't come up that often, but when it
does, the build on VMS falls down hard if any of the resulting
symbols is longer than 31 characters. The problem is not for
the compiler, which when using /NAMES=SHORTENED (which we now do
by default) will shorten the symbols, but for the linker, which
must have an exact list of the symbol names to be exported when
creating the perlshr.exe shareable image.
That list of potentially shortened symbols goes in a linker options
file created by vms/gen_shrfls.pl. Until now we had no recourse
but to hard-code there a mapping of long symbols to shortened ones,
but the AUTODIN-II polynomial used by the compiler to do the
shortening is (partially) documented under the help for CC/NAMES,
and it was possible to extrapolate from there and create a pure-
Perl implementation that mimics precisely what the C compiler (and
the C++ compiler under "extern C" declarations) use for shortening
long symbol names.
Symbols like Perl__it_was_the_best_of_times_it_was_the_worst_of_times
can now be created freely without causing the VMS linker to seize up.
Diffstat (limited to 'charclass_invlists.h')
0 files changed, 0 insertions, 0 deletions