| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main exceptions being dist/, ext/, and Configure related
files, which will be updated in a subsequent commit. Files in the cpan/
directory are also omitted as they are not owned by the core.
'#define' has seven characters, so following it with a \t makes it look
like '#define ' when it is not, which then frustrates attempts to find
where a given define is. If you *know* then you do a
git grep -P 'define\s+WHATEVER'
but if don't or you forget, you can get very confused trying to find
where a given define is located. This fixes all such cases so they
actually are 'define WHATEVER' instead.
If this patch is getting in your way with blame analysis then view it
with the -w option to blame.
|
|
|
|
|
|
|
| |
We won't be missing these from errno.h for any CRTL in this century
and it was always not quite right (but harmlessly redundant) to
use the workaround for non-Alpha since if we didn't need it for
Alpha then we also didn't need it for any post-Alpha architecture.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There has not been a viable GCC for VMS in a couple of decades and
the hacks and workarounds that were necessary then are unlikely to
be helpful for any future work. Reportedly significant portions of
the GCC toolchain were available in GNAT Ada, but there was never
an independent release of the C compiler and that support has now
been removed as well.
Cleaning this up should make it easier to add alternate compiler
support in the future, such as for the clang port in progress at
VSI.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The IO and memory terminations need to be after other things. Add a
comment so that future maintainers won't make the mistakes I did.
Also refactor so that amiga os doesn't have a separate list to get out
of sync
I suspect that the amiga termination should be moved to earlier in
the sequence, but absent any evidence; I'm leaving it unchanged.
vms destruction was missing a bunch of things and I didn't see any
reason to have special handling, so I changed it to just use the
standard, presuming the discrepancies were due to changes in the
standard not getting propagated to vms.
The common definitions are also moved to perl.c which is the only place
they are used (including cpan). This makes them available in all
circumstances. Otherwise, the #ifdef's for including the relevant
header files only include one, so there would be undefined macros.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the removal of PERL_OBJECT
(acfe0abcedaf592fb4b9cb69ce3468308ae99d91) PERL_IMPLICIT_CONTEXT and
MULTIPLICITY have been synonymous and they're being used interchangeably.
To simplify the code, this commit replaces all instances of
PERL_IMPLICIT_CONTEXT with MULTIPLICITY.
PERL_IMPLICIT_CONTEXT will stay defined for compatibility with XS
modules.
|
|
|
|
|
|
|
|
|
|
|
| |
This just detabifies to get rid of the mixed tab/space indentation.
Applying consistent indentation and dealing with other tabs are another issue.
Done with `expand -i`.
* vutil.* left alone, it's part of version.
* Left regen managed files alone for now.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We had been using a 64-bit definition of myino_t only when
_LARGEFILE is defined, but we actually get large file support via
either _LARGEFILE or _USE_STD_STAT because both give us 64-bit
off_t, so look at both definitions.
The size of off_t is not any great indicator for the size of
ino_t, but this preserves the intent of the existing code.
TODO: figure out when _USE_STD_STAT became available; it's
possible we no longer need this hackish layer on top of the
stat struct.
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit d4bd48023fe0ba950fface5aa859b6852aa29fc4.
perlio.h depends on vmsish.h and comes in (via iperlsys.h) about
a thousand lines later in perl.h. So we can't put a prototype
that uses PerlIO in vmsish.h
Maybe there is a way to get that prototype out of doio.c, but
this isn't it.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
This adds a new mutex for use in the next commit for use with locale
handling.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This gets us passing more (but not all) of the infnan.t tests
with long doubles (which are true 128-bit IEEE 754 gizmos).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 haven't defined overrides for these functions for a long time
so this is just dead code.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
The macro used in vms/vms.c for errors from native calls deemed
too severe to handle was calling fprintf without checking return
values, which caused a huge pile of warnings when compiling with
/WARN=ENABLE=LEVEL5. So suppress those warnings with a void cast.
|
|
|
|
|
|
|
| |
This finishes the removal of register declarations started by
eb578fdb5569b91c28466a4d1939e381ff6ceaf4. It neglected the ones in
function parameter declarations, and didn't include things in dist, ext,
and lib, which this does include
|
|
|
|
|
|
|
|
|
|
|
| |
This routine by its very nature applies to the whole process so
there is no way it can make use of a thread context, and it may need
to be called from places where there is no thread context, such
as very early in start-up.
It's not documented, was never intended to be part of the API, was
only made global so it could be called from doio.c, and no uses of
it turn up in a CPAN grep, so the change should be safe.
|
|
|
|
|
|
| |
Its prototypes need extern "C" and the compiler messages that
cause trouble with DEC/Compaq/HP C++ are different from the ones
that cause trouble with C.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenVMS v7.0 was released in 1995. There have been no reports of
recent releases of Perl building on versions that far back, yet we
still have quite a bit of code that explicitly supports versions
*prior* to v7.0.
There is a similar story for DEC C v6.0. It was released in 1998,
and has been superceded by numerous subsequent versions. Yet the
VMS-specific code in the core is littered with workarounds and
hacks that defend against deficiencies in very old compiler
versions.
This code is for all practical purposes no longer maintained or
maintainable, so the best path forward seems to be to remove it.
Anyone able and willing to commit to long-term support of it
could argue for its restoration, assuming Perl 5.14.x is not
adequate.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SOCKETSHR is/was an interface to abstract out TCP/IP calls for the
various vendors' networking implementations, including the freeware
CMU-IP stack. Neither SOCKETSHR nor CMU-IP has seen any maintenance
for over a decade and are likely not even C89-compliant. The CRTL
socket routines have been supported by the different vendors' stacks
for many years so there is no reason to maintain an alternative, and
there probably hasn't been a real working alternative for some years
anyway.
The code is still there in maint-5.14 and earlier branches if
anyone has need of it.
|
|
|
|
|
|
|
|
| |
In imitation of e64ca59f2852bc5d0450eea5ed412609a046829d, we don't
really need different prototypes or macros for MULTIPLICITY and
non-MULTIPLICITY. For now, leave drop-in replacements of CRTL
functions alone as there may be more going on there (arguably
these really have no business passing around Perl thread context).
|
|
|
|
|
|
|
|
| |
my_setenv, do_spawn, and do_aspawn are already in embed.h, though
they probably weren't when these were originally put in vmsish.h.
This change is a required follow-up to e64ca59f2852bc5d0450eea5ed412609a046829d;
without it the macro definitions differ in the non-multiplicity case.
|
|
|
|
| |
compile time, so replace it with PERL_FS_VERSION, a compile time constant.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fgetname() does not always return the correct Unix format file
specification when the decc$filename_unix_report feature is active and
is ignoring the decc$readdir_dropdot_notype setting.
So always have fgetname() return a VMS format file specification. When
decc$filename_unix_report is active, use unixify() to convert it to the
expected syntax.
This bug shows up doing rename tests on an open file that has no file
extension with decc$filename_unix_report and decc$readdir_dropdot_notype
both active.
Message-ID: <499042B5.4030803@gmail.com>
|
|
|
|
|
|
|
| |
The hints are interpreter-specific, and we check them in some
pretty low-level routines, such as time(), gmtime(), and stat(),
where it's possible thread context may not have been initialized
yet (or may have already been torn down).
|
|
|
|
|
|
|
|
|
| |
From: "John E. Malmberg" <wb8tyw@qsl.net>
Message-id: <49092842.8090805@qsl.net>
Convert symlink target to UNIX format on VMS. (Cwd changes not
included here.)
p4raw-id: //depot/perl@34667
|
|
|
|
|
|
|
|
| |
From: "John E. Malmberg" <wb8tyw@qsl.net>
Message-id: <4851C439.8070007@qsl.net>
With some revisions.
p4raw-id: //depot/perl@34052
|
|
|
|
|
|
| |
use in order to get the do_spawn-related assert macros defined. Based
on suggestions by John Malmberg.
p4raw-id: //depot/perl@33343
|
|
|
|
|
|
|
|
|
| |
From: "John E. Malmberg" <wb8tyw@qsl.net>
Message-id: <473FF49A.5000302@qsl.net>
[.vms...] parts with revisions to compile on older systems and some
POD clean-up.
p4raw-id: //depot/perl@32474
|
|
|
|
|
|
|
|
|
|
| |
Message-id: <47223FA8.90300@newman.upenn.edu>
At my instigation, Charles agreed to wear the copyright hat for
the major VMS files. This is by analogy with the core files
for which Larry, as Prime Mover, is the only named copyright
holder, but "and others" includes, well, lots of others.
p4raw-id: //depot/perl@32201
|
|
|
|
|
|
| |
with zero-length names. The standards disallow that and the test
suite gets indigestion.
p4raw-id: //depot/perl@32037
|
|
|
| |
p4raw-id: //depot/perl@31970
|
|
|
|
|
|
| |
From: "John E. Malmberg" <wb8tyw@qsl.net>
Message-ID: <46E7567A.8090203@qsl.net>
p4raw-id: //depot/perl@31850
|
|
|
|
|
|
|
|
|
| |
From: "John E. Malmberg" <wb8tyw@qsl.net>
Message-id: <46D79236.4070207@qsl.net>
More aggressive UNIX-like renaming of directories on VMS by analogy
with unlink() and rmdir(). Patch modified to compile under threads.
p4raw-id: //depot/perl@31777
|
|
|
|
|
| |
in */*ish.h headers.
p4raw-id: //depot/perl@29077
|
|
|
|
|
|
| |
From: "John E. Malmberg" <wb8tyw@qsl.net>
Message-id: <4484F8F4.7040902@qsl.net>
p4raw-id: //depot/perl@28367
|