| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a3c8358c changed:
-#define dXSUB_SYS int dummy
+#define dXSUB_SYS
which made dXSUB_SYS into not-a-declaration, this apparently broke
something, since 8cc95fdb then went through all the definitions of
dXSUB_SYS, made each of them into not-a-declaration and then
ensured ExtUtilis::Miniperl emitted dXSUB_SYS in a place where it
didn't matter whether it was a declaration or a statement.
When these changes were made perl.h didn't have dNOOP, but now we
do, so we can make dXSUB_SYS a declaration again, as its name
implies.
Based on a patch originally created by Daniel Dragan (bulk88).
|
|
|
|
| |
cando() has not used PL_statcache since Perl 3 (commit a687059cbaf)
|
|
|
|
|
|
|
|
|
|
| |
These programs are the same, just behave differently depending on
under which name you call it.
This is a very old script, originally dating from the perl3 era.
It has been deprecated in favour of h2xs for a long time.
In Perl 5.26, these utilities will no longer be available.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is only one use case for requiring a tilde to be escaped,
and that is when it is the first character in a file or directory
component and is *not* an indication of a special shell expansion
such as the user's home directory. This scenario simply can't
come up when translating a Unix-format path to VMS format, so
there is nothing to be gained by escaping.
Escaping things we don't need to runs afoul of other goofy things
people do with filenames. Test2 encodes data in tilde-delimited
temporary filenames and uses a naive join and split to manipulate
the components. Adding a caret escape to each component is a
data corruption in this scheme, and this patch fixes test failures
in Test2 without any changes to that module.
|
|
|
|
|
|
|
|
|
|
| |
Switch from two-argument form. Filehandle cloning is still done with the two
argument form for backward compatibility.
Committer: Get all porting tests to pass. Increment some $VERSIONs.
Run: ./perl -Ilib regen/mk_invlists.pl; ./perl -Ilib regen/regcharclass.pl
For: RT #130122
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Because if we're running under a Unix shell, the path separator is
likely to meet the expectations of Unix shell scripts better if it's
the Unix ':' rather than the VMS '|'. There is no change when
running under DCL.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This adds a new mutex for use in the next commit for use with locale
handling.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
For those %ENV elements based on the CRTL environ array, we've
always preserved case when setting them but done look-ups only
after upcasing the key first, which makes lower- or mixed-case
entries go missing.
So make them consistently case-preserved and in the docs
distinguish this behavior from the case-blind behavior of keys
for %ENV entries based on logical namees and DCL symbols, which
remains unchanged.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vmstrnenv looks in the environ array, the DCL symbol table, and/or
the logical names pointed to by LNM$FILE_DEV, depending on the
setting of PERL_ENV_TABLES. Its index parameter, however, only
makes sense with logical names, and when returning one element of
a search list logical. So return 0 indicating a failed lookup when
passed a non-zero index and what we found is not a logical name.
Without this, the natural idiom of iterating over index values to
get the elements of a search list could get us stuck in an endless
loop if the item we are looking for does exist but is not a
logical name.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
VMS has had setenv and unsetenv since v7.0, released in 1996. We
no longer support versions even that old so there is no reason to
provide for their absence nor to avoid using unsetenv.
N.B. The unsetenv implementation still returns void even though
POSIX has required an int return value for some time. If that
gets fixed, we'll need an additional change here.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is a group of math functions prototyped in math.h, but for
some reason guarded by an ifdef that makes them visible only under
C, not C++. That causes the build to die in the POSIX extension
with a lot of undeclared function errors when building with C++.
While it's kind of messy to have to maintain a private copy of
the prototypes provided by a system-suppled header, it works, and
is a lot easier than trying to probe for each one of these in
configure.com.
So put the relevant prototypes in vmsish.h, make them visible only
to C++, and make sure they are within the extern "C" declaration.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement our own killpg by scanning for processes in the specified
process group, which may not mean exactly the same thing as a Unix
process group, but at least we can now send a signal to a parent (or
master) process and all of its sub-processes. In Perl-land, this
means we can now send a negative pid like so:
kill SIGKILL, -$pid;
to signal all processes in the same group as $pid.
|
| |
|
| |
|
|
|
|
| |
$(O) not (O) needed for macro reference.
|
| |
|
|
|
|
| |
Instead of #include-ing the C file, compile it normally.
|
| |
|
|
|
|
|
|
| |
The CRTL has supplied getlogin since v7.0, so let's not use the
home-made one anymore. Plus the CRTL als has a reentrant version,
so we'll use that under threads.
|
|
|
|
|
|
|
|
|
|
|
| |
There used to be some version of GCC 2.x that ran only on VAX that
was capable of building Perl. But that was 18-20 years ago and
there have been no recent reports of building Perl with gcc on VMS.
If and when a modern version of GCC is ported to VMS (and the
underpinnings are reportedly there as part of GNAT Pro Ada, just
nothing complete or publicly available), these ancient workarounds
are at least as likely to do harm as good. So get rid of them.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenVMS v7.3-2 was released in 2003. Regular support ended in 2006
and even prior version support will be ending in 2015, so this
seems like a pretty generous minimum for future Perl versions.
A side of effect of this is that OpenVMS VAX will no longer be
supported. The terminal software release for VAX was v7.3 in 2001
with support ending in 2012. VAX was a truly great architecture
in the 1970s, 1980s, and 1990s, but it's just missing too many of
the things expected in architectures, file systems and C run-times
of the current century.
De-supporting this older stuff allows quite a bit of code removal
and simplification, hopefully easing the maintenance burden a bit.
|
|
|
|
|
|
|
|
| |
It appears that in 09f253ec43d3a97e7 I made a guess without
consulting the standard, which in fact specifies that ENOENT
should be set when the input path is an empty string. We now
test for the standard behavior as of b4929cb48878718c, and this
change gets that passing again.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|