develooper Front page | perl.perl5.changes | Postings from August 2022

[Perl/perl5] 20f477: regex engine - wrap PL_regnode_kind with macroREG...

From:
Yves Orton via perl5-changes
Date:
August 6, 2022 09:33
Subject:
[Perl/perl5] 20f477: regex engine - wrap PL_regnode_kind with macroREG...
Message ID:
Perl/perl5/push/refs/heads/blead/518db9-12d173@github.com
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 20f4775e6e5458b56cf04a4bb8f4b4b2c7a98f0c
      https://github.com/Perl/perl5/commit/20f4775e6e5458b56cf04a4bb8f4b4b2c7a98f0c
  Author: Yves Orton <demerphq@gmail.com>
  Date:   2022-08-06 (Sat, 06 Aug 2022)

  Changed paths:
    M regcomp.c
    M regcomp.h
    M regexec.c
    M regnodes.h

  Log Message:
  -----------
  regex engine - wrap PL_regnode_kind with macro REGNODE_TYPE()

The code confusing uses type and kind as synonyms. Lets end that bad habit


  Commit: 1489b465ff4e90485a0fae9370f20fc560a1dba8
      https://github.com/Perl/perl5/commit/1489b465ff4e90485a0fae9370f20fc560a1dba8
  Author: Yves Orton <demerphq@gmail.com>
  Date:   2022-08-06 (Sat, 06 Aug 2022)

  Changed paths:
    M regcomp.c
    M regcomp.h
    M reginline.h

  Log Message:
  -----------
  regex engine - wrap PL_regnode_off_by_arg with macro REGNODE_OFF_BY_ARG()


  Commit: e28d2a35331ef4703caf07b4ddea0da27a9d6e6f
      https://github.com/Perl/perl5/commit/e28d2a35331ef4703caf07b4ddea0da27a9d6e6f
  Author: Yves Orton <demerphq@gmail.com>
  Date:   2022-08-06 (Sat, 06 Aug 2022)

  Changed paths:
    M regcomp.c
    M regcomp.h
    M reginline.h

  Log Message:
  -----------
  regex engine - wrap PL_regnode_arg_len with macro REGNODE_ARG_LEN()


  Commit: 79a585d60bd04a299e28c3f76025b5003fb41ef1
      https://github.com/Perl/perl5/commit/79a585d60bd04a299e28c3f76025b5003fb41ef1
  Author: Yves Orton <demerphq@gmail.com>
  Date:   2022-08-06 (Sat, 06 Aug 2022)

  Changed paths:
    M regcomp.h
    M reginline.h

  Log Message:
  -----------
  regex engine - wrap PL_regnode_arg_len_varies with macro REGNODE_ARG_LEN_VARIES()


  Commit: cbf5c5ba5f44cf0fe11b64213facfc8ae7c33e4e
      https://github.com/Perl/perl5/commit/cbf5c5ba5f44cf0fe11b64213facfc8ae7c33e4e
  Author: Yves Orton <demerphq@gmail.com>
  Date:   2022-08-06 (Sat, 06 Aug 2022)

  Changed paths:
    M regcomp.c
    M regcomp.h
    M regexec.c

  Log Message:
  -----------
  regex engine - wrap PL_regnode_name with macro REGNODE_NAME()


  Commit: 12d173c94b050c244dbb4e2162e29834a9ac3aff
      https://github.com/Perl/perl5/commit/12d173c94b050c244dbb4e2162e29834a9ac3aff
  Author: Yves Orton <demerphq@gmail.com>
  Date:   2022-08-06 (Sat, 06 Aug 2022)

  Changed paths:
    M globvar.sym
    M regcomp.h
    M regen/regcomp.pl
    M regexp.h
    M regnodes.h

  Log Message:
  -----------
  regex engine - replace many attribute arrays with one

This replaces PL_regnode_arg_len, PL_regnode_arg_len_varies,
PL_regnode_off_by_arg and PL_regnode_kind with a single PL_regnode_info
array, which is an array of struct regnode_meta, which contains the same
data but as a struct. Since PL_regnode_name is only used in debugging
builds of the regex engine we keep it separate. If we add more debug
properties it might be good to create a PL_regnode_debug_info[] to hold
that data instead.

This means when we add new properties we do not need to modify any
secondary sources to add new properites, just the struct definition
and regen/regcomp.pl


Compare: https://github.com/Perl/perl5/compare/518db96ae536...12d173c94b05



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About