develooper Front page | perl.perl5.changes | Postings from September 2019

[perl.git] branch smoke-me/khw-lexact created.v5.31.4-32-gc2ae7427f8

Karl Williamson
September 23, 2019 21:44
[perl.git] branch smoke-me/khw-lexact created.v5.31.4-32-gc2ae7427f8
Message ID:
In perl.git, the branch smoke-me/khw-lexact has been created


        at  c2ae7427f8d28b4c71c333052cbd658058e94a55 (commit)

- Log -----------------------------------------------------------------
commit c2ae7427f8d28b4c71c333052cbd658058e94a55
Author: Karl Williamson <>
Date:   Mon Sep 23 15:42:51 2019 -0600


commit b2d69cd71716eddaa0c668e3ecec334e7c8b1460
Author: Karl Williamson <>
Date:   Mon Sep 23 14:02:01 2019 -0600


commit 47f1330639192244b57125882c77757e1b313dba
Author: Karl Williamson <>
Date:   Sun Sep 22 16:12:30 2019 -0600

    Add regnode LEXACT, for long strings
    This commit adds a new regnode for string that don't fit in a regular
    one, and adds a structure for that regnode to use.  Using them is
    deferred to the next commit.
    This new structure is needed because the previous structure only allows
    for an 8 bit length field, 255 max bytes.  This commit puts the length
    instead in a new field, where the U32 ARG field is for single-argument
    regnodes.  Hence this long string is an extra 32 bits of overhead.  And
    the upper 16 bits of those 32 are unused, because it can't exceed the
    size of the link to the next node, which is 16 bits.  The comments give
    some options for increasing that limit.
    I also considered simply combining the original 8 bit length field
    (which is now unused) with the first byte of the string field to get a
    16 bit length, and have the actual string be offset by 1.  But I
    rejected that because it would mean the string would usually not be
    aligned, slowing down memory accesses.
    The new LEXACT regnode holds about 260 of the regular EXACT ones.  Even
    though it has unused bits, it is shorter than even two EXACT ones in a
    row, and at its full capacity it saves about 1000 bytes of header
    overhead over just using regular EXACT ones.
    Besides the space advantage, any hardware acceleration in memcmp
    can be done in much bigger chunks, and otherwise the memcmp inner loop
    will run many more times in a row, and our outer loop that calls it,
    correspondingly fewer.

commit 23460b9f0cf510b622cea9bc28ed003296659681
Author: Karl Williamson <>
Date:   Sun Sep 22 16:12:07 2019 -0600

    regcomp.c: Change handling of filled EXACT nodes
    This changes the detection mechanism to, just before we otherwise would
    write to the node, we see if that would be out of bounds, and if so,
    instead break out of the loop to handle a full node.
    This improves the packing of nodes, especially under /i, from the
    previous mechanism.  But more importantly, it set things up so that we
    can potentially increase the node size as we go along.

commit f614c9531edbd167e557b875126fa34002dc7321
Author: Karl Williamson <>
Date:   Sun Sep 22 15:26:03 2019 -0600

    regcomp.h: Add comments

commit b586c593ab705ba472ccccb25d7b8f1223feaa26
Author: Karl Williamson <>
Date:   Sun Sep 22 15:25:23 2019 -0600

    regcomp.h: Remove obsolete macro
    This is no longer used

commit 595c0b87f7bee8a173972abba0e6f25fdafb02ca
Author: Karl Williamson <>
Date:   Sun Sep 22 15:09:05 2019 -0600

    regcomp.sym Improve descriptions of some nodes
    These are slightly shorter and remove mention of the length, which is
    problematic, and is covered in the description for EXACT

commit ae7a4c09a2c15d12fa3a5fd09ab7920b74727f5e
Author: Karl Williamson <>
Date:   Sat Sep 21 14:34:20 2019 -0600

    regcomp.c: Rename two variables
    This is in preparation for future changes to more accurately describe
    their new purposes.

commit 9a5da52f048200d1f95e3af4e9e397a41e279409
Author: Karl Williamson <>
Date:   Sat Sep 21 13:31:37 2019 -0600

    regcomp.c: White-space only, comments
    Outdent a block that was doubly indented.  Change some other white space
    and fix grammar in a comment

commit d1b96c8d02411a187b58d40dd737c0f0bedff766
Author: Karl Williamson <>
Date:   Sat Sep 21 13:24:33 2019 -0600

    regcomp: Use new set macro to store a value
    This is in preparation for the current mechanism in a later commit to
    become a not legal lhs

commit dde7f379c8155a7845576fdef30ff0fa0566f20f
Author: Karl Williamson <>
Date:   Sat Sep 21 13:18:12 2019 -0600

    regcomp.h: Parenthesize param in macro expansion
    This is always a good idea

commit 13dbf949f3d8fedea75c6f93144b1b7e48594933
Author: Karl Williamson <>
Date:   Sat Sep 21 13:14:25 2019 -0600

    regcomp.h: Remove duplicate macro expansion
    This macro has the same definition as another.

commit dd9adf2ad9037dc02baee47bcbc622e8c3fee9e8
Author: Karl Williamson <>
Date:   Sun Sep 22 15:48:51 2019 -0600

    perlrun: Note that -W can't be in PERL5OPT

commit c76c17620f33fa14531ccc661eb3a3d119684ed8
Author: Karl Williamson <>
Date:   Wed Jun 26 13:02:35 2019 -0600

    XXX Configure


Perl5 Master Repository Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About