summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* ignore $^H{feature/bits'} when deparsingTony Cook2019-11-021-1/+2
| | | | | | | | 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.
* Faster feature checksTony Cook2019-10-301-2/+25
| | | | | | | | | | | | | | | 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.
* Tie::StdHandle::BINMODE: handle layer argumentHauke D2019-10-292-3/+14
| | | | | | | | | | 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>
* Bump version to 5.31.6Steve Hay2019-10-201-1/+1
| | | | (includes regen/opcode.pl)
* lib/ExtUtils/t/Embed.t: Skip on EBCDICKarl Williamson2019-10-091-0/+5
| | | | This is not currently implemented for EBCDIC
* l1_char_class_tab.h: Remove some special EBCDIC casesKarl Williamson2019-10-091-1/+1
| | | | These are no longer needed.
* regen charclass_invlists.hDavid Mitchell2019-10-031-1/+1
| | | | | | | this was missed from the previous commit Also, fix typo in regen/regcharclass.pl It was still referring to itself as Porting/regcharclass.pl
* Use balanced delimiters for multi-line s///gxeDagfinn Ilmari Mannsåker2019-10-033-5/+5
|
* lib/charnames.t: Fix Named Sequence test for EBCDICKarl Williamson2019-10-021-0/+3
| | | | The file from Unicode needs to be translated to native
* mktables: Fix Named Sequences for EBCDICKarl Williamson2019-10-022-1/+6
| | | | This table wasn't being translated into native code points
* put signature ops in their own subtree.David Mitchell2019-09-231-45/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bump Version from 5.31.4 to 5.31.5 in various placesMax Maischein2019-09-211-1/+1
|
* regen/mk_invlists.pl: Fix /i rules for non-ASCII machinesKarl Williamson2019-08-261-1/+1
| | | | | | 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.
* regen/mk_invlists.pl: Never remap 0Karl Williamson2019-08-261-1/+1
| | | | | 0 is a special marker, and shouldn't be remapped. It would be unlikely to be so, but this makes sure.
* regen/mk_invlists.pl: inversion map requires a final entryKarl Williamson2019-08-261-1/+1
| | | | | | 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.
* Bump version to 5.31.4 and update Module::CorelistTom Hukins2019-08-201-1/+1
|
* Fix pod formattingE.Choroba2019-07-211-3/+3
| | | | | | | | &gt; is an HTML entity, not pod. Committer: increment $VERSION For: RT # 134300
* Bump version to 5.31.3Steve Hay2019-07-201-1/+1
|
* Fix "it it" typosDagfinn Ilmari Mannsåker2019-07-042-2/+2
| | | | And regen affected files
* Run regen/opcode.pl to increment $VERSION in lib/B/Op_private.pmJames E Keenan2019-06-211-1/+1
| | | | Thereby keeping t/porting/regen.t happy.
* /\p{InFoo} should only match blocks, or be user-definedKarl Williamson2019-06-022-1/+2
| | | | | | | | | | 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}.
* PATCH: [perl #119439] Remove Pod::Parser from coreKarl Williamson2019-05-304-330/+0
| | | | | Pod::Simple now has the needed capabilities to completely replace Pod::Parser.
* lib/warnings.pm: Use L</Foo Bar>, not L<Foo Bar>Karl Williamson2019-05-251-2/+2
|
* lib/overload.pm: Use L</Foo Bar>, not L<Foo Bar>Karl Williamson2019-05-251-15/+15
|
* Unicode::UCD: Use L</Foo Bar>, not L<Foo Bar>Karl Williamson2019-05-252-3/+3
|
* lib/Class/Struct.pm: Use L</Foo Bar>, not L<Foo Bar>Karl Williamson2019-05-251-2/+2
|
* lib/Unicode/UCD.t: Use standard Perl environment variableKarl Williamson2019-05-251-3/+3
| | | | | This test file invented its own environment variable, whereas everyone else uses a different one. Make this one comply.
* Bump the perl version in various places for 5.31.1Sawyer X2019-05-251-1/+1
|
* Bump the perl version in various places for 5.31.0Sawyer X2019-05-222-2/+2
|
* update featuresSawyer X2019-05-221-0/+6
|
* Bump the perl version in various places for 5.30.0Sawyer X2019-05-101-1/+1
|
* Update Unicode 12.1Karl Williamson2019-04-193-4/+8
| | | | | | | 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.
* Deparse: mark "$a[0]\[1]" TODODavid Mitchell2019-04-191-0/+4
| | | | | | | 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'.
* mktables: Silence warningKarl Williamson2019-04-162-2/+2
| | | | A variable needed to be updated for Unicode 12.1
* mktables: Generalize handling of [perl #133979]Karl Williamson2019-04-102-6/+12
| | | | | | I realized that commit f9c1e7e9ed13a16099c8471c2030b93deb482571 works now, but future Unicode versions may add fractions that fool it. This commit should handle any such event
* Preliminary Unicode 12.1Unicode Consortium2019-04-0856-1418/+1430
|
* mktables: White-space onlyKarl Williamson2019-04-062-10/+10
| | | | Indent block newly formed in previous commit
* PATCH: [perl #133979] uniprops02 failing on WindowsKarl Williamson2019-04-062-3/+20
| | | | | | | 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.
* mktables: Turn off DEBUGKarl Williamson2019-04-042-2/+2
| | | | This inadvertently was left on, slowing down the process a little
* Corrections to Unicode 12.0Unicode Consortium2019-04-0219-417/+337
| | | | | | | | 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
* Bump the perl version in various places for 5.29.10Zak B. Elep2019-03-211-1/+1
|
* Add warning category for variable length lookbehindKarl Williamson2019-03-182-150/+155
|
* Add tests for wildcards in Unicode property valuesKarl Williamson2019-03-122-2/+48
|
* regen/mk_invlists.pl: Add tables for Unicode wildcardsKarl Williamson2019-03-121-1/+1
| | | | This supports this new feature.
* Add warnings category experimental::uniprop_wildcardsKarl Williamson2019-03-123-5/+11
|
* regen/mk_invlists.pl: Remove stray debugging stmtsKarl Williamson2019-03-121-1/+1
| | | | These debugging lines were left in by 21c34e9717d
* regen/mk_invlists.pl: Comment/white-space onlyKarl Williamson2019-03-121-1/+1
|
* regen/mk_invlists.pl, lib/utf8_heavy.pl: Rename variableKarl Williamson2019-03-122-1/+8
| | | | | 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.
* charclass_invlists.h: Add commentKarl Williamson2019-03-121-2/+2
|
* Don't use utf8_heavy.pl unless neededKarl Williamson2019-03-101-2/+1
| | | | | | | 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