| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
VMS seems to have a 31 character limitation for external symbols. To be able to
fit into that, rename 'coerce_qwlist_to_paren_list' to
'munge_qwlist_to_paren_list'.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the &Internals::* functions that use references in their
prototypes to check if the argument is SvROK() before calling SvRV().
If the function is called as Internals::FOO() perl does this check for
us, but prototypes are bypassed on &Internals::FOO() so we still have
to check this manually.
This fixes [perl #77776], this bug was present in 5.10.x, 5.12.x, and
probably all earlier perl versions that had these functions, but I
haven't tested that.
I'm adding a new test file (t/lib/universal.t) to test universal.c
functions as part of this patch. The testing for Internal::* in t/ was
and is very sparse, but before universal.t there was no obvious place
to put these tests.
Signed-off-by: Ævar Arnfjörð Bjarmason <avar@cpan.org>
|
|
|
|
|
| |
ea25a9b2cf73948b1e8c5675de027e0ad13277bd broke MAD due to incorrect
usage of the token-forcing mechanism.
|
|
|
|
|
| |
Signed-off-by: Florian Ragwitz <rafl@debian.org>
[rafl@debian.org: Changed tabs to spaces in perlguts chunks for consistency]
|
|
|
|
|
| |
neither warnings nor warnings::register are new. Also mention the version
changes.
|
| |
|
|
|
|
| |
Also regenerate lib/warnings.pm from that.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. &warnings::register is added as the public mechanism for adding
new warning categories, rather than warnings::register::import
knowing about warnings's internals
2. warnings::register::import is updated to use &warnings::register
3. warnings::register::import can take a list of subcategories
The upshot is that you can now write:
package MyTool;
use warnings::register qw(io typos);
warnings::warnif('MyTool::io', $message);
...and tools that register new warnings categories do not need to cargo cult
code from warnings/register.pm
|
| |
|
|
|
|
|
|
|
| |
This was only needed for testing in the core, when the core's tests all ran
the top level t/ directory. Without this getting in the way, we don't need
t/TEST and t/harness to run the tests with absolute paths in @INC. Testing in
the CPAN distribution is unaffected.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This was only needed for testing in the core, when the core's tests all ran in
the top level t/ directory. Without this getting in the way, we don't need
t/TEST and t/harness to run the tests with absolute paths in @INC. Testing in
the CPAN distribution is unaffected.
|
| |
|
| |
|
| |
|
|
|
|
| |
The 1.91 upload to CPAN was broken, so we have to bump $VERSION again.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Closes CPANRT#51824.
|
| |
|
|
|
|
| |
Closes CPANRT#61204.
|
| |
|
|
|
|
|
|
|
| |
fix for f83b46a0147ba6f476add85d17f61a7e7fb00f21, which added
the new SAVEt_GVSV, but forgot to amend the CX srack duplication code.
(Since that code is only used on win32, I'm applying it blind here)
|
| |
|
|
|
|
| |
Previously it was only used under -DITHREADS
|
|
|
|
|
| |
This was forgotten in the move from cpan/ to dist/ in commit
c510e33d30368bc5440f1651f6b31f73d2354eba.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fix for [perl #21469]:
since the GP may be pulled from under us and freed, coredumps and strange
things can happen.
Fix this by storing a pointer to the GV in the loop block, rather than a
pointer to the GvSV slot. The ITHREADS variant already stores GV rather
than than &GvSV; extend this to non-threaded builds too.
Also, for both threaded and non-threaded, it used to push &GvSV on the
save stack. Fix this by introducing a new save type, SAVEt_GVSV.
This behaves similarly to SAVEt_SV, but without magic get/set.
This means that
for $package_var (...)
is now close in behaviour to
local $package_var = ...
(except for the magic bit).
|
| |
|
| |
|
|
|
|
|
|
|
| |
make it clearer what types of pointer to the iterator variable can be
stored, reduce the amount of #ifdef USE_ITHREADS, get rid of some macros,
and generally make the code easier to follow. No change to the size of the
structure.
|
|
|
|
| |
This value is also available via via cx->blk_loop.my_op->op_targ
|
|
|
|
|
|
| |
This field is only used in non-threaded builds, and the comments imply
that this is because in non-threaded builds this value may be
modified. But nothing in core modifies it.
|
|
|
|
|
| |
to reflect this. Now it can be cut-and-pasted and actually give useful
output.
|
|
|
|
|
|
|
| |
nice_chunk_size was U32, and had been paired with another 32 bit value to
ensure that all 64 bit quantities were naturally 64 bit aligned. There already
was a 32 bit "hole" elsewhere - reorder the two unpaired 32 bit values next to
each other.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These provided a non-public API for the hash and array code to donate free
memory direct to the SV head allocation routines, instead of returning it
to the malloc system with free().
I assume that on some older mallocs this could offer significant benefits.
However, my benchmarking on a modern malloc couldn't detect any significant
effect (positive or negative) on removing the code. Its (continued) presence,
however, has downsides
a: slightly more code complexity
b: slightly larger interpreter structure
c: in the steady state, if net creation of SVs is zero, 1 chunk of allocated
but unused memory will exist (per thread)
So I think it best to remove it.
|
|
|
|
|
|
|
|
|
|
| |
This makes a qw(...) list literal a distinct token type for the
parser, where previously it was munged into a "(",THING,")" sequence.
The change means that qw(...) can't accidentally supply parens to parts
of the grammar that want real parens. Due to many bits of code taking
advantage of that by "foreach my $x qw(...) {}", this patch also includes
a hack to coerce qw(...) to the old-style parenthesised THING, emitting
a deprecation warning along the way.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Commit e5c69c9b added the test to dist/constant/t/constant.t, probably because
the bug was initially reported in combination with constant.pm. However, it was
a core bug in gv_init and can be reproduced easily without constant.pm.
With this change dist/constant can be safely synced back to CPAN without having
to SKIP or TODO this particular test.
|
|
|
|
| |
Ooops. I broke it with commit ad7cce9f36d376e55b45dd79ec28a7f795b5ae4e.
|