| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
a752046a added TESTPREPGCC to allow VC++ builds to succeed, but
unfortunately defined TESTPREPGCC after use, which meant the
test-prep-gcc target wasn't being treated as a dependency.
Define TESTPREPGCC earlier.
|
|
|
|
| |
just like full perl uses -fno-strict-aliasing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit dbf36b7ad7 broke VC with dmake building by not defining the
test-prep-gcc target for VC builds. Instead of using $(NOOP), which incurs
the cost of dmake lauching another cmd.exe process to execute "rem", use
make lang preprocessor directives. Example of error
C:\perl521\src\win32>dmake test
.......normal building here.....
........cut.........
..\miniperl.exe -I..\lib ..\pod\perlmodlib.PL -q ..
..\perl.exe -f ..\pod\buildtoc -q
dmake: Error: -- `test-prep-gcc' not found, and can't be made
C:\perl521\src\win32>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduced in commit f54fcafc49 in 5.11.2 , the -I paths are dead since
commit cb8c84586a in 5.19.6 that renamed dist/Cwd to dist/PathTools . Since
the paths have been invalid for so long with no complaints so remove them.
That -I probably isn't needed anymore because Cwd AKA PathTools have been
in write_buildcustomize.pl since day 1 of write_buildcustomize.pl in
commit 5e4c4c91bd from 5.13.10 .
The makefile line says to copy to /lib the directory win32/lib. win32/lib
has never existed in Perl. There was a win32/ext from commit b4ad57f4f7 in
5.9.2 to commit 78ff2d7be7 in 5.9.5 but not win32/lib. The useless
makefile rule is from day 1 of makefile.mk in commit 08aa1457cd in 5.004001
which was copied from the win32/Makefile, at the time of commit 08aa1457cd.
win32/Makefile got the win32/lib copy line from day 1 of win32/Makefile in
commit 0a753a7640 , and there was no /win32/lib when /win32 was commited.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setting _CRTDBG_LEAK_CHECK_DF arranges for _CrtDumpMemoryLeaks() to be
called automatically at program termination, outputting a report of all
allocations that have not been freed into the Output window in Developer
Studio.
If a leak is reported then note its allocation number, change the -1 in
the _CrtSetBreakAlloc(-1L) call to the leaked allocation number and
rebuild. A breakpoint will be set on the allocation call that leaked.
(A slicker approach is to have the report include the file name and line
number of the leaked allocation call by inserting
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
early in each compilation unit (e.g. by inserting it early in perl.h), but
that works by re-#defining malloc/free etc, which unfortunately clashes
with #defines in win32/win32iop.h and with the 'free' member of the
regexp_engine struct in regexp.h.)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit implements the suggestion from perl #123439 of adding a
CFG=DebugSymbols option for a debug mode build without enabling perl's
-DDEBUGGING code, and also adds a CFG=DebugFull option for a debug mode
build which uses the debug version of the CRT and enables -D_DEBUG code
(in perl and in the CRT) such as extra assertions and invalid parameter
warnings. (Note that failed invalid parameter checks are harmless thanks
to perl's invalid parameter handler in win32/win32.c. However, blindly
ignoring them is not a good thing. Compiling with _DEBUG causes the handler
to print warnings on STDERR about checks that have failed. Ideally these
should be fixed, or silenced by some other means if they really are
harmless--as was done for some such warnings by commit d52ca5864f.)
I attempted to do something like the DebugFull part once before, but was
held back by miniperl not using PerlIO, which resulted in a huge number of
invalid parameter warnings:
http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg191674.html
However, that issue was recently removed by commit 8c847e6678, which
removed Windows makefile support for building without PerlIO, including
making miniperl now use PerlIO.
As noted in the makefiles comments, however, there are still a few cases
of invalid parameter warnings, which is partly why I've added the new
DebugFull option, rather than altering the existing Debug option.
|
|
|
|
| |
The same declaration appears slightly higher up in the same file.
|
|
|
|
|
|
|
|
|
|
|
| |
These compilers (with other contemporaneous packages, I forget exactly
which versions of everything I have installed) contain
#define fstat _fstat
in include/sys/stat.h, which clashes with win32/win32iop.h's #define and
causes "warning: "fstat" redefined [enabled by default]" for just about
every .c file compiled. Likewise for stat.
|
|
|
|
|
|
|
|
|
|
| |
This is a potential security issue, and while we'd need a deprecation
cycle to remove it from system(), there hasn't been a production
release of perl with list pipe open, so we can pretend it never was.
Without the shell, CreateProcess() won't pick up .cmd or .bat files,
which several perl utilities are packaged as on Win32, so use
qualified_path() to produce a full executable name.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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
|
| |
|
| |
|
|
|
|
| |
Extracted from patch submitted by Lajos Veres in RT #123693.
|
|
|
|
|
| |
With thanks to Craig A. Berry and Daniel Dragan for finding the d_cplusplus
and extern_C options, respectively.
|
|
|
|
| |
of perl
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This command is not run for any other test targets, and there seems to be
no point in it, at least not now, since files under t\ are not read-only
anyway.
(It dates from the creation of the minitest target in commit 137443ea0a.
At that time, the same command was already used in the $(PERLEXE) target,
having been added there in the initial creation of win32/Makefile in
commit 0a753a7640. Needless to say, neither commit gives any details on
why the command was deemed necessary.)
|
|
|
|
|
|
|
| |
"Use of uninitialized value $opt{"uselongdouble"} in string eq at
config_sh.PL line 202."
Only GCC supports USE_LONG_DOUBLE, so set the option to undef for VC++.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
As noted in #123394, building without PerlIO was all but deprecated in
5.18.0 and is no longer supported by Configure on POSIX systems, so there
is no need for the Windows makefiles to provide support for it either.
Therefore, we can simply enable PerlIO in the canned configuration files
and remove any fiddling with that setting for the real configuration,
which means that miniperl will also now have PerlIO enabled without
needing the recently added change to win32.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since f7219c0a9696421192a4830631fa6e3fd28adf39 didn't work out, just add
the config.h dependency directly to minitest instead (which was my main
reason for doing this anyway).
We can also drop the utils dependency from minitest since it doesn't seem
to be required other than to get git_version.h/Config_git.pl made along
the way, but we can add that dependency directly instead. In this way,
minitest still works, but now without building the full perl.exe and
perl5XX.dll as well (which was previously happening as a consequence of
the utils dependency).
|
|
|
|
| |
That broke the (full) build. Sorry for only minitest-ing before pushing :-/
|
| |
|
|
|
|
|
|
| |
Actually, you can in the nmake makefile (win32/Makefile), which is surely
how it slipped through in commit 4ea01bd3b4, but you can't do it in the
dmake makefile (win32/makefile.mk). Change it in both for consistency.
|
| |
|
|
|
|
|
|
|
|
| |
fixes io/data.t
This could be considered a bug in io/data.t, since it writes the scripts
in text mode, but making miniperl behave closer to perl may fix
other issues too.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Several tests use PerlIO layers (:utf8, :pop) without testing for it.
non-PerlIO builds were vaguely deprecated in 5.18.0 and can no longer be
enabled on POSIX systems through Configure, so making miniperl PerlIO
on Win32 is no big stretch
minitests failing now:
io/data.t
io/fs.t
op/coreamp.t
op/filetest.t
op/fork.t
op/glob.t
op/heredoc.t
op/magic.t
op/sselect.t
op/stat.t
op/tie_fetch_count.t
|
|
|
|
|
|
|
| |
Test::Harness now requires IO at all times, which means it can't
be used with miniperl
many tests fail with minitest at this point
|
|
|
|
| |
and then remove the disabling of that warning.
|
|
|
|
|
|
|
|
|
|
| |
Invocations of $(PERLEXE) from win32\ do not need -I..\lib since $(PERLEXE)
is ..\perl.exe, which will pick up the lib\ folder in ..\ anyway.
Invocations of perl.exe from t\ (which may be a copy of either perl.exe or
miniperl.exe from the top-level folder) also do not need -I..\lib since
they all run the harness program, which fixes up @INC with exactly that
..\lib folder in a BEGIN block anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Unix /t/perl is a symlink to /perl and the OS knows they are the same
file. On Win32 perl.exe and perl5**.dll are copied from / to /t, and the OS
thinks they are 2 separate files (and they are on disk). Both Win32 and
Unix use MMIO and COW/inter-process sharing for their running binaries. On
Unix the symlink means the 2 perl binaries will be memory mapped to the
same physical memory when running. On Win32 they won't be since they are 2
separate files. It is a waste of CPU cache/physical memory for the Win32
harness process and the child .t processes to not share the same disk
file/phy mem/same binary. Previously only the XS DLLs in /lib/auto were
shared between harness process and child .t processes, now perl.exe and
perl5**.dll will be shared between the 2 processes. Copying /perl.exe to
/t/perl.exe is from 1st commit of current Makefile in commit 68dc074516
and predates Win32 perl running harness which is from commit 137443ea0a
Also fix the broken "-I.\lib" in test-notty in makefile.mk . This problem
was discovered with VMMap. This patch is slightly related to
[perl #114704] .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In commit 137443ea0a config_h.PL was introduced. There is no ML archive
from that time of the actual patches or their rational. From day 1 of
config_h.PL for the root config.h, it didn't copy the new one config.h to
the normal location of config.h if the files matched. This prevents
redundant dirtying of all core moudules with the
"Makefile out-of-date with respect to "/make clean/rerunning of makefile.pl
/new make all cycle. But the optimization didn't work in practice since
the modules declare a dependency on /lib/CORE/config.h not /config.h.
Previously "touch"ing /win32/Makefile would trigger a mass rebuild,
even if config.h's contents are the same. Now only if the new after
"touch"ing /win32/makefile config.h is different from the old config.h
, will a mass rebuild of module be triggered. This makes reduced the
amount of time core devs have to spend to work on Win32 perl.
|
|
|
|
|
| |
When this XSUB was written croak_xs_usage didn't exist. Now it does. Use it
so the error string is shorter in the perl binary.
|
|
|
|
| |
perl.exp:fake:(.edata+0x1214): undefined reference to `win32_async_check'
|
|
|
|
| |
error: invalid conversion from 'const timeval*' to 'PTIMEVAL'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In MinGW-w64 builds, there are warnings/errors like this (depending on the
compiler version used):
gcc-4.5.3:
warning: passing argument 2 of 'execv' from incompatible pointer type
gcc-4.8.0:
error: invalid conversion from 'const char* const*' to 'char* const*'
This happens because MinGW-w64's process.h declares execv/execvp's second
argument as 'char * const*' instead of 'const char * const*'.
The _execv/_execvp versions don't have this problem so use them instead.
MSDN says execv/execvp are deprecated POSIX functions; use the ISO C++
conformant _execv/_execvp instead anyway so it is not even worth sticking
with execv/execvp for those compilers (namely, MinGW and VC++) that have
the correct declarations.
Likewise with spawnv/spawnvp vs. _spawnv/_spawnvp.
|
| |
|