Branch: refs/heads/yves/regnode_typedefs Home: https://github.com/Perl/perl5 Commit: a130d4d2c32912275d9d972f782288ca618cc39d https://github.com/Perl/perl5/commit/a130d4d2c32912275d9d972f782288ca618cc39d Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022)
Changed paths: M regcomp.c Log Message: ----------- regcomp.c - fix comment, change 'x' to 'X' the rest of the surrounding comments use X not x. Commit: f71ed3520132d62ef7e3d1ac0141313dfb885dea https://github.com/Perl/perl5/commit/f71ed3520132d62ef7e3d1ac0141313dfb885dea Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - fixup whitespace in comment so table lines up The table got a bit out of whack, this fixes it back to what is was meant to be. Commit: 1ec250a45eef50b1821adfafc8551e96dceec5e7 https://github.com/Perl/perl5/commit/1ec250a45eef50b1821adfafc8551e96dceec5e7 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regen/regcomp.pl M regnodes.h Log Message: ----------- regen/regcomp.pl - create typedefs for all regnode types Currently we hard code the struct used by the different regop types. This makes it awkward to change the structure used by a specific regop as the struct it uses might be used in many contexts, and each cases of a regop using that structure must be reviewed to see if it needs to be changed. This patch adds a typedef for each regnode. The typedefs are named 'tregnode_OP', for instance 'tregnode_TRIE' is typedefed to 'struct charclass' (at the time of this commit). This allows the code to do things like 'sizeof(tregnode_TRIE)' and should the exact struct used for TRIE regops change in the future then no code need be reviewed or changed. Commit: 517646709337f9b62a0149901b26bd67fa6200fb https://github.com/Perl/perl5/commit/517646709337f9b62a0149901b26bd67fa6200fb Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M charclass_invlists.h M pod/perlreguts.pod M regcomp.c M regcomp.h M regen/mk_invlists.pl M regen/regcomp.pl M regnodes.h Log Message: ----------- regen/regcomp.pl - rename regarglen to PL_regarglen for regexec.c In a follow up patch we will use this data from regexec.c which currently cannot see the variable. [NOTE: run regen/mk_invlists.pl on this later.] Commit: 7008b69e4e27615789e3cd087cdc82366ec2aff3 https://github.com/Perl/perl5/commit/7008b69e4e27615789e3cd087cdc82366ec2aff3 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - fixup comment, orig_emit is a node offset This comment was a bit misleading, as orig_emit is an offset into the program, not a pointer, it needs the REGNODE_p() macro to convert from offset to pointer. Commit: 36a8d5e5308ca0d3e1cd6d4558b9ccdc4c026332 https://github.com/Perl/perl5/commit/36a8d5e5308ca0d3e1cd6d4558b9ccdc4c026332 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M embed.fnc M embed.h M proto.h M regcomp.c Log Message: ----------- regcomp.c - add reg_nextoper and check_reg_nextoper reg_nextoper implements dynamically finding the NEXTOPER(node) based on the actualy regop that node points at. check_reg_nextoper implements *checking* that what NEXTOPER(node) would return is the same as what reg_nextoper would produce. Commit: 4330fc06d814708d8227d0763fa9dc5f63b84b32 https://github.com/Perl/perl5/commit/4330fc06d814708d8227d0763fa9dc5f63b84b32 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.h Log Message: ----------- regcomp.h - add more NEXTOPER macros and validation Commit: 62667fbd70d2edfd882e1f8134b00acbaa57a410 https://github.com/Perl/perl5/commit/62667fbd70d2edfd882e1f8134b00acbaa57a410 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - use new NEXTOPER macros Commit: cc5ba332f885c8f389bde3996bad62a6c0e256b9 https://github.com/Perl/perl5/commit/cc5ba332f885c8f389bde3996bad62a6c0e256b9 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regexec.c Log Message: ----------- regexec.c - use new NEXTOPER macros Commit: a7866b49d3694d72e7fe293aafa328b86d6ad057 https://github.com/Perl/perl5/commit/a7866b49d3694d72e7fe293aafa328b86d6ad057 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - replace OP(o) with const var in Perl_regprop() OP(o) is used all over the place in Perl_regprop(), replace it with a const var instead. Commit: 83d3cf433acc411300bb9b6e6ec14ae72ed4466e https://github.com/Perl/perl5/commit/83d3cf433acc411300bb9b6e6ec14ae72ed4466e Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - use a constant var for OP(node) in S_dumpuntil Simplify the logic of the loop so that we do not have to deal with things like "While that was not END last time...", use a constant var for op, and remove unnecessary (U8) casts that just clutter up the code. Commit: ea5f10858c906fc71243556fea5e568626da737e https://github.com/Perl/perl5/commit/ea5f10858c906fc71243556fea5e568626da737e Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M pod/perldebguts.pod M regcomp.c M regcomp.h M regcomp.sym M regexec.c M regnodes.h M t/re/pat.t Log Message: ----------- code for tracking parens in trie and branch nodes Commit: d39c130fb60c9a8163fcd8935743ce1072e8ef1b https://github.com/Perl/perl5/commit/d39c130fb60c9a8163fcd8935743ce1072e8ef1b Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.c Log Message: ----------- regcomp.c - in Perl_regprop show the capture buffer data we just added BRANCH, BRANCHJ, and TRIE and TRIEC nodes now store the how many capture buffers OPEN opcodes (and logical equivalents) were defined BEFORE them. This adds diagnostic output to Perl_regprop() so this data can be seen in the dump. Current notation is "(buf: %d)", this might change in the future. Commit: 6cbc19d73de61f4c0a2153f303d5d74cf8075732 https://github.com/Perl/perl5/commit/6cbc19d73de61f4c0a2153f303d5d74cf8075732 Author: Yves Orton <demer...@gmail.com> Date: 2022-04-18 (Mon, 18 Apr 2022) Changed paths: M regcomp.c M regexec.c M t/re/anyof.t M t/re/pat.t Log Message: ----------- arrows Compare: https://github.com/Perl/perl5/compare/8b4d5ae5e7bf...6cbc19d73de6