| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This adds some tests for commit 5c3b35c95645d687026b198c24e884914bfb6ce6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During the time that mktables was being heavily revamped, Unicode
proposed a number of new properties whose names began with 'Is'. Perl
since 5.6 has alllowed properties to have an optional 'Is' prefix. Thus
there was the possibility that a new property name from Unicode would
conflict with one of Perl's name extensions. Thus, the code was written
to individually suppress such an extension when there was a conflict;
though this would be an undesirable state of affairs, where previously
working code would have to be changed due to a new Unicode release.
However, it turns out that other Unicode implementors had done the same
thing Perl had done, and the protests forced the new Unicode standard to
remove the 'Is' from the new properties; and apparently they won't try
to do this again.
However, the more general case code was still in mktables, doing no
harm, except enlarging significantly several of the hashes in Heavy.pl
to have essentially double the entries; one for the 'Is', and one
without. There have been some murmurings that Heavy.pl takes up too
much memory. Further, future commits are planned that would take up
space as well, and that could be made much smaller by not having the
individual basis for having Is/non-Is.
So, this commit takes away the individual property Is/non-Is and
replaces it with a blanket approach that has it for all Unicode
properties. This requires a single extra statement in utf8_heavy.
This has already been added mistakenly, but harmlessly, in commit
45376db692c38e06f27b8331d036652ec5fbb3d1
Note that perl extensions still have the individual Is/non-Is. This is
because the blanket approach won't work for them, as some of the 'Is'
synonyms do routinely get approaced in the case of the Block property.
It is documented that one shouldn't use the 'Is' prefix for the Block
property, because future Unicode versions could break your code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SOCKETSHR is/was an interface to abstract out TCP/IP calls for the
various vendors' networking implementations, including the freeware
CMU-IP stack. Neither SOCKETSHR nor CMU-IP has seen any maintenance
for over a decade and are likely not even C89-compliant. The CRTL
socket routines have been supported by the different vendors' stacks
for many years so there is no reason to maintain an alternative, and
there probably hasn't been a real working alternative for some years
anyway.
The code is still there in maint-5.14 and earlier branches if
anyone has need of it.
|
|
|
|
|
|
|
|
|
| |
peephole optimiser isn't applied.
When the peephole optimiser isn't applied warnings about uninitialised
values from global scalars don't include the name of variable, because
the OP_RV2SV + OP_GV isn't converted to OP_GVSV. This patch fixes that
by extracting the name of the variable from the OP_RV2SV + OP_GV.
|
|
|
|
|
|
|
| |
pp_rv2gv has already called get-magic, so pp_sassign should not do
it at all.
This is a regression from 5.8.8.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
First, disable all the unsupported flags just to make sure they aren't
triggering something they shouldn't be. Also, zero the pglob struct
before passing to bsd_glob(); it contains function pointers, and it's
safest if they are null rather than containing random stack data.
Bug reported by Clément Lecigne <clemun@gmail.com>.
|
|
|
|
|
|
| |
Since these numbers have already been used for developement releases,
they need to be changed again. I also added a note to make sure they
no longer get out of sync with the pod.
|
| |
|
| |
|
|
|
|
|
| |
- For simplicity, use same version number 1.997 in all .pm files to match the
upcoming release 1.997 of the Math-BigInt distribution.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
L_ is an old, discouraged but not deprecated, synonym for LC, cased
letters. It was improperly being converted to simply L, all letters,
because it is supposed to match loosely, and the trailing underscore was
being stripped. It needs a special case.
Tests passed for this, as the machine generated test case happened to
choose code points that are in both L and LC. Also some tests were
testing L instead of LC because of a similar flaw.
|
|
|
|
|
| |
mktables was getting the display status from the overarching table,
instead of the synonym, for display in perluniprops.
|
|
|
|
|
|
| |
Add a note, and reflow, that the data structure returned by this
function is unnecessarily complex, but is for compatibility with other
returns that need the complexity.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A previous commit created the possibility that for a data structure to
be used instead of an array of arrays. The latter data structure is
used because most properties have long ranges in which each code point
maps to the same thing, and so don't have to have a hash entry for each
code point, can use the range as the base data structure. However
certain properties (or property-like structures) don't have long ranges,
and hence don't need to save memory by having things work through ranges
instead of individual code points. For these, a hash offers improved
speed, without the memory cost.
This patch converts 4 of the data structures to hashes. Future
extensions to this module will also take advantage of some of these
being in hashes
|
|
|
|
|
|
| |
This changes the internal function to have an optional parameter to
return a hash instead of an array when the caller determines that it is
better to use a hash.
|
|
|
|
|
|
| |
These decompositions are all canonical, not compatible only, so it gives
the same result, and I think it's clearer, explained in the revised
comment.
|
| |
|
|
|
|
|
| |
All the other function headers in this pod look like what this patch
makes this one look like. Corresponding links to it are also revised.
|
|
|
|
| |
"Generate a nice changelist by querying perforce" isn't much use these days.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the tied variable holds a reference, but changes to something else
when FETCH is called, perl crashes, as of commit 9d0f7ed75
(5.10.1/5.12.0):
sub ::72 { 73 };
sub TIESCALAR {bless[]}
sub STORE{}
sub FETCH { 72 }
tie my $x, "main";
$x = \$y;
\&$x;
That’s because commit 7a5fd60d4 caused double magic for one branch of
an if/else chain in sv_2cv (by using gv_fetchsv), so commit 9d0f7ed75
removed the SvGETMAGIC preceding the if/else, putting it inside each
branch. That meant that the type would be checked before get-magic
was called. So the type could change unexpectedly.
Due to another bug, this did not affect globs returned from tied array
elements, which got stringified, and hence worked in sv_2cv. But that
bug was fixed in 5.14.0 by commit 13be902ce, which allowed typeglobs
to be returned unflattened through elements of tied aggregates, caus-
ing this to stop working (‘Not a CODE reference’ instead of 73):
sub ::72 { 73 };
sub TIEARRAY {bless[]}
sub STORE{}
sub FETCH { 72 }
tie my @x, "main";
my $elem = \$x[0];
$$elem = *bar;
print &{\&$$elem}, "\n";
This commit fixes both issues by putting the SvGETMAGIC call
back where it belongs, above the if/else chain, and by using
SvPV_nomg_const and gv_fetchpvn_flags instead of gv_fetchsv, to avoid
an extra magic call.
|
|
|
|
|
| |
This stops Pod::Coverage (and possibly users)
from complaining about missing documentation.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This was accidentally removed by commit 7ac26854bd1fc3c6. Oops.
|
|
|
|
|
|
|
| |
use Fcntl; is a much more efficient way to load the two constants needed.
Bring the joy of strict (and warnings) to AnyDBM_File, remove commented-out
code, and add __END__ to make it clear that there is no more code hiding
beyond the pod.
|
|
|
|
| |
It has been unused in core since d5b1589c and is not used on CPAN.
|
|\
| |
| |
| |
| | |
POSIX.pm no longer uses AutoLoader, and is roughly halved in size, with no
change in functionality. Test coverage is improved.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Explicitly warn that the default of importing everything means that
use POSIX; has to import 553 symbols. Hence it's probably better to use
an explicit import list, or import nothing.
|
| |
| |
| |
| |
| |
| |
| | |
This is considerably terser than listing all the entries for @EXPORT_OK
longhand. With this change we can no longer delete from %replacement in
AUTOLOAD(), as import() and load_imports() may be called after AUTOLOAD()
has already been run.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This effectively reverts commit d925a710473da185, which added it and
reformatted the source code. isatty was in (the generated) @EXPORT
at that time, hence there was never a need to add it.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the error message, name the POSIX function that was called, as well as
the suggested replacement method. This rephrasing was in the patch
supplied by Aristotle Pagaltzis, but I have retained the existing POSIX
use of :: when describing the method, because given two less than great
choices, I'm inclined to favour retaining the status quo and one change
over two changes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace all the subroutines that croak() with a data structure and 8 lines in
POSIX::AUTOLOAD().
[By Aristotle Pagaltzis, with some editing by the committer, and most of his
message changes applied as a previous commit to split apart improvements from
pure refactoring]
This commit eliminates the helper functions POSIX::refef() and
POSIX::unimpl(), which were not part of the documented API, not exported,
and not used in any code outside the core (that is visible to Google
codesearch).
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Suggested by Aristotle Pagaltzis as part of a larger refactoring.
This regularises the text, changing '--use' and ': use' to ', use' to be
consistent, provides a message for POSIX::srand(), and adds ' is' to the
message for POSIX::bsearch().
Most of the diagnostics have been unchanged since perl 5.000. For some,
IO::Handle replaced FileHandle in perl5.003_20 (28757baaaeaa3801).
div and ldiv's messages were improved to also mention % in 2003 by commit
7a6ca5fd18d88091.
|
| |
| |
| |
| | |
No need to test the 7 tested elsewhere.
|
| |
| |
| |
| |
| | |
Explicitly test POSIX::exit(), POSIX::fork(), POSIX::sleep() and
POSIX::waitpid(). Use POSIX::_exit() in the child process.
|
| |
| |
| |
| |
| | |
The POSIX:: versions should be identical to the CORE:: versions, as they are
just wrappers. But the wrappers need testing.
|
| |
| |
| |
| | |
Regularise the 3 inconsistent messages.
|