| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
* Make Devel-Peek/t/Peek.t less sensitive to regexp flag changes.
Devel-Peek had flag names and binary representation hardcoded. Flag
names *should* be enough. Otherwise we have to update bits of this
test every time we muck with flags that don't affect the flags being
tested.
* Let B::Deparse know about the new RXf_PMf_CHARSET shift value.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
If the operand is magical, try_amagic_bin will already have copied
the operand if both left and right were the same, so left == right
will no longer be true by the time this path is reached. This has
been the case since v5.13.11-400-g75ea7a1.
|
|
|
|
|
| |
sv_utf8_upgrade_nomg does not reallocate the stack, as of
v5.19.6-25-g7a3f960.
|
|
|
|
|
|
|
|
|
|
| |
gmtime has a target allocated for it, but it hasn’t used that target
since 46fc3d4c6 (inseparable changes from match from perl-5.003_97g to
perl-5.003_97h, probably the ‘Mondo Cool patch’ mentioned in the com-
mit message).
There is no reason not to use it and avoid allocating a fresh SV with
each scalar-context call.
|
|
|
|
|
|
|
|
|
|
| |
The purpose of EXTEND_MORTAL is to extend the mortals stack only
once before pushing multiple items. Here we are just going to push
one item, so extending it gains us nothing, as sv_2mortal is going
to do that anyway.
Moreover, we will not even be using the mortals stack if there has
been an error.
|
|
|
|
| |
I changed the op tree in v5.21.5-101-g5e46266.
|
|
|
|
|
| |
Without this, we cannot do cUNOPx(complex expression) without worrying
about precedence issues.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the PerlIO vtables were const only on PERL_GLOBAL_STRUCT_PRIVATE
builds, which was created for former Symbian port and today is rarely used.
Since writing/hooking the PerlIO vtables from XS has never been public API
and is very unlikely to be occuring on CPAN, make then const so they will
be shared between perl processes.
b4 VC2008 x64 perl521.dll .rdata section 0x7293C bytes, .data 0x34B0 bytes
after .rdata 0x7321C .data 0x2BD0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2.26 2014-12-26 16:27:23+00:00 UTC
* BUGFIX / INCOMPAT: Remove "fileno" and "umask" from the list of
CORE subs protected by autodie and Fatal.
When they return undef, it is not a failure.
* BUGFIX: Fixed an error that could occur during global destruction of
the form "(in cleanup) Can't use an undefined value as an ARRAY
reference at .../autodie/Scope/GuardStack.pm line 48 during global
destruction" (Thanks to Dave Rolsky).
* BUGFIX: The open-pragma is now properly ignored when open is
given an explicit layer. This brings autodie protected
open in sync with open. Thanks to Gregory Oschwald and
Graham Knop for the report + test case and the patch.
(GH#52 + GH#53)
* BUGFIX: Hide the "SCALAR" (buffer) argument in the string
representation of autodie::exception for the read,
sysread and syswrite CORE subs. This is to avoid
a dump of binary data to the screen/log when a
(sys)read or syswrite fails.
* FEATURE: Let autodie::exception work in equality tests and
string comparison via "overload fallback".
(Thanks to Michael G. Schwern)
* DOC: Mention that "kill" is in the ":ipc" category. It has
been there since autodie v2.14.
(Thanks to Felipe Gasper for reporting it, RT#97320).
* INTERNAL: Use "parent" instead of "base" for inheritance. Also
avoid some @ISA relationships that were redundant.
Either truly redundant ones or by importing "import"
from Exporter v5.57.
- This change implies that perl 5.8 users must now
also fetch "parent" from cpan.
(Thanks to Olivier Mengué, GH#59)
* DEVEL / TEST: The autodie module now accepts an undefined Fatal
version, assuming it to be development version.
Test cases that require versions are now either
skipped or considered "release" test.
* TEST / INTERNAL: Enabled travis-ci for Perl 5.20
* TEST: Close temp file before re-opening in t/truncate.t.
(Thanks to Craig A. Berry, RT#96609)
* TEST: Pass O_TRUNC with O_CREAT to sysopen in t/utf8_open.t.
(Thanks to Craig A. Berry, RT#87237)
* TEST: Clean up temp file in t/truncate.t.
(Thanks to Dave Mitchell, RT#100688)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-gv_add_by_type is special only for non-GVs, and add AV to GV, otherwise
it is just assigning to GP slot (in this case through GvSV), which
CLEAR_ERRSV already did in another branch, so inline the gv_add_by_type
-dont compute GvSV multiple times, GvSV contains 2 derefs, after this patch
it will contains just 1 deref ("*svp") without an offset (deref without
offset is smaller in x86 machine code than deref with offset)
-SvREFCNT_dec_NN for efficiency
-move SvPOK_only closer to SvMAGICAL, this ensures SvFLAGS is read and
written only once, not 2 reads and 1 write, this is specifically for
RISC-ish cpus
-the goto clresv_newemptypv is because VC optimizer in -O1 didn't combine
the branches
perl521.dll VC 2003 before .text section size in machine code bytes
0xc8a63, after 0xc88e3
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A remark in
http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115113.html
caused commit bc028b6b7f /
http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115116.html .
That remark is not true according to
http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115115.html
and
http://www.nntp.perl.org/group/perl.perl5.porters/2013/01/msg197318.html .
To save memory between perl processes, const the tables so the memory is
shared by the OS between perl processes.
b4 .rdata section of x64 VC 2008 miniperl 0x667EE bytes .data 0x3440 bytes
after .rdata 0x66FAE .data 0x2C80, 0x3440-0x2C80=0x7C0 saved,
based on the .data section size crossing a page boundary this saved 4K
of per process memory on Win64 miniperl.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONS
OLE -DNO_STRICT -DPERLDLL -DPERL_CORE -O1 -MD -Zi -DNDEBUG -G7 -GL -DPERL_EXTE
RNAL_GLOB -DPERL_IS_MINIPERL -Fo.\mini\pp_sys.obj ..\pp_sys.c
pp_sys.c
..\pp_sys.c(4610) : error C2063: '_isnan' : not a function
NMAKE : fatal error U1077: 'cl' : return code '0x2'
See RT ticket for details.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were getting a time struct like this:
$12 = {
tm_sec = -2147483588,
tm_min = 2147483647,
tm_hour = -2147483624,
tm_mday = -2147483647,
tm_mon = 11,
tm_year = 69,
tm_wday = -2147483641,
tm_yday = -2147483314,
tm_isdst = 0,
tm_gmtoff = 0,
tm_zone = 0x1004f6bb6 "UTC"
}
which resulted in dayname[tmbuf.tm_wday] reading past the beginning
of the array. We should check for nan explicitly instead of falling
through to the time calculations.
|
|
|
|
|
|
|
|
|
|
| |
Instead of harrasing people to sort the manifest in our
tests, we can just automatically sort the manifest when it
changes.
That way the tests are actually testing that the auto-sort
worked, and not that our devs put the new file in the right
place.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 09c759bcfa4c2880c571df4da20458b2f781debf.
The reverted patch causes us to not compile functions that we might
not use. In theory this is a good thing. But any competent compiler
is going to exclude them anyway if they aren't used, and we might
miss useful warning messages, or whatnot. See b404539126a for an
example of a patch that would not have happened, or would only
have been partially done had this patch been applied.
Also the reverted patch claimed that "It is not safe to have multiple
hash funcs in 1 build due to conflicts on the size of
PERL_HASH_SEED_BYTES." which is incorrect. The functions do not
reference PERL_HASH_SEED_BYTES directly, and are usable by anyone
who knows what size of seed they need.
Additionally I have on my long-term todo list the following:
* Allow Perl to randomly select the hash function at startup
* Allow Perl to use the hash function determined by the ENV at startup.
This patch would have to be reverted to complete either of those tasks.
To recap, I am reverting this patch because it adds no real value,
makes our hash functions susceptible to bit-rot, and because it blocks
interesting future changes that I plan to work on in the future.
|
|
|
|
|
|
| |
We unroll hv_backreferences_p() in sv_get_backrefs() so the logic is simpler,
(we dont need a **SV for this function), and (hopefully) make it C++ compliant
at the same time.
|
|
|
|
|
|
|
|
| |
Prior to this patch the assert was meaningless as we would
use the argument before we asserted things about it.
This patch restructures the logic so we do the asserts first
and *then* use the argument.
|
|
|
|
|
|
| |
This reverts commit d49cfb746d789072c374f2403d477feb8017ce89.
Better patch coming.
|
| |
|
|
|
|
| |
Accidentally copied from regexp.t
|
| |
|
|
|
|
|
|
|
| |
Why do we test for something that can be trivially accomplished by a
make manisort?
This is just makework with no value.
|
|
|
|
|
|
|
|
|
|
|
| |
This encapsulates the logic to extract the backrefs from a weak-referent.
Since sv_get_backrefs() can be used for a similar purposes as hv_backreferences_p()
we no longer need to export the later, and therefore this patch also reverts
ad2f46a793b4ade67d45ac0086ae62f6756c2752.
See perl #123473 for related discussion, and https://github.com/Sereal/Sereal/issues/73
for a practical example of why this API is required.
|
|
|
|
| |
Patch by Leon, checked by Dan Collins
|
| |
|
| |
|
|
|
|
| |
perl.exp:fake:(.edata+0x1214): undefined reference to `win32_async_check'
|
|
|
|
|
|
|
| |
error: external linkage required for symbol 'PL_charclass' because of
'dllexport' attribute
and likewise for many other symbols declared EXTCONST.
|
|
|
|
| |
error: invalid conversion from 'void*' to 'HMODULE'
|
|
|
|
| |
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.
|
|
|
|
|
| |
error: 'sip' was not declared in this scope
error: 'uap' was not declared in this scope
|
| |
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2.068 23 Dec 2014
* Disable running of some of the slower test harnesses by default.
COMPRESS_ZLIB_RUN_MOST needs set to run them. Make life more
bearable on legacy platforms
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2.068 10 Dec 2014
* Silence more compiler warnings
* Disable running of 07bufsize.y by default.
COMPRESS_ZLIB_RUN_MOST needs set to run them. Makes life more
bearable on legacy platforms
|
|
|
|
|
|
|
|
| |
[DELTA]
2.068 23 Dec 2014
* No Changes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2.131 2014-12-23 15:04:19-05:00 America/New_York
[ENHANCEMENTS]
- Merging Module => 0 into requirements is now optimized
[PREREQS]
- Scalar::Utils removed as a prerequisite
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This resulted in an infinite loop:
sub optplus(;+) {}
optplus($a < $b);
The prototypes ;$ _ ;_ had the wrong predecence, causing foo($a<$b) to
be deparsed wrongly, without the parentheses.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ‘x’ sub has a pad entry in the sub containing its initial decla-
ration and in the sub containing its body. pad_subs simplistically
added subs found in pads to the list of subs to be deparsed. So the
body of x was being deparsed twice.
So we need to check the OUTSIDE pointer in pad_subs in deciding
whether to add it to the list, so only the sub containing the body
definition pushes it on to the list.
Without using the pad ID, this test in Deparse.t ends up failing:
state sub sb2;
sub sb2 {
sb2 ;
}
because the state sub’s OUTSIDE pointer points to the protosub of the
anonymous sub that Deparse.t wraps around the test, whereas it is a
clone of that anonymous sub that gets deparsed. Pad IDs exist to
identify clones of the same original pad.
|