summaryrefslogtreecommitdiff
path: root/vms/vmsish.h
Commit message (Collapse)AuthorAgeFilesLines
* replace "define\t" with "define " in most "normal" core files.Yves Orton2023-04-291-1/+1
| | | | | | | | | | | | | | | | | | | 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.
* Remove obsolete workaround for VAX errno macrosCraig A. Berry2022-11-241-9/+3
| | | | | | | 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.
* Remove ancient and broken GCC for VMS supportCraig A. Berry2022-10-181-3/+1
| | | | | | | | | | | | | 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.
* Unixish.h, doshish.h: Reorder terminations; simplifyKarl Williamson2022-07-251-3/+2
| | | | | | | | | | | | | | | | | | | | | 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.
* replace all instances of PERL_IMPLICIT_CONTEXT with MULTIPLICITYTomasz Konojacki2021-06-091-2/+2
| | | | | | | | | | | | 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.
* style: Detabify indentation of the C code maintained by the core.Michael G. Schwern2021-01-171-2/+2
| | | | | | | | | | | 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.
* vmsish.h: Fix missing semicolon from 2bc5f86Craig A. Berry2020-03-191-1/+1
|
* Add mutex for accessing ENVKarl Williamson2020-03-111-1/+2
|
* Better selection of homegrown ino_t in vmsish.h.Craig A. Berry2017-12-091-3/+3
| | | | | | | | | | | | | | 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.
* Revert "vms/vmsish.h: move a function declaration from doio.c"Craig A. Berry2017-10-251-1/+0
| | | | | | | | | | | 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.
* Never attempt to redeclare standard functionsAaron Crane2017-10-211-6/+0
|
* vms/vmsish.h: move a function declaration from doio.cAaron Crane2017-10-211-0/+1
|
* (perl #126228) partly revert 8cc95fdb and fix a3c8358cTony Cook2017-01-191-1/+1
| | | | | | | | | | | | | | | | | | | 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).
* Add locale mutexKarl Williamson2016-04-091-1/+2
| | | | | This adds a new mutex for use in the next commit for use with locale handling.
* C99 math under C++ on VMS.Craig A. Berry2016-01-161-0/+48
| | | | | | | | | | | | | | | 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.
* killpg for VMS.Craig A. Berry2015-09-261-0/+2
| | | | | | | | | | | | 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.
* Use CRTL getlogin and getlogin_r on VMS.Craig A. Berry2015-07-121-5/+0
| | | | | | 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.
* Remove obsolete __GNUC__isms under vms/.Craig A. Berry2015-07-091-5/+0
| | | | | | | | | | | 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.
* Require v7.3-2 or later for VMS builds.Craig A. Berry2015-06-281-6/+0
| | | | | | | | | | | | | | | | 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.
* Set NAN_COMPARE_BROKEN on VMS with long doubles.Craig A. Berry2015-02-141-0/+4
| | | | | This gets us passing more (but not all) of the infnan.t tests with long doubles (which are true 128-bit IEEE 754 gizmos).
* Downgrade missing return warning for VMS C++ compiler.Craig A. Berry2015-01-251-1/+1
| | | | | | | | | | | | | 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.
* Remove mysig* macros from vmsish.h.Craig A. Berry2014-11-221-6/+0
| | | | | We haven't defined overrides for these functions for a long time so this is just dead code.
* Don’t copy VMS hints to cop->op_privateFather Chrysostomos2014-11-081-4/+2
| | | | | | 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.
* mask VMS hints bits in COPsDavid Mitchell2014-09-101-1/+1
| | | | | | | | | | | | 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)
* tbuffer_t no longer exists on VMS.Craig A. Berry2014-03-021-15/+4
| | | | | | | | | | | | | | | | | | 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.
* Add void casts to VMS-specific bail-out macro.Craig A. Berry2013-03-011-2/+2
| | | | | | | 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.
* Remove "register" declarationsKarl Williamson2012-11-241-2/+2
| | | | | | | 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
* Remove thread context from Perl_vmssetuserlnm.Craig A. Berry2012-11-031-1/+2
| | | | | | | | | | | 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.
* C++ification for vms/vmsish.h.Craig A. Berry2012-05-241-1/+13
| | | | | | 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.
* Remove some dead x2p-related code in vmsish.h.Nicholas Clark2012-01-041-54/+4
|
* Remove explicit support for pre-7.0 VMS and pre-6.0 DEC C.Craig A. Berry2011-12-101-89/+1
| | | | | | | | | | | | | | | | | | | 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.
* [RT #36079] Convert ` to '.jkeenan2011-11-221-2/+2
|
* Remove sockadapt layer from the VMS build.Craig A. Berry2011-09-031-1/+0
| | | | | | | | | | | | | | 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.
* Reduce redundant macros and prototypes in vmsish.h.Craig A. Berry2010-12-121-176/+87
| | | | | | | | 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).
* Remove redundant function macros from vms/vmsish.h.Craig A. Berry2010-09-271-6/+0
| | | | | | | | 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.
* PERL_FS_VER_FMT is only used with the current perl version, which is known atNicholas Clark2009-02-161-1/+6
| | | | compile time, so replace it with PERL_FS_VERSION, a compile time constant.
* Handle uninitialized interpreter when performing vmsish pragma checks.Craig A. Berry2009-02-131-2/+2
|
* vms fgetname wrapper.John Malmberg2009-02-111-0/+3
| | | | | | | | | | | | | | | | 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>
* For the vmsish pragma, make sure there is a thread context if needed.Craig A. Berry2009-02-011-1/+5
| | | | | | | 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).
* Re: patch@34561 VMS exec handling / cwd realpath fixesJohn E. Malmberg2008-10-301-2/+2
| | | | | | | | | 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
* [patch@34044] Enable getgrgid on VMSJohn E. Malmberg2008-06-131-0/+4
| | | | | | | | From: "John E. Malmberg" <wb8tyw@qsl.net> Message-id: <4851C439.8070007@qsl.net> With some revisions. p4raw-id: //depot/perl@34052
* Following 33291, on VMS we need to use the same prototypes other platforms Craig A. Berry2008-02-221-2/+0
| | | | | | use in order to get the do_spawn-related assert macros defined. Based on suggestions by John Malmberg. p4raw-id: //depot/perl@33343
* [patch@32376] VMS symbolic links part 4 of 4 - Final partJohn E. Malmberg2007-11-241-0/+1
| | | | | | | | | 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
* Re: copyright notices for vms.c and vmsish.hCharles Bailey2007-10-301-7/+8
| | | | | | | | | | 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
* symlink() wrapper for VMS that prevents the creation of symlinksCraig A. Berry2007-10-051-1/+10
| | | | | | with zero-length names. The standards disallow that and the test suite gets indigestion. p4raw-id: //depot/perl@32037
* make PERL_SYS_INIT/INIT3/TERM into functionsDave Mitchell2007-09-251-2/+2
| | | p4raw-id: //depot/perl@31970
* [patch@31846] vms stat and chmod fixes.John E. Malmberg2007-09-121-1/+7
| | | | | | From: "John E. Malmberg" <wb8tyw@qsl.net> Message-ID: <46E7567A.8090203@qsl.net> p4raw-id: //depot/perl@31850
* [patch@31750] rename directories on VMS like on UNIXJohn E. Malmberg2007-08-311-0/+5
| | | | | | | | | 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
* Add PERLIO_INIT and PERLIO_TERM to PERL_SYS_INIT* and PERL_SYS_TERM*Nicholas Clark2006-10-211-2/+2
| | | | | in */*ish.h headers. p4raw-id: //depot/perl@29077
* [patch@28349] vmsify - full EFS charset supportJohn E. Malmberg2006-06-071-13/+69
| | | | | | From: "John E. Malmberg" <wb8tyw@qsl.net> Message-id: <4484F8F4.7040902@qsl.net> p4raw-id: //depot/perl@28367