| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The feature still exists, for compatibility with code that tries to enable
it, but it has no effect. The postderef_qq feature still exists, however.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 50e5165b96 "stop T_IN/OUT/INOUT/STDIO typemaps leaking" changed
newRV to newRV_noinc, but the GV * returned by newGVgen() is owned by the
package tree, like the SV * returned by get_sv(). Now when the RV to GV is
freed on mortal stack, the GV * in the package tree is freed, and now there
is a freed GV * in the package tree, if you turn on "PERL_DESTRUCT_LEVEL=2"
(and perhaps DEBUGGING is needed too), the package tree is destroyed SV *
by SV *, and perl will eventually warn with
"Attempt to free unreferenced scalar" which a very bad panic type warning.
commit 50e5165b96 was reverted in commit bae466e878
"Revert "stop T_IN/OUT/INOUT/STDIO typemaps leaking" for 5.22's release
to stop the panic, but reintroduced the SV/RV leak. So fix the RV leak (the val
passed as source arg of sv_setsv) by freeing it after the copying. In a very
unlikely scenario, the RV could still leak if sv_setsv dies.
Also fix the problem, that if this OUTPUT: type is being used for an
incoming arg, not the outgoing RETVAL arg, you can't assign a new SV*
ontop of the old one, that only works for perl stack return args, so
replace "$arg = &PL_sv_undef;" with "sv_setsv($arg, &PL_sv_undef);" if its
not RETVAL, this way OUTPUT on incoming args also works if it goes down the
error path. For efficiency, in a RETVAL siutation, let the undef original
SV* in $arg which is typically obtained from sv_newmortal() by xsubpp pass
through if we error out.
Also for efficiency, if it is RETVAL (which is more common) dont do the
sv_setsv/SvREFCNT_dec_NN stuff (2 function calls), just mortalize
(1 function call) the ex-temp RV and arrange for the RV to wind up on
perl stack.
Also, the GV * already knows what HV * stash it belongs to, so avoid the
stash lookup done by gv_stashpv() and just use GvSTASH which are simple
pointer derefs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As proposed by RJBS.
The "5.24" feature bundle (and therefore C<< use v5.24 >>) now enable
postderef and postderef_qq.
I can't find any precedent for what to do with the relevant experimental::*
warnings category when an experimental feature graduates to acceptance. I
have elected to leave the category in place, so that code doing C<< no
warnings "experimental::postderef" >> will continue to work. This means that
C<< use warnings "experimental::postderef" >> is also accepted, but has no
effect.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When I wrote this some years ago, I committed a logic error, so that a
constraint I thought applied was in fact somewhat different than what I
thought. The new comments give the proper constraint.
The code is taking the data furnished by unicode.org and massaging it
into tables usable by the perl interpreter. This bug can cause wrong
tables to be generated. Fortunately, this bug does not arise with
typical unicode.org data sets, so it hasn't shown up as a problem.
Fixing it makes no difference in the current Unicode version. I
discovered it only in compiling Unicode 1.1.5, somewhat tweaked by me,
so not the official data there either.
|
| |
|
| |
|
| |
|
|
|
|
| |
so switch to documenting something that would still work
|
|
|
|
|
|
|
| |
It turns out that the rational numbers furnished by the Unicode data are
not guaranteed to be in lowest terms. Version 8 is the first version
that has them this way. Add code to reduce them in preparation for that
release.
|
|
|
|
|
| |
Credits to Heiko Eissfeldt for the reported bug, the test program and a
proposed fix.
|
| |
|
|
|
|
|
|
| |
Previously the NBSP was used, but the dotted circle is what Unicode uses
in their books, and it looks better. Note that -annotate is not a
default option for mktables.
|
|
|
|
| |
For: RT # 124369
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 50e5165b9638b94be310f15477b42935c79e82d5.
That commit fixed the leak too well and instead introduced a potential
premature free.
This re-introduces the long-standing leak, which will be addressed post
5.22 release.
See RT #124181
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cde405a6b9b86bd8110f63531b42d89590a4c56e removed the lock prototype
"because it's already a do-nothing weak keyword without threads".
However, that causes "perl -d threaded-script.pl" to complain
lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 4101.
BEGIN failed--compilation aborted at threaded-script.pl line 2.
lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 2514.
END failed--call queue aborted at threaded-script.pl line 2.
Unbalanced scopes: 3 more ENTERs than LEAVEs
because threaded-script.pl's importing of threads::shared enable's
lock()'s non-noop behavior. Restoring the lock() prototype fixes the
inconsistency between lock() and share() usage.
Signed-off-by: James McCoy <vega.james@gmail.com>
|
|
|
|
|
|
|
| |
"The $ENV{...}," doesn't read well;
Spell it out for consistency with perlrun.
Committer: Increment $VERSION and add entry to perldelta.
|
|
|
|
|
|
|
|
|
|
|
| |
The targlex optimisation (which makes the op write directly to the
lexical in $lexical = some op, skipping the assignment) does not take
typeglob assignment into account. Since this optimisation has been
enabled for some ops in 5.21.x, we actually have a regression. So
this commit disables the optimisation once more for ops that did not
have it on in 5.20. This is a temporary fix, until we find a better
overall fix. Other ops that still have the optimisation are buggy,
but no more buggy than in 5.20.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After additional discussions on perl5-porters and #p5p, no one seems to
be violently objecting to the idea that FATAL warnings need a much
stronger warning about risks and that FATAL => 'all' should actually be
'discouraged' in the official, perlpolicy sense.
The text of this commit has been posted to perl5-porters for discussion
and approved by those who objected to earlier language.
I dare not call it "consensus" for fear of the consequences, but no one
has raised further obstacles to making this change.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
I tried to make the necessary changes for Perl v5.22 to work with old
Unicode versions, but ran out of time before the code freeze, with 5.1
being the earliest version. The sticking point there is that the
Capital Sharp S, U+1E9E, was defined in that release. Because of its
anomalous behavior with the infamous lower case sharp s, U+00DF, there
is a bunch of hard-coded references to it in the C code which need to be
adjusted to handle it's absence.
|
| |
|
|
|
|
|
|
|
|
| |
Unicode adds new files to its character database from time to time in
new versions of the Standard. mktables is supposed to be able to handle
this when it knows about a file, but it is compiling a version of the
Standard that predates that file's existence. It was not dealing
properly with this situation.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Several /lib .pm's have the same code which is complicated enough to
warrant being placed in a shared function. This commit creates a .pm
to be used by these .pm's.
This implements the perhaps archaic 'Meta' notation wherein characters
above 0x7f are displayed as M- plus the ASCII-range character derived by
looking at only the lower 7 bits of the upper range one. There are
problems with this, in that a literal control character can be in the
string, whereas it is trying to get rid of control characters. But I
left it to work as-is, just centralizing the code.
On EBCDIC platforms this notation makes no sense because the bit
patterns are all mixed up about having the upper bit set. So this
commit fixes things on these platforms, so these are changed to
\x{...}. No literal control characters are emitted.
Another potential problem is that characters above 0xFF are passed
through, unchanged. But again, I let the existing behavior stand.
|
| |
|
| |
|
|
|
|
|
|
|
| |
...at least for now.
This reverts commits 0d314ba30623b19c36dfc97ac4b6ecb94cb406f4
and ce3778a3796be3e4604ed9b3671ea624c5affe0b.
|
|
|
|
| |
Slight grammatical touch-up to cautions against FATAL warnings.
|
|
|
|
|
|
|
|
|
|
|
| |
Discussions on p5p have reached reasonable consensus that fatal warnings are
a misfeature.
This commit marks fatal warning as "discouraged" and moves up the
related cautionary documentation to highlight the risks of using them.
For details on the many historical and current issues with fatal warning, see
http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225235.html
|
| |
|
|
|
|
|
| |
This still has a failure due to Encode issues. A future commit will
skip some failing tests until that is fixed.
|
|
|
|
|
|
|
|
| |
This involved changing a \xff to \xfe because it is expecting it to be a
character whose representation is different when encoded in UTF-8, and
on some EBCDIC platforms, \xff is UTF-8 invariant. I suppose there
could be a code page where \xfe is invariant, so this .t would have to
be made more general if that ever comes to be.
|
|
|
|
|
|
|
| |
These just return their argument on ASCII platforms, so can get rid of
the function call overhead there.
Thanks to Zefram and Matthew Horsfall for their help in this.
|
|
|
|
|
| |
This worked for EBCDIC 1047, but not for other pages. This commit
changes to use the tools created for the purpose to make it general.
|
|
|
|
| |
This pod is generated by mktables.
|