| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This is a space/time trade-off. We add a table that is compiled to
calculate what Perl wants for a character to be the beginning of an
identifier. This will enable us to not have to take the && of two
tables.
|
|
|
|
|
| |
This property is not official Unicode, and so should be documented by
us.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit bfcb351493b (which was backported to 5.8.8) caused these error
messages always to mention the overload package, instead of the pack-
age involved:
Can't resolve method "foo" overloading "+" in package "baz"
Stub found while resolving method "foo" overloading "+" in package "baz"
This commit fixes that. A compiler warning alerted me to the possi-
bility of HvNAME being null, so I wrote a small test for that, found
that it crashed, and incorporated the fix for the crash into the same
commit (since it’s the same line of code).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This test was relying on a bug in require that causes it to use what-
ever I/O layers are active in require‘s *caller* when opening a file
[perl #96008].
This rewrites the test using the example in ticket #75722.
Since it no longer has anything to do with open.pm, it is now in
t/lib/warnings/perlio.
|
|
|
|
|
|
|
| |
Generally mktables generates the most compact tables possible. But this
should not be relied on, and when called with the -anotate option,
the mktables tables will not be compact. This will compact
non-compacted tables when reading them.
|
|
|
|
|
| |
This uses intermediate variables to store the output of hex(), with the
result that if there is an $end, its hex only is calculated once.
|
|
|
|
|
|
| |
If PERL_UNICODE was set to a value that modified stream behaviour, the
test added in 73f1eaca would fail, because the implied -C option would
cause the behaviour the test was checking wouldn't happen.
|
|
|
|
|
|
|
|
|
| |
‘use open’ without :std was turning off layers on STDIN and STDOUT
(but not STDERR), due to a few missing if() conditions and due to an
omission of STDERR (which probably also caused STDERR’s handles to
accumulate through multiple calls to ‘use open ':std'...’).
This fixes that. (As if you were expecting otherwise.)
|
|
|
|
| |
so future commits can use runperl.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
5.65 Tue Aug 30 2011 Todd Rinaldo
- No changes. Tests clean. Bumping to production release.
5.64_04 Wed Aug 24 2011 Todd Rinaldo
- Re-vamp module to work in Git.
- Update Makefile.PL with extra META bits.
- Point bugs to perl's RT.
- Add a README from Exporter.pm perldoc.
- Depend on Carp 1.05 now we're assuming a fix from 1.05
|
|
|
|
|
| |
Existence of this entry has nothing to do with Borland support. It
is merely history, that’s all.
|
|
|
|
|
| |
Remove support for the Borland C++ compiler on Win32, as agreed here:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2011-09/msg00034.html
|
|
|
|
|
|
| |
$[ remains as a variable. It no longer has compile-time magic.
At runtime, it always reads as zero, accepts a write of zero, but dies
on writing any other value.
|
| |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch prevents get-magic from executing twice during autovivifi-
cation when the op doing the autovivification is not directly nested
inside the dereferencing op.
This can happen in cases like this:
${ (), $a } = 1;
Previously (as of 5.13.something), the outer op was marked with the
OPpDEREFed flag, which indicated that get-magic had already been
called by the vivifying op (calling get-magic during vivification is
inevitable):
$ perl5.14.0 -MO=Concise -e '${ $a } = 1'
8 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 2 -e:1) v:{ ->3
7 <2> sassign vKS/2 ->8
3 <$> const[IV 1] s ->4
6 <1> rv2sv sKRM*/DREFed,1 ->7 <-- right here
- <@> scope sK ->6
- <0> ex-nextstate v ->4
5 <1> rv2sv sKM/DREFSV,1 ->6
4 <#> gv[*a] s ->5
-e syntax OK
But in the ${()...} example above, there is a list op in the way that
prevents the flag from being set inside the peephole optimizer. It’s
not even possible to set it correctly in all cases, as in this exam-
ple, which would need it both set and not set depending on which
branch of the ternary operator is executed:
${ $x ? delete $a[0] : $a[0] } = 1
Instead of setting the OPpDEREFed flag, we now make a non-magic copy
of the SV in vivify_ref (the first time get-magic is executed).
|
|
|
|
|
|
| |
Update spacing
Don't break S<20 questions> across lines, update test to be accurate
|
|
|
|
|
|
| |
This feature was deprecated in 5.14 and scheduled to remove in 5.16. A
CPAN module was written to provide better functionality without the
significant drawbacks of this implementation.
|
| |
|
|
|
|
|
|
| |
These two are now supported. They were not before, because their
prototypes gave them unary precedence, even though these ops both
have list precedence. That was corrected in the previous commit.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit allows this to work:
BEGIN { *entangle = \&CORE::tie };
entangle $foo, $package;
And the entangle call gets inlined as a tie op, the resulting op tree
being indistinguishable.
These subs are not yet callable via &foo syntax or through a refer-
ence. That will come later, except for some functions, like sort(),
which will probably never support it.
Almost all overridable functions are supported. These few are not:
- infix operators
- not and getprotobynumber (can’t get the precedence right yet;
prototype problem)
- dump
Subsequent commits (hopefully!) will deal with those.
How this works:
gv_fetchpvn_flags is extended with hooks to create subs inside the
CORE package. Those subs are XSUBs (whose C function dies with an
error, for now at least) with a call checker that blows away the
entersub op and replaces it with whatever op the sub represents.
This is slightly inefficient right now, as gv_fetchpvn_flags calls
keyword(), only to have core_prototype call it again. That will
be fixed in a future refactoring.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
That bug was fixed in 5.14
|
| |
|
| |
|
| |
|
| |
|
| |
|