| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This hints hash member is used to pass the scope's feature bits to
eval, and was confusing deparse.
Since the bits are also represented as the feature_ prefixed members
of %^H, there's no need for Deparse to do anything else with them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Perform only a bit check instead of a much more expensive hash
lookup to test features.
For now I've just added a U32 to the cop structure to store the bits,
if we need more we could either add more bits directly, or make it a
pointer.
We don't have the immediate need for a pointer that warning do since
we don't dynamically add new features during compilation/runtime.
The changes to %^H are retained so that caller() can be used from perl
code to check the features enabled at a given caller's scope.
|
|
|
|
|
|
|
|
|
|
| |
Fixes #16262
BINMODE was not handling the LAYER argument.
Also bump the version number.
(cherry picked from commit 479d04b98e5b747e5c9ead7368d3e132f524a2b7)
Signed-off-by: Nicolas R <atoomic@cpan.org>
|
|
|
|
| |
(includes regen/opcode.pl)
|
|
|
|
| |
This is not currently implemented for EBCDIC
|
|
|
|
| |
These are no longer needed.
|
|
|
|
|
|
|
| |
this was missed from the previous commit
Also, fix typo in regen/regcharclass.pl It was still referring to itself
as Porting/regcharclass.pl
|
| |
|
|
|
|
| |
The file from Unicode needs to be translated to native
|
|
|
|
| |
This table wasn't being translated into native code points
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following code:
sub f ($x,$y) {
study;
}
used to compile as:
a <1> leavesub[1 ref] K/REFC,1 ->(end)
- <@> lineseq KP ->a
1 <;> nextstate(main 5 p:5) v:%,fea=7 ->2
2 <+> argcheck(2,0) v ->3
3 <;> nextstate(main 3 p:5) v:%,fea=7 ->4
4 <+> argelem(0)[$x:3,5] v/SV ->5
5 <;> nextstate(main 4 p:5) v:%,fea=7 ->6
6 <+> argelem(1)[$y:4,5] v/SV ->7
- <;> ex-nextstate(main 5 p:5) v:%,fea=7 ->7
7 <;> nextstate(main 5 p:6) v:%,fea=7 ->8
9 <1> study sK/1 ->a
- <1> ex-rv2sv sK/1 ->9
8 <$> gvsv(*_) s ->9
Following this commit, it compiles as:
a <1> leavesub[1 ref] K/REFC,1 ->(end)
- <@> lineseq KP ->a
- <1> ex-argcheck vK/1 ->7
- <@> lineseq vK ->-
1 <;> nextstate(main 5 p:5) v:%,fea=7 ->2
2 <+> argcheck(2,0) v ->3
3 <;> nextstate(main 3 p:5) v:%,fea=7 ->4
4 <+> argelem(0)[$x:3,5] v/SV ->5
5 <;> nextstate(main 4 p:5) v:%,fea=7 ->6
6 <+> argelem(1)[$y:4,5] v/SV ->7
- <;> ex-nextstate(main 5 p:5) v:%,fea=7 ->-
7 <;> nextstate(main 5 p:6) v:%,fea=7 ->8
9 <1> study sK/1 ->a
- <1> ex-rv2sv sK/1 ->9
8 <#> gvsv[*_] s ->9
All the ops associated with the signature have been put in their own
subtree, with an extra NULL ex-argcheck op "on top". The op on top
serves two purposes: first, it makes it easier for Deparse.pm etc to
spot siganure code; secondly, it may at some point in the future be
upgraded to OP_SIGNATURE when signatures get optimised. It's of type
ex-argcheck only because when being created it needs to be an op type
that's in class UNOP_AUX so that the created op will be suitable for
later optimising, and making it an ex-type associated with signatures
helps flag it as such.
There should be no functional changes apart from the shape of the
optree.
|
| |
|
|
|
|
|
|
| |
Two variable weren't getting initialized properly in one code path, with
the result that the case folding tables were pretty much garbage, but
not on ASCII platforms.
|
|
|
|
|
| |
0 is a special marker, and shouldn't be remapped. It would be
unlikely to be so, but this makes sure.
|
|
|
|
|
|
| |
Inversion maps are supposed to have an entry for what to do above the
Unicode range. This subroutine crafts a custom map that was missing
that.
|
| |
|
|
|
|
|
|
|
|
| |
> is an HTML entity, not pod.
Committer: increment $VERSION
For: RT # 134300
|
| |
|
|
|
|
| |
And regen affected files
|
|
|
|
| |
Thereby keeping t/porting/regen.t happy.
|
|
|
|
|
|
|
|
|
|
| |
For a property \p{Block=Foo}, we allow the synonym \p{InFoo} as
documented variously, including perluniprops, even though this usage is
discouraged, as a new Unicode release used in a new version of Perl
could cause the synonym to no longer work.
Prior to this commit, we erroneously allowed the synonym for other
properties, such as \p{InKana} or \p{InS}.
|
|
|
|
|
| |
Pod::Simple now has the needed capabilities to completely replace
Pod::Parser.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This test file invented its own environment variable, whereas everyone
else uses a different one. Make this one comply.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This takes the few latest changes in the draft Unicode 12.1, ahead of
our freeze. None are substantive. No further non-substantive changes
will be added, except in the unlikely event that a substantive change is
made, we will take it and potentially delay Perl 5.30.
|
|
|
|
|
|
|
| |
Currently Deparse fails to output a backslash, turning the result
into a multi-dimensional array lookup. This is a long-standing fault.
For now, mark it TODO, and remove the construct from uni/fold.t, which is
where I first spotted the issue by running 'TEST -deparse'.
|
|
|
|
| |
A variable needed to be updated for Unicode 12.1
|
|
|
|
|
|
| |
I realized that commit f9c1e7e9ed13a16099c8471c2030b93deb482571
works now, but future Unicode versions may add fractions that fool it.
This commit should handle any such event
|
| |
|
|
|
|
| |
Indent block newly formed in previous commit
|
|
|
|
|
|
|
| |
This turns out to be because Windows doesn't necessarily round to even
on floating point %e conversions. The solution is to add an extra entry
rounding up to odd when a fraction is precisely representable in binary.
So far, the only case where this occurs is 1/32.
|
|
|
|
| |
This inadvertently was left on, slowing down the process a little
|
|
|
|
|
|
|
|
| |
Somehow I missed updating some files with the result that a few official
12.0 final corrections did not make it into
906f46d96ca4ba2d1039d576954bc5a47868348c.
These are mostly tests and break property changes for a few characters
|
| |
|
| |
|
| |
|
|
|
|
| |
This supports this new feature.
|
| |
|
|
|
|
| |
These debugging lines were left in by 21c34e9717d
|
| |
|
|
|
|
|
| |
This renames a variable to more accurately reflect its content, and adds
a new one which has the old name but with an accurate content.
|
| |
|
|
|
|
|
|
|
| |
Prior to this commit 'use utf8' loaded utf8_heavy.pl. But previous
commits in the 5.29 series mean it is not needed from the core unless a
tr/// is using UTF-8, a much less likely occurrence. So load it only on
demand
|