| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
A second compilation of a workspace would fail. The first one would
succeed because miniperl was being used, which isn't threaded.
|
|
|
|
|
| |
This had misleading indentation of preprocessor directives. I converted
all tabs to spaces, and clarified several comments.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Provide an _asciiopen_ and _asciiopen3_ pair of functions for opening
files on z/OS. These services do a standard open and then, if the
open is successful, update the CCSID of the file descriptor to 819
(ASCII) iff the oflag has ``O_CREAT`` set (e.g. a file is being
created). We could consider printing out a warning if a file is
untagged - right now this will _work correctly_ if the file in
encoded as ASCII (CCSID 819) but will fail if the file is EBCDIC.
- Provide a wrapper _Perl_mkstemp_cloexec_ which not only creates a
temporary file using mkstemp but will also tag the file as CCSID 819.
The tagging is only performed if ``__CHARSET_LIB == 1``, i.e. the
code is compiled with -qascii.
- Define _PerlIO_open_ and _PerlLIO_open3_ as _asciiopen_ and
_asciiopen3_ respectively, when the code is built for ASCII ``#if
(__CHARSET_LIB == 1)`` on z/OS ``#if defined(OEMVS)``.
|
|
|
|
| |
The build has been broken since 2009.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
The API used requires Windows Vista or later.
The API itself requires either elevated privileges or a sufficiently
recent version of Windows 10 running in "Developer Mode", so some
tests require updates.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous commit added a mutex specifically for protecting against
simultaneous accesses of the environment. This commit changes the
normal getenv, putenv, and clearenv functions to use it, to avoid races.
This makes the code simpler in places where we've gotten burned and
added stuff to avoid races. Other places where we haven't known we were
getting burned could have existed until now. Now that comes
automatically, and we can remove the special cases we earlier stumbled
over.
getenv() returns a pointer to static memory, which can be overwritten at
any moment from another thread, or even another getenv from the same
thread. This commit changes the accesses to be under control of a
mutex, and in the case of getenv, a mortalized copy is created so that
there is no possible race.
|
|
|
|
|
|
|
| |
Currently, whether the OS-level signal handler function is declared as
1-arg or 3-arg depends on the configuration. Add explicit versions of
these functions, principally so that POSIX.xs can call which version of
the handler it wants regardless of configuration: see next commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are a bunch of places in core that do
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
to decide whether the C signal handler function should be declared with,
and called with, 1 arg or 3 args.
This commit just adds
#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
# define PERL_USE_3ARG_SIGHANDLER
#endif
Then uses the new macro in all other places rather than checking
HAS_SIGACTION and SA_SIGINFO. Thus there is no functional change; it just
makes the code more readable.
However, it turns out that all is not well with core's use of 1-arg
versus 3-arg, and the few commits will fix this.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From the code comments:
This is an alias for the OS's siginfo_t, except that where the OS
doesn't support it, declare a dummy version instead. This allows us to
have signal handler functions which always have a Siginfo_t parameter
regardless of platform, (and which will just be passed a NULL value
where the OS doesn't support HAS_SIGACTION).
It doesn't actually do anything useful yet, but will shortly allow
signal handler functions to be rationalised.
|
|
|
|
|
| |
This was only defined in non-PERL_IMPLICIT_SYS mode, and not used
anywhere.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-the first arg of win32_get_privlib is not used if the registry is not
queried, create a macro to allow the arg to drop out on WIN32_NO_REGISTRY
builds for efficiency and not to have unused C litteral strings in the
binary
-This patch changes the ABI of
PerlEnv_lib_path/PerlEnvLibPath/win32_get_privlib between USE_NO_REGISTRY
and no USE_NO_REGISTRY. Since win32_get_privlib is not exported from
perl523.dll, assume it and PerlEnv_lib_path are not public API, note
technically PerlEnv_lib_path will be callable only on PERL_IMPLICIT_SYS
builds, on no PERL_IMPLICIT_SYS builds it will fail at link time since
win32_get_privlib isnt exported. Therefore place it in
non-[affecting]-binary compatibility even though it does affect binary
compatibility.
-delay load advapi32.dll to save startup time (loading the DLL and the DLL
calling its initializers in DllMain) and one 4 KB memory page for
advapi32's .data section (doing "perl -E"sleep 100" on WinXP shows
advapi32 has a 20KB long .data section, first 4 KB are unique to the
process, the remaining 16KB are COW shared between processes according
to vmmap tool), putting a DebugBreak() in pp_getlogin and doing a
"nmake all" shows miniperl never calls getlogin during the build process.
An nmake test shows only ext/POSIX/t/wrappers.t and lib/warnings.t execute
pp_getlogin. Keeping advapi32.dll out of the perl process requires
removing comctl32.dll, since comctrl32.dll loads advapi32.dll, from perl
which I always do as a custom patch.
filed as [perl #123658]
XXXXXXXXXXXXXXXXXXXXXXX
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following was produced for every non-miniperl object built,
including for XS modules and the test builds done by
ExtUtils::MakeMaker etc
..\iperlsys.h:640:66: warning: 'struct utimbuf' declared inside parameter list
typedef int (*LPLIOUtime)(struct IPerlLIO*, const char*, struct utimbuf*);
^
..\iperlsys.h:640:66: warning: its scope is only this definition or declaration,
which is probably not what you want
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An empty cpan/.dir-locals.el stops Emacs using the core defaults for
code imported from CPAN.
Committer's work:
To keep t/porting/cmp_version.t and t/porting/utils.t happy, $VERSION needed
to be incremented in many files, including throughout dist/PathTools.
perldelta entry for module updates.
Add two Emacs control files to MANIFEST; re-sort MANIFEST.
For: RT #124119.
|
|
|
|
|
|
|
|
| |
Otherwise the VMS C++ compiler mangles it and we get a link
failure.
And while we're there we can eliminate some PerlIO workarounds
for problems in long-defunct versions of the CRTL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The same logic but with more safety checks is already defined for
PerlSIO_ungetc in iperlsys.h, so DRY says we should just use that.
Also, that definition in iperlsys.h really depends on the library
we are using, not the compiler. And there is only one viable C
library on VMS and it ships with the OS, so it's really just an
OS dependency.
N.B. While it may be something of a fool's errand to maintain the
stdio layer, deleting redundant code can only be a good thing,
possibly enabling further refactoring and clean-up.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code dealt rather inconsistently with uids and gids. Some
places assumed that they could be safely stored in UVs, others
in IVs, others in ints; All of them should've been using the
macros from config.h instead. Similarly, code that created
SVs or pushed values into the stack was also making incorrect
assumptions -- As a point of reference, only pp_stat did the
right thing:
#if Uid_t_size > IVSIZE
mPUSHn(PL_statcache.st_uid);
#else
# if Uid_t_sign <= 0
mPUSHi(PL_statcache.st_uid);
# else
mPUSHu(PL_statcache.st_uid);
# endif
#endif
The other places were potential bugs, and some were even causing
warnings in some unusual OSs, like haiku or qnx.
This commit ammends the situation by introducing four new macros,
SvUID(), sv_setuid(), SvGID(), and sv_setgid(), and using them
where needed.
|
|
|
|
|
| |
This updates the editor hints in our files for Emacs and vim to request
that tabs be inserted as spaces.
|
|
|
|
|
|
|
|
|
| |
# New Ticket Created by (Peter J. Acklam)
# Please include the string: [perl #81904]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=81904 >
Signed-off-by: Abigail <abigail@abigail.be>
|
|
|
|
|
|
| |
Brings it in line with the rest of the PerlStdIO* functions that
accept parameters in the same order as the corresponding PerlSIO_*
macros. See also commit ecc880cc.
|
|
|
|
|
|
|
|
|
| |
They should have the same prototype as in stdio.
This "proper fix" replaces the 5.12.0 compatible fix in commit 634b482,
but cannot be integrated into 5.12.1 because it breaks binary compatibility.
See also http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704
|
|
|
|
|
|
|
|
|
| |
Arguments to fputc() and fputs() are reverted on Windows.
This is not the optimal patch, but will be backwards compatible
with what is in 5.12.0. For the "correct" patch please see
http://rt.perl.org/rt3/Public/Bug/Display.html?id=72704
|
|
|
|
|
| |
as we already know it, and use it in S_init_perllib() to save a strlen() in
S_incpush_use_sep().
|
|
|
|
|
| |
http://www.nntp.perl.org/group/perl.daily-build.reports/2008/02/msg53937.html
p4raw-id: //depot/perl@33370
|
|
|
| |
p4raw-id: //depot/perl@32793
|
|
|
|
|
| |
p4raw-link: @32012 on //depot/perl: b6455c53c26be8a62e12a3f2a24a3a5086dd2c7b
p4raw-id: //depot/perl@32013
|
|
|
|
|
| |
Message-ID: <4597C078.4000503@iki.fi>
p4raw-id: //depot/perl@29645
|
|
|
|
|
| |
Message-ID: <45687324.3040102@iki.fi>
p4raw-id: //depot/perl@29378
|
|
|
|
|
|
|
|
|
| |
Fixes a warning brought about by change #25941 (which made the
filename argument const).
The various implementations of PerlLIOUtime() (in NetWare/, win32/
and wince/) already take a const filename.
p4raw-link: @25941 on //depot/perl: e96b369dc61077fe31b75895167f55dbce4d7519
p4raw-id: //depot/perl@25945
|
|
|
|
|
| |
Message-ID: <42DE3846.6050606@gmail.com>
p4raw-id: //depot/perl@25200
|
|
|
|
|
| |
(Thanks to Nicholas Clark)
p4raw-id: //depot/perl@25041
|
|
|
|
|
|
|
|
| |
That fact that it wasn't const already was highlighted by a warning
from pp_open_dir() generated by change 24743. Rather than undo the
const change in pp_open_dir(), this seems to make more sense. Hope I
haven't broken Netware or WinCE.
p4raw-id: //depot/perl@24974
|
|
|
|
|
|
| |
This is the patch from the end of the thread that started here:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2004-09/msg00055.html
p4raw-id: //depot/perl@24092
|
|
|
|
|
| |
[perl #24167] `#' comment signs not at the very beginning of a line
p4raw-id: //depot/perl@21433
|
|
|
|
|
|
|
|
| |
note that this change will break binary compatibility with the
default 5.8.0 build options; nevertheless I think it is worth
having in 5.8.1 (people who want the compatibility can disable
the option in the makefile)
p4raw-id: //depot/perl@18327
|
|
|
|
|
|
|
| |
do_exec parts elided so that change is restricted strictly to
windows; binary compatibility stubs not needed)
p4raw-link: @17568 on //depot/maint-5.6/perl: 07691bcd6c6d7fd92f508fd5268e700370ea47c2
p4raw-id: //depot/perl@17570
|
|
|
|
|
| |
from perl
p4raw-id: //depot/perl@16503
|
|
|
|
|
|
| |
non PERL_IMPLICIT_SYS parts of iperlsys.h had junk
for some slots which now perlsdio.h is targeting.
p4raw-id: //depot/perlio@16366
|
|
|
|
|
|
|
| |
Have perlsdio.h use the iperlsys.h aliases and see
if that helps non-PERLIO IMP_SYS on Win32.
(Miniperl okay on linux).
p4raw-id: //depot/perlio@16350
|
|
|
| |
p4raw-id: //depot/perl@16076
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* support for building it in the regular makefiles
* large files support via the _*i64() functions (this should be
portable to the 32-bit universe too, but quite untested and
and binary-incompatible, therefore not enabled there)
* three additional test failures in addition to the t/end.t one
(see README.win32)
* sprintf() on Windows gets %I{32,64,}[xoud] format that parallel
the ones available from the CRT (needed because Perl uses
the UVxf macros in both sprintf() *and* in sv_catpvf() et al.)
* add a few 64-bit notes to README.win32
The following general problems were also fixed:
* s/struct stat/Stat_t/g
* Data::Dumper had some naughty 'long' typecasts
* Errno_pm.PL didn't work safe when winsock.h was not in the same
directory as errno.h
* various tell/seek things were incorrectly prototyped
* squelch ugly looking noise when running tests
* Embed.t wasn't linking in all the libraries
* perl57.dll is now perl58.dll (anticipating 5.8.0-RC1)
* re-enable all the disabled warnings (additional fixes may be
needed for the warnings uncovered by this)
p4raw-id: //depot/perl@16033
|
|
|
|
|
| |
Message-Id: <200204012048.PAA05178@mailhub2.stratus.com>
p4raw-id: //depot/perl@15666
|
|
|
| |
p4raw-id: //depot/perl@15292
|
|
|
|
|
|
| |
From: "Mattia Barbon" <mbarbon@dsi.unive.it>
Message-Id: <3C8BD9C7.13988.73992D@localhost>
p4raw-id: //depot/perl@15191
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
final touches to the audit for statics and thread-unsafe code
* make DB_File, ODBM_File thread-safe
* remove unnecessary/dangerous statics and protect others
from not getting accidentally enabled under threaded perls
windows support functions get_childdir() et al aren't exported
correctly under vanilla build
Testing under win32 appreciated since changes there had
to be manually merged and I cannot test how badly did I do.
p4raw-link: @12268 on //depot/perlio: bb407f0b8769c638c05e60ebfd157a1e676a6c22
p4raw-id: //depot/perl@12678
p4raw-integrated: from //depot/maint-5.6/perl@12677 'copy in'
win32/vmem.h (@5902..) 'merge in' ext/DB_File/DB_File.xs
(@8693..) win32/win32iop.h (@8917..) ext/ODBM_File/ODBM_File.xs
(@8995..) iperlsys.h (@9154..) scope.c (@9584..) makedef.pl
(@11425..) gv.c (@12026..) op.c (@12145..) util.c (@12220..)
toke.c (@12550..) ext/B/B.xs ext/File/Glob/Glob.xs
ext/Opcode/Opcode.xs ext/re/re.xs (@12653..) mg.c win32/win32.c
(@12668..)
|
|
|
|
|
| |
Message-Id: <5.1.0.14.0.20010926173048.01aac5b0@exchi01>
p4raw-id: //depot/perl@12252
|
|
|
|
|
| |
working in 5.7.x
p4raw-id: //depot/perl@11803
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
platforms that don't have pthread_atfork() (extension of
the fix in change#11151).
Note that this will not help extensions that call fork()
directly in C, or that link to libraries that call fork()
directly. Such cases must be fixed to either call
PerlProc_fork(), or call atfork_lock() in parent before the
calling the function that forks and call atfork_unlock()
in both parent and child immediately after the fork().
(There are no worries if C code calls exec() in the child
immediately after a fork(). Only cases where the child
calls perl's API functions (including New()) after the
fork() are problematic.)
This change also eliminates the use of vfork() from perl,
since all such uses were violating the severe restrictions
on modifying the state of the process between the vfork()
and the exec().
This is a modified version of patches suggested by Abhijit
Menon-Sen and Richard Soderberg.
p4raw-link: @11151 on //depot/perl: 50dd6e574ff39b609595ddb16b2fe9f625a26f8c
p4raw-id: //depot/perl@11423
|