| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
VMS::Filespec::unixify has been truncating its return value and
returning early when the input begins with [] meaning the current
directory. If there was nothing else, we've been getting the right
answer:
[] --> ./
but if there was a file portion of the name it's been getting
omitted:
[]foo.txt --> ./
which is now fixed. Looks like it's been broken since inception
in 5.002, though only with the specific [] case and not if there
was an explicit device or directory name.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This is to prevent a conflict showing up on z/OS (os390) because this
file's name is the same as one in /ext, and there are functions
cross-referenced between them, and the loader on that platform
can't deal with this.
See http://nntp.perl.org/group/perl.perl5.porters/226612
|
| |
|
|
|
|
|
| |
No use for the utf8_to_vtf7 function has appeared in the first
nine years of its existence so it's not earning its keep.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This normalizes function definitions and addresses the most
egregious of the Totally Forgot to Indent At All problems that are
rampant throughout this file.
For now I've punted on normalizing indents and tried to be
consistent with whatever local variant seems to be in use. There
are 2-, 3- (!), and 4-space indents, along with a liberal
sprinkling of tab characters, most (but not all) of which seem to
be intended to be equivalent to 8 spaces.
I considered normalizing indents with some like
astyle -c --style=linux vms.c
but that produces 8400+ changed lines, which doesn't seem worth it.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Apparently I missed this back in eed5d6a149b02. When spawning a
subprocess without waiting, the return value is the pid of that
process, but we need to let pp_system know we're doing that so it
doesn't manipulate the value as if it were an exit status.
One symptom was that t/test.pl's watchdog would sometimes report
that it had failed to start when in fact it had started just fine.
|
|
|
|
|
|
|
| |
fix_bare_dirnames is not used anywhere and doesn't actually do
anything. It appears to be a placeholder for something that has
not materialized in the 10 years of it existence, so time to tidy
up.
|
|
|
|
|
| |
This gets us passing more (but not all) of the infnan.t tests
with long doubles (which are true 128-bit IEEE 754 gizmos).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
$Revision: 2.70 $ $Date: 2015/02/05 10:53:00 $
! Makefile.PL
add bin/encguess to EXE_FILES
2.69 2015/02/05 10:35:11
! bin/encguess
Refactored so that
* does not depend on non-core module (File::Slurp in particular)
* PODified document
* -s "encA encB" to -s encA,encB which is more shell-friendly
* and more
! MANIFEST
+ bin/encguess
Pulled: Added CLI wrapper for Encode::Guess
https://github.com/dankogai/p5-encode/pull/32
! Unicode/Unicode.pm
Pulled: Bump $VERSION in module changed since Encode-2.60
https://github.com/dankogai/p5-encode/pull/31
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without these we get a ton of warnings that look like:
}
^
%CXX-W-MISSINGRETURN, missing return statement at end of non-void function
"S_scan_heredoc"
at line number 9404 in file D0:[craig.blead]toke.c;1
which get escalated to errors at link time and thus break the
build.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
PIC has no meaning on Alpha as all code generated by the compiler
is position independent. So only specify it for VAX. This allows
us to get rid of the test for whether we are on Itanium.
|
|
|
|
|
|
|
| |
By default the linker takes the base name of the first object file
and uses that when creating the name of the linker map file, which
means we've been getting a file named dynaloader.map for the main
shareable image map. Name it after the target instead.
|
|
|
|
| |
Hasn't been needed since 34b5aed4c569.
|
| |
|
|
|
|
|
| |
Basically I missed a spot in 812e68ff314e, so the escaped space
in [foo^_bar], for example, was not translated correctly.
|
|
|
|
|
| |
We haven't defined overrides for these functions for a long time
so this is just dead code.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
For some reason extended characters were only being escaped in
the final component of the path, but not in the directory portion,
the one exception being dots. We need to give the entire path
the same treatment. There is probably considerable opportunity
for further consolidation and refactoring in what we escape, but
at least now ../foo bar/ correctly becomes [-.foo^_^_bar].
The reverse case has similar problems and is a TODO.
|
|
|
|
|
| |
This code became obsolete in ff7adb5275976 and has just been
sitting there taking up space.
|
|
|
|
|
|
| |
Commit d5ec29879 in 2006 started storing all the hints in COPs. Some
VMS-specific hints have nonetheless still been copied from PL_hints to
cop->op_private, though that is no longer necessary.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When translating a filespec starting with an extended character,
say C<+foo>, from Unix to VMS format, we were inadvertently
skipping over the first character and thus not translating it to
C<^+foo> with the caret escape prepended to the plus sign as we
should have been.
This fixes a fairly new test failure in ExtUtils::Manifest where
a filename starts with a single quote.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
A couple of VMS-specific hints bits are stored in op_private on COPs.
Currently these are added using NATIVE_HINTS, which is defined as
PL_hints >> 24.
Since other hints have started using the top byte of PL_hints, this
has the possibility of inadvertently setting other bits in cop->op_private.
So mask out the bits we don't want. We need this before the next commit,
which will assert valid bits on debugging builds.
(This is VMS-specific, and has been applied blind)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default for populating %ENV on VMS is from logical names
first and the CRTL environ array second unless overridden by
setting PERL_ENV_TABLES. That's a reasonable default for DCL,
but not quite right when running under bash as exports under bash
might end up hidden behind logical names. So reverse the default
order when GNV$UNIX_SHELL is set.
Also stop mentioning that setenv() may not be present in the CRTL
since it is present for VMS versions 7.0 and later and those are
the only ones we support.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The standard does not indicate any errno values set when getenv()
simply doesn't find the requested value, which is a pretty common
occurrence. The VMS-specific implementation of getenv() has been
setting errno in this case, which means there is often an errno
value hanging around for later unsuspecting operations. It
particularly tends to bite people who don't read the documentation
to die() and/or don't understand how errno works (only valid after
a failed syscall).
So we now stop setting errno in this case, but leave it for a few
serious errors that should be extremely rare.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Back in 8dc9d3390b257b I consolidated two routines that were
almost identical -- except for their return values. The routine
I kept returns the length of the equivalence name after logical
name translation, but some uses of it were checking it to see if
it was a successful VMS condition value. Which means an odd length
(such as from "1") was successful but an even length (such as from
"ENABLE", the value recommended in the documentation) failed. So
fix those uses to check for a non-zero from simple_trnlnm.
For most features this only affected pre-7.3 systems, i.e., VMS
releases more than thirteen years old. However, it also affected
features such as PERL_VMS_POSIX_EXIT that we have made up on our
own and are not tracking a CRTL feature.
|
| |
|
| |
|
|
|
|
|
| |
C didn't notice this with standard warnings enabled, but C++ takes
vengeance, so cast appropriately.
|
|
|
|
|
|
| |
Without an explicit rule it gets build with CFLAGS rather than
CORECFLAGS, which could make it miss important things, such as
PERL_CORE being defined.
|
|
|
|
|
| |
This removes find2perl, s2p and a2p from core. They have all been
released to CPAN as separate distributions.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up to d5e61aaf9d7051b136, where we stopped
escaping semicolons in tovmsspec when they appeared to be the
beginning of a version specification but always escaped them
otherwise.
It turns out there is yet another CRTL feature logical name
(DECC$FILENAME_UNIX_NO_VERSION) that tells us a Unix-format
specification is not allowed to have a version number, so in
that case, always escape the semicolon since it can't be the
start of a version specification.
Also, don't add the version number when fileifying directory
specs if this "no versions" feature is in effect.
|
|
|
|
|
|
|
|
|
|
|
| |
In theory, a Unix-format filespec can contain a semicolon and thus
need to be escaped when converted to a VMS-format filespec. But
a much more common use case is a filespec that has a version
number despite being in Unix format.
So detect a semicolon that delimits a version specification and
pass it through but escape other semicolons. This is apparently
what decc$to_vms does, so we're being consistent with the CRTL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was replaced by the standard tms struct in v7.0, released in
1995. Explicit support for pre-7.0 was removed in 32995a382d65b
for Perl 5.16, but I missed the tbuffer_t bit, which tripped up
Nicholas in 25983af42cdcf2dc, because he asked for:
struct tbuffer_t
which via macro expansion became:
struct struct tms
which failed to compile. So remove code that's unnecessarily
different on VMS, leaving only a tbuffer_t compatibility macro
with a more appropriate comment so it will hopefully be less
likely to get used in new code.
|