| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This better represents its current role as specifically delaying magic on
@ISA as opposed to a general array magic delay mechanism.
|
|
|
|
| |
segmentation fault with array ties
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 90630e3c741716305d7f1da4df5eab5c1bee42cc.
This fix turns out to be wrong, and also made ($<,$>)=(...) fail
(RT #75212).
The original problem was a SEGV in av_clear(). This was mis-diagnosed
as recursive PL_delaymagic issue, and the fix was to temprarily reset
PL_delaymagic to zero. This stopped the mg_set() of $> and $> being
delayed.
The real problem was that mg_free wasn't clearing the [GSR]MG flags
after freeing xmg_magic. This was independently fixed by commit
68f8932eb570af656553ed44c11a23f0a216a3ec.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes RT #74868: Safe signals changes causing hangs with threads.
The basic issue is that due to changes in where safe signals can be
despatched, (including now on leaving scope), it's possible for a
perl-level signal handler to be called while PL_sharedsv_lock is held.
If the handler does locking or manipulation of shared vars, then deadlock
can occur.
A robust fix for this is to ensure that the signal handler isn't called
while we have the lock. This is done using the signal handler hook added
in the previous commit.
|
|
|
|
|
| |
This is initially intended for threads::shared and shouldn't (yet)
be considered part of the public API.
|
|
|
|
| |
(Spotted by Giel Goudsmit)
|
|
|
|
|
|
|
|
|
| |
Thus silencing compiler noise like:
OP_PRIVATE_ONCE(op_aassign, OPpASSIGN_COMMON, ",COMMON");
........................................................^
%CC-I-EXTRASEMI, Extraneous semicolon.
at line number 846 in file D0:[craig.blead]dump.c;1
|
| |
|
| |
|
|
|
|
|
|
| |
This is achieved by introducing a new find_rundefsv() function in pad.c
This fixes [perl #75436].
|
|
|
|
| |
to @_. This is no longer true in 5.12.0 and upwards.
|
|
|
|
|
|
| |
get/setsockopt are not explicitly documented. Note that the documented
sockopt() method is a wrapper around get/setsockopt, but does not cover
all cases because of the hardcoded level (= SOL_SOCKET).
|
|
|
|
|
| |
the environment tests were resetting environment variables useful for
running fresh perls, like LD_LIBRARY_PATH.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A number of function names that do warnings have been added, but diag.t
hasn't kept up.
This patch changes it to look for likely function names in embed.fnc, so
it will automatically keep up in the future. There's no need to worry
about it looking for inappropriate functions, as the syntax of messages
that it looks for is so restrictive, that there won't be false
positives. Instead there are still many messages it fails to catch.
As a result of it's falling behind several issues have crept in. I
resolved the couple I thought were clear (including one in a comment;
diag.t doesn't strip comments, but mostly it doesn't matter), and added
the others to the <DATA> section to ignore.
are
|
| |
|
|
|
|
|
|
|
|
|
|
| |
As newAV() and newHV() are now merely wrappers around sv_upgrade(), and the
existing SV is always brand new and of type SVt_NULL, call them on it, rather
than disposing of it as a side effect of storing a(nother new) SV.
Also, no need to set SvPADMY() again, as it is already set.
Resolves RT #73092.
|
|
|
|
|
|
|
|
| |
Change to start with "C<die> raises an exception." and phrase in terms of
handling exceptions, and then how uncaught exceptions result in process exit.
Do not give details of the exit code in the first paragraph. Move this to a
later paragraph, clarify that $! is often unpredictable, and stress that 255
is the last resort exit code.
|
|
|
|
|
| |
perl uses UTF8_IS_START() to test if a byte is a valid start byte,
this didn't take perl's extended UTF-8 range into account.
|
|
|
|
|
| |
the original patch included a fix, but this problem was fixed in
faee19b5, so only apply the test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Attached is a patch for some of this issue. I took Nicholas' advice,
and if the result of \cX isn't a word character, the output message will
precede it with a backslash, so the message in the example would be
"\c`" more clearly written simply as "\ " at -e line 1.
I think that message is true.
I also added tests.
There is a test that guarantees that we won't ship 5.14 with things as
they are now in it. I added wording to the comments next to that test
to be sure to verify with this email thread if we should remove the
deprecation, and mentioned that in the explanatory wording in the pod.
I support removing the deprecation, but for now I'm not touching that,
to see what other issues may yet arise before 5.14.
|
|
|
|
| |
And add a .t file to verify that it works.
|
|
|
|
|
| |
Commit bb1bc619ea68d9703fbd3fe5bc65ae000f90151f has
fixed a threads-shared TODO test in t/object.t.
|
|
|
|
|
|
|
|
| |
The -output_names option was added. It will cause the generated file
tables to not have ranges, and each line will have the character name.
This makes it easier to compare what characters are in given tables,
from version to version, or to compare the differences between
properties.
|
|
|
|
|
|
|
|
| |
This speeds up mktables by not creating the Names table unless asked to,
by someone adding it to the list of tables to be output. Perl uses a
different table than this one for charnames, so the one being suppressed
isn't generally used. Previously it was created but not output. Now,
we skip the useless creation step.
|
|
|
|
|
|
|
|
| |
It's not clear this is a real bug, but it is a surprise. If a table is
in the suppressed list, it isn't output, even if it is in the
to-be-output override list. This latter list is non-empty only if the
user has hand-edited the the program to force an output. So this patch
makes that list have priority.
|
|
|
|
|
| |
Commit: 6c4b69c35161f79a5088d6c3070cc17a0e4978b2 made this comment
obsolete; forgot to remove it then.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Speed up mktables by not generating the simple case folding tables
unless asked to. Previously the simple tables were generated, and then
the full tables were initialized with them, and then overwritten with
the full mappings. This is an artifact from the fact that the data
comes to us in two files, one with the simple mappings (among other
things), and another with the full mapping overrides. Now, the full
tables are initialized from the first file, and the second file
overrides the full mappings. The simple tables are not generated by
default, so this saves, copying them.
|
|
|
|
| |
Slightly modified to include the commit id by Steffen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An earlier performance enhancement was to change the subroutine that
gets the address of a ref to using 'no overloading' and then numifying
the ref, which returns its address. This patch speeds things up
slightly by in-lining the "no overloading" so that the function call
overhead is avoided.
It also gets rid of the kludge that was done before the original
speed-up that created a local in the call stack of one of the classes so
that the address would only have to be executed once per call stack;
This was subject to failure if maintenance of the code perturbed things
so it didn't work; now the overhead is minimal, so the address is gotten
in each call.
|
|
|
|
|
| |
Prior to this patch, messages in perldiag.pod had to have \\ instead of
the correct single backslash in order for diag.t to not complain.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, @_ was allocated for every subroutine at compile time, with a
default sized AV, hence space for 4 entries. We don't actually need to
allocate the space for entries, as there is already a check at call time as to
whether @_ is long enough.
valgrind suggests that this saves allocating 23K (on a 64 bit platform) when
running pod2man on perlfunc.pod. As well as the absolute saving, there is also
benefit in deferring allocation for subroutines actually called - for a program
which forks, @_ is less likely to be in pages shared COW with the parent.
Resolves RT #72416.
|
|
|
|
| |
Resolves RT #72800.
|
|
|
|
|
| |
Previously the AV paren_name_list would "leak" until global destruction.
This was only an issue under -DDEBUGGING. Fixes RT #73438.
|
| |
|
| |
|
| |
|
|
|
|
| |
The array should be declared with its actual size.
|
| |
|
|
|
|
|
|
|
| |
Previously, whenever a true value was assigned to $^P, all 3 were set to 0.
Now only set them to 0 if they aren't already SvIOK().
Resolves RT #72422.
|
| |
|
| |
|
|
|
|
| |
Refactor the macro append_flags() in dump.c to use it.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Convert repetitive sequences of "if this bit is set, append that string" into
structures and a function call. Use a custom macro append_flags() to make
calling it easer.
This makes the object code slightly smaller.
|
|
|
|
|
| |
Replacing the longhand list of calls to newXS{,proto} with loop over a data
structure reduces the object size by over 1K.
|