In perl.git, the branch smoke-me/khw-core has been created <https://perl5.git.perl.org/perl.git/commitdiff/03133ff99be19b7060de0a2188899f7b10c473e4?hp=0000000000000000000000000000000000000000>
at 03133ff99be19b7060de0a2188899f7b10c473e4 (commit) - Log ----------------------------------------------------------------- commit 03133ff99be19b7060de0a2188899f7b10c473e4 Author: Karl Williamson <k...@cpan.org> Date: Sun Jan 6 23:31:40 2019 -0700 smoke commit a3805a910fc402bb279068839a92573c4d9f6201 Author: Karl Williamson <k...@cpan.org> 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 a534a9c3646f613e1d9c864a332a0dcaeec8def4 Author: Karl Williamson <k...@cpan.org> 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 5c84037a74e21aa3b0c11627cce0a1f3613138ce Author: Karl Williamson <k...@cpan.org> 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 9b69d11a8a6fe831570914ef08020960bbe2f4d6 Author: Karl Williamson <k...@cpan.org> 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 ffa3632deb046da5acbc5a87727dccc8f67feb3d Author: Karl Williamson <k...@cpan.org> 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 d46ec7c310a512777a8e6b6d39fa485adc3a7853 Author: Karl Williamson <k...@cpan.org> 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 14119109df8267cc4636da3739eb97e1b7c80189 Author: Karl Williamson <k...@cpan.org> 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 c4153421fef696911a0284b96378dddba6655c55 Author: Karl Williamson <k...@cpan.org> Date: Wed Aug 15 17:07:51 2018 -0600 t/op/taint.t: Add test commit 5c9400873c6ffaf7397d117afd779d19c79d97f7 Author: Karl Williamson <k...@cpan.org> 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 e577c31f3885b1d3ccc96fac5d9db9aaadb7d532 Author: Karl Williamson <k...@cpan.org> Date: Mon Aug 20 18:31:04 2018 -0600 XXX perldelta; more msg Move \p{user-defined} to core from utf8_heavy.pl 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 cd262191520c70a3ef27d433fe07b3930a67977f Author: Karl Williamson <k...@cpan.org> 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 00caea4ce787da661f7d086adb56c98a34a12f69 Author: Karl Williamson <k...@cpan.org> 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 5bcc539cb7dc90e8aec5b03b71cbc0ef61ac33ae Author: Karl Williamson <k...@cpan.org> Date: Mon Aug 6 17:39:35 2018 -0600 regcomp.c: Add/reword some comments/white-space commit 18dbc9d2190b05a946406c570ba97c01d9579426 Author: Karl Williamson <k...@cpan.org> Date: Fri Aug 3 14:12:49 2018 -0600 regcomp.c: Change variable name The new name more closely corresponds with its use. commit 9f3348a2949878d9a5d1c2ed803f0a1b31e77c80 Author: Karl Williamson <k...@cpan.org> Date: Fri Aug 10 12:02:44 2018 -0600 Revert "Filter::Util::Call no longer needs '.' in @INC" This reverts commit 689a548b61aa50701877f25ab005f5a57a2c2185. commit 5a7d98ad63a2d61cee7ef69abd76afc225deb2c2 Author: Karl Williamson <k...@cpan.org> Date: Thu Aug 9 18:49:54 2018 -0600 Filter::Util::Call no longer needs '.' in @INC since 1.59 commit 74c7a64276992e28b6eef3bb8b7da7e75dfaad85 Author: Karl Williamson <k...@cpan.org> Date: Wed Jul 18 14:53:27 2018 -0600 Revert "experimental ucd" This reverts commit 514bc69adaed614fc6634bc4c6d5a55aae16e1e8. commit 85926b776cc242ee4e42c6c05ae0a57a51a916b0 Author: Karl Williamson <k...@cpan.org> Date: Wed Jul 18 14:53:13 2018 -0600 experimental ucd ----------------------------------------------------------------------- -- Perl5 Master Repository