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

[perl.git] branch smoke-me/khw-core created.v5.29.7-110-gee185b73e9

Karl Williamson
February 5, 2019 22:24
[perl.git] branch smoke-me/khw-core created.v5.29.7-110-gee185b73e9
Message ID:
In perl.git, the branch smoke-me/khw-core has been created


        at  ee185b73e95ecce8ebb872320fd0d171ec000d9f (commit)

- Log -----------------------------------------------------------------
commit ee185b73e95ecce8ebb872320fd0d171ec000d9f
Author: Karl Williamson <>
Date:   Tue Feb 5 15:24:17 2019 -0700


commit 7a43ffcf82422ddce276baee7b9beb2b5ac1cffa
Author: Karl Williamson <>
Date:   Tue Aug 21 22:27:19 2018 -0600

    Remove relics of regex swash use
    This removes the most obvious and easy things that are no longer needed
    since regexes no longer use swashes at all.
    tr/// continues, for the time being, to use swashes, so not all swash
    handling is removable now.  But tr/// doesn't use inversion lists, and
    so a bunch of code is ripped out here.  Other code could have been, but
    I did only the relatively easy stuff.  The rest can be ripped out all at
    once when tr/// is stops using swashes.

commit 0dd15e9bbc5aa822cac60be60c70b1ff3f0b8529
Author: Karl Williamson <>
Date:   Thu Aug 23 13:54:48 2018 -0600

    regcomp.c: Arrays no longer need PL_sv_undef placeholders
    An empty entry is now just NULL.

commit 99bafa5587b0b9a24a02af2114f2e216b635f100
Author: Karl Williamson <>
Date:   Tue Aug 21 20:12:00 2018 -0600

    regcomp.c: Simplify args passing for ANYOF nodes
    A swash is no longer used, so we can remove some elements from the array
    of data that gets stored with the compiled pattern for use in runtime
    matching.  This is the first step in more simplifications.
    Since a swash isn't used, this change also requires regexec.c to change
    to use a straight inversion list lookup.  This has the salutary effect
    of eliminating a conversion between code point and UTF-8.

commit 6fab1188b4c5289f8a0a263e605e192eef4f314a
Author: Karl Williamson <>
Date:   Mon Aug 6 17:00:40 2018 -0600

    t/re/regexp_unicode_prop.t: Make sure sub called only once
    User-defined properties are supposed to be called just once for /i and
    once for non-/i.  This adds tests for that.
    It turns out that this was broken in blead.

commit d304983f48bd774a89d4c5774667a9d02a30d313
Author: Karl Williamson <>
Date:   Fri Aug 24 12:34:18 2018 -0600

    XXX thread tests t/re/regexp_unicode_prop.t: Add tests
    Add some tests.  These test various error conditions that haven't been
    tested before.

commit efa88bcccbfe767ba85562e46eeb6d9adc990873
Author: Karl Williamson <>
Date:   Wed Aug 15 17:11:15 2018 -0600

    t/re/regexp_unicode_prop.t: Test can have nested pkgs
    in \p{user-defined}

commit e56c96cb3944bf03bdf454978e2982d75a80671f
Author: Karl Williamson <>
Date:   Wed Aug 15 17:09:45 2018 -0600

    t/re/regexp_unicode_prop.t: Add some stress
    This adds some trailing spaces and comments in expansion of
    \p{user-defined}/ to verify things work.

commit f5627d9ae7d274e696dc384db3ca1336f671290e
Author: Karl Williamson <>
Date:   Wed Aug 15 17:07:51 2018 -0600

    t/op/taint.t: Add test

commit 199702459311161ed291b2054cf485c5ae6503d6
Author: Karl Williamson <>
Date:   Thu Aug 23 14:05:29 2018 -0600

    regcomp.c: Add some potential code that's #ifdef'd out
    This is in case we ever need it.  This checks for portability in the
    code points specified in user-defined properties.  Previously there was
    a check, but I couldn't get a warning to trigger unless there was also
    overflow.  So that means the pattern compile failed due to the overflow,
    and the portability warning was superfluous.  But, one can have
    non-portable code points without overflow; just the old method didn't
    properly detect them.  If we do ever need to detect and report on them,
    the code is mostly written and in this commit.

commit cb1040e445b1d4dcc8f5052da72dd908610463fd
Author: Karl Williamson <>
Date:   Mon Aug 20 18:31:04 2018 -0600

    XXX perldelta; more msg Move \p{user-defined} to core from
    This large commit moves the handling of user-defined properties to C
    code.  This should speed it up, but the main reason to do this is to
    stop using swashes in this case, leaving only tr/// using them.  Once
    that too is converted, all swash handling can be ripped out of perl.
    Doing this in perl has caused some nasty interactions that will now be
    fixed automatically.
    The change is not entirely transparent, however (besides speed and the
    possibility of removing these interactions).  The known changes are:
    1)  A few error messages have minor wording changes.  This is
        essentially because the new way is integrated into the regex error
        handling mechanism that marks the position in the input that the
        error occurred at.  That was not possible previously.
    2)  A user-defined property is implemented as a perl subroutine with
        certain highly constrained naming conventions.  It was documented
        previously that the sub would be in the current package if the
        package was unspecified.  This turned out not to be true in all
        cases, and this commit fixes it so that it is always true.
    3)  All recursive calls are treated as infinite recursion.  Previously
        they would cause the interpreter to panic.  Now, they cause the
        regex pattern to fail to compile.
    4)  Similarly, any other error likely would lead to a panic; now to just
        the pattern failing to compile.
    5)  The old mechanism did not detect illegal ranges in the definition of
        the property.  Now, the range max must not be smaller than the range
        min.  Otherwise, the pattern fails to compile.
    6)  The intention was to have each sub called only once during the
        lifetime of the program, so that a property's definition is
        immutable.  This was relaxed so that it could be called once for all
        /i compilations, and potentially a second time for non-/i (the sub
        is passed a parameter indicating which).  However, in practice there
        were instances when this was broken, and multiple calls were
        possible.  Those have been fixed.  Now (besides the /i,non-/i cases)
        the only way a sub can be called multiple times is if some component
        of it has not been defined yet.  For example, suppose we have sub
        IsA() whose definition is known at compile time, and it in turn
        calls isB() whose definition is not yet known.  isA() will be called
        each time a pattern it appears in is compiled.  If isA() also calls
        isC() and that definition is known, isC() will be called just once.
    XXX hanging

commit 20b8a990d73122f18265c1bc44aa77bc0b58b963
Author: Karl Williamson <>
Date:   Wed Aug 15 16:11:04 2018 -0600

    Add global hash to handle \p{user-defined}
    A global hash has to be specially handled.  The keys can't be shared,
    and all the SVs stored into it must be in its thread.  This commit adds
    the hash, and initialization, and macros for context change, but doesn't
    use them.  The code to deal with this is entirely confined to regcomp.c.

commit 8809f4e0c1999f1abe6ab56af2f89c2d1d1bb261
Author: Karl Williamson <>
Date:   Wed Aug 15 15:45:14 2018 -0600

    Add mutex for dealing with qr/\p{user-defined}/
    This will be used in future commits

commit 82457b1135ebc16f0311968e87f8d6ea6b12dc0a
Author: Karl Williamson <>
Date:   Mon Aug 6 17:39:35 2018 -0600

    regcomp.c: Add/reword some comments/white-space

commit e8379d5ffd2a038cfdf1a567dd361c87658626a6
Author: Karl Williamson <>
Date:   Fri Aug 3 14:12:49 2018 -0600

    regcomp.c: Change variable name
    The new name more closely corresponds with its use.

commit b0e84af00bb34927f799822e77612cc952c44072
Author: Karl Williamson <>
Date:   Fri Aug 10 12:02:44 2018 -0600

    Revert "Filter::Util::Call no longer needs '.' in @INC"
    This reverts commit 689a548b61aa50701877f25ab005f5a57a2c2185.

commit 417973c6ba2ca1ce4d39088476e0fa5b7824618c
Author: Karl Williamson <>
Date:   Thu Aug 9 18:49:54 2018 -0600

    Filter::Util::Call no longer needs '.' in @INC
    since 1.59

commit 82837f9af293fca09b4bc35d8454794506df4d66
Author: Karl Williamson <>
Date:   Wed Jul 18 14:53:27 2018 -0600

    Revert "experimental ucd"
    This reverts commit 514bc69adaed614fc6634bc4c6d5a55aae16e1e8.

commit 31addcebeddca0f34eb318965cb56fcaba6c3b67
Author: Karl Williamson <>
Date:   Wed Jul 18 14:53:13 2018 -0600

    experimental ucd


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