summaryrefslogtreecommitdiff
path: root/regen
Commit message (Collapse)AuthorAgeFilesLines
* POD breakage in lib/warnings.pmPete Houston2021-11-181-2/+2
| | | | | | | | | | | | An unescaped right angle bracket was resulting in a malformed code snippet in warnings.pm This tiny PR escapes that character and thus fixes the rendering. regen/warnings.pl corrected and regenerated; version bumped. Pete Houston is now a Perl Author. For: https://github.com/Perl/perl5/pull/19228
* feature.pm: remove bareword_filehandles from :5.36Ricardo Signes2021-11-021-2/+5
|
* feature: remove indirect and multidimensional in v5.36Ricardo Signes2021-11-021-2/+5
|
* Add a new warning experimental::for_list.Nicholas Clark2021-10-151-1/+3
|
* add OPpUSEINT op_private flag bitDavid Mitchell2021-10-071-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | The bitwise ops, such as a '<<', have an op_private flag that is set when compiled within the scope of 'use integer;'. Unfortunately, due to historical reasons, the defined flag that indicates this bit (bit 0) is HINT_INTEGER rather than an OPpfoo define. But HINT_INTEGER is supposed to represent a bit within PL_hints, not a bit within op_private. If someone reorganised the flags in PL_hints at some point, it would mess up bitwise ops. So this commit: 1) adds a new flag, OPpUSEINT, to indicate the bit within op_private. 2) Changes this flag's value from 0x1 to 0x4 to force it to be different than HINT_INTEGER - thus potentially flushing out any misuse of this flag anywhere (in core or XS code). 3) tells regen/op_private that the lower two bits of op_private in bitwise ops don't contain the argument count. They never did, but not specifying that in regen/op_private meant that the debugging code in op_free() never spotted the unknown bit 0 sometimes being set. 4) Also tell that debugging code to skip the test if the op is banned. This fixes a new fail in dist/Safe/t/safeops.t which was croaking about a banned op having an unrecognised op_private flag bit set before ck_bitop() had a chance to delete the arg count in op_private.
* Support Unicode 14.0Unicode Consortium2021-09-151-13/+6
|
* regen/mk_invlists.pl: Add commentKarl Williamson2021-09-151-0/+2
|
* mktables: Split a Line Break equivalence classKarl Williamson2021-09-151-1/+6
| | | | This is used for the \b{lb}, and the rule is changing in Unicode 14.0
* Create `defer` syntax and `OP_PUSHDEFER` opcodePaul "LeoNerd" Evans2021-08-254-2/+14
| | | | | | | | | | | | | | | Adds syntax `defer { BLOCK }` to create a deferred block; code that is deferred until the scope exits. This syntax is guarded by use feature 'defer'; Adds a new opcode, `OP_PUSHDEFER`, which is a LOGOP whose `op_other` field gives the start of an optree to be deferred until scope exit. That op pointer will be stored on the save stack and invoked as part of scope unwind. Included is support for `B::Deparse` to deparse the optree back into syntax.
* regnodes.h: Add new set of definesKarl Williamson2021-08-231-9/+28
| | | | | | | | | | | | | | There currently is a set of defines for switching on the op code of the regnode, and another set for switching on that plus the utf8ness of both the target and pattern. This latter set is useful in one routine in regexec.c where all three are important. It allows fewer branches to have to be done by encoding where to go into the case: value. There are other similar switches in regexec. The one in regrepeat() doesn't care very much about the utf8ness of the pattern. This commit adds a third set of defines for use by that switch, which will be used by the next commit.
* Document v5.35 warnings-on-by-defaultBen Cornett2021-08-151-1/+7
|
* utf8.c: Rmv an EBCDIC dependencyKarl Williamson2021-08-141-0/+2
| | | | This is now generated by regcharclass.pl
* Provide a simple API for testing features enabledTony Cook2021-08-101-0/+131
| | | | | | | | Inspired by discussion in #p5p. This calls caller() itself rather than taking hints and hints_hash parameters so if we end up adding an extra hints word callers won't need to adjust their code.
* regcharclass.pl: Add fast surrogate UTF-8 trieKarl Williamson2021-08-071-1/+1
| | | | | This will be used in the next commit. It requires only the first two bytes to determine if a UTF-8 or UTF-EBCDIC sequence is for a surrogate
* Remove EBCDIC-only codeKarl Williamson2021-08-071-10/+0
| | | | The previous commit stopped using this code, so can just get rid of it.
* regcharclass.pl: Further improve EBCDIC codeKarl Williamson2021-08-071-9/+25
| | | | | | | | | | | A couple of commits ago improved the generated output of this script. This builds on that. The improvements were to try a transform that could lead to fewer conditionals, as bytes were greouped in fewer ranges. But that introduced a useless transformation for the single element ranges that remain. This commit removes the transformation if not needed.
* regcharclass.pl: Make 2 locals into global hashesKarl Williamson2021-08-071-6/+8
| | | | This is in preparation for a future commit
* regcharclass.pl: Improve generated code for EBCDICKarl Williamson2021-08-071-32/+101
| | | | | | | | | | | | | | | | UTF-8 has some desirable characteristics not shared by UTF-EBCDIC. One example is all the continuation bytes are in a single range. By transforming a UTF-EBCDIC byte into I8 (similar to UTF-8), we gain those characteristics, and may be able to save a conditional or three. This commit creates a 2nd pass over the bytes that are to be matched, transforming them into I8. If that pass results in fewer conditionals than the traditional, native, generated code, use the fewer result. This saves quite a bit in some of the generated code, enabling the quotemeta macro to be represented in a single part; previously it had to be split to avoid compiler macro size limits.
* regcharclass.pl: White-space comment onlyKarl Williamson2021-08-071-15/+19
| | | | A future commit will put a block around this; indent now.
* regcharclass.pl: Get UTF EBCDIC translationsKarl Williamson2021-08-071-2/+12
| | | | These will be used in a future commit
* regcharclass.pl: Add ability to avoid wrong mnemonicKarl Williamson2021-08-071-1/+2
| | | | | | | A future commit will pass this function data that shouldn't be translated into a mnemonic, like 'f' for the letter f. The reason is that that code will potentially be executed on a machine with a different character set than what the mnemonic would be valid for.
* regcharclass.pl: Change variable nameKarl Williamson2021-08-071-6/+6
| | | | A future commit will use this differently than the current name implies
* regcharclass.pl: Reorder execution pathKarl Williamson2021-08-071-17/+16
| | | | | This moves a loop earlier in the execution path. This will be useful in a later commit
* regcharclass.pl: Rmv unused variableKarl Williamson2021-08-071-2/+1
|
* regcharclass.pl: Add an error checkKarl Williamson2021-08-071-1/+5
|
* regcharclass.pl: Move some code earlierKarl Williamson2021-08-071-39/+41
| | | | | We can short circuit some work by moving the test earlier. This does not change the generated file.
* regcharclass.pl: Rmv unused variableKarl Williamson2021-08-071-2/+0
|
* regen/regcharclass.pl: Use deref of an arrayKarl Williamson2021-08-071-5/+6
| | | | This will make future commits read better.
* Remove the flags OPpSORT_STABLE and OPpSORT_UNSTABLE.Nicholas Clark2021-07-311-2/+0
| | | | | | Remove the code in Perl_ck_sort() that reads from PL_hintgv that sets these, and the code in pp_sort that reads them and sets SORTf_STABLE and SORTf_UNSTABLE (which were no longer read. Remove these too.)
* regen/charset xlations.pl: Use revised UTF-8 macrosKarl Williamson2021-07-311-2/+2
| | | | | | | | I realized that two base level utf8.h macros for UTF-8 could be refactored to eliminate the conditionals in each. Those macros have equivalents in the pure perl code changed by this commit, which I changed before the utf8.h versions to verify that everything worked, by verifying there was no difference in the generated tables.
* regcharclass.h: Remove 2 EBCDIC dependenciesKarl Williamson2021-07-311-1/+6
| | | | | | | | | This commit makes is_HANGUL_ED_utf8_safe() return 0 unconditionally on EBCDIC platforms. This means its callers don't have to care what platform is running. Change the two callers to take advantage of this The commit also changes the description of the macro to be slightly more accurate
* regcharclass.h: #defines for non-chars by UTF8 lengthKarl Williamson2021-07-301-0/+48
| | | | | | | | | | This creates macros for the non-character code points so that, given the length of the UTF-8 sequence, only those ones that have that length match. This makes for more efficient processing, to be used in a future commit. The place where the length changes depends on the platform type, and these macros will keep the code from having to worry about that.
* warnings.h: Use cast instead of bitwise &Karl Williamson2021-07-301-4/+4
| | | | This saves that instruction
* feature.pl: bump version number to 1.67Ricardo Signes2021-07-251-1/+1
|
* feature.pm: drop "switch" from latest version bundleRicardo Signes2021-07-251-1/+3
|
* Remove :win32 PerlIO layerLeon Timmermans2021-06-281-3/+1
|
* replace all instances of PERL_IMPLICIT_CONTEXT with MULTIPLICITYTomasz Konojacki2021-06-091-29/+7
| | | | | | | | | | | | Since the removal of PERL_OBJECT (acfe0abcedaf592fb4b9cb69ce3468308ae99d91) PERL_IMPLICIT_CONTEXT and MULTIPLICITY have been synonymous and they're being used interchangeably. To simplify the code, this commit replaces all instances of PERL_IMPLICIT_CONTEXT with MULTIPLICITY. PERL_IMPLICIT_CONTEXT will stay defined for compatibility with XS modules.
* Call magic on all elements on %SIG delocalizationLeon Timmermans2021-06-021-1/+3
|
* Bump feature.pm Version to 1.66Karl Williamson2021-05-311-1/+1
|
* Clarify descriptions of unicode_eval and evalbytes.Felipe Gasper2021-05-311-2/+2
| | | | Issue #18801
* Bump to 5.35.0:Sawyer X2021-05-211-1/+2
| | | | | | * Apparently, first you bump, then you update perldelta. * 5.35.0 *might* be released tomorrow (likely) but not certainly. * I've set it to tomorrow so Module::CoreList won't be upset.
* feature.pm: fix a typoRicardo Signes2021-05-011-1/+1
|
* feature.pm: note that "try" is experimentalRicardo Signes2021-04-301-0/+6
| | | | ...then regen
* regen/embed.pl: G flag mean NN, NULLOK not reqdKarl Williamson2021-04-141-1/+4
| | | | | | | | | | The G flag for a function indicates to not generate a PERL_ARGS_ASSERT macro for the function. This macro is the only consumer of the NN and NULLOK indicators to pointer arguments. Since the consumer is absent, there is no need for them, and they shouldn't be required. This commit does not change the check that If a NN is furnished, the G flag is illegal.
* feature.pl: document all experiments identicallyRicardo Signes2021-04-041-12/+15
| | | | ...and add "this is an experiment" to "isa"
* feature.pl: stop using "switch" as a demo feature!Ricardo Signes2021-04-041-11/+13
| | | | | It is experimental, it would cause warnings, and frankly, I would like to just inch toward its disappearance.
* Allow pack 'D' on all systems with long doublesLeon Timmermans2021-02-191-1/+1
| | | | | Previously it was only supported if NV also was long double, but not when it is either double or __float128.
* A totally new optree structure for try/catch involving three new optypesPaul "LeoNerd" Evans2021-02-141-0/+3
|
* Fix trivial syntax bugs in doc for multidimensionalEugene Alvin Villar2021-02-111-2/+2
|
* Initial attempt at feature 'try'Paul "LeoNerd" Evans2021-02-044-1/+18
| | | | | | | | | * Add feature, experimental warning, keyword * Basic parsing * Basic implementation as optree fragment See also https://github.com/Perl/perl5/issues/18504