Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 76771a3ecc3d9d5fadc651cbc9433775af0a8348 https://github.com/Perl/perl5/commit/76771a3ecc3d9d5fadc651cbc9433775af0a8348 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024)
Changed paths: M utf8.c Log Message: ----------- utf8.c: Replace macros by more compact equivalents There are shortcuts available that cut these 8 names to 2. Commit: c082b7f6d5deed12bbc3a8cb75b79b0d8b54d96c https://github.com/Perl/perl5/commit/c082b7f6d5deed12bbc3a8cb75b79b0d8b54d96c Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Move most important conditional to be first It turns out that the information generated in this block is only needed if the final conditional in this complicated group of them is true, which checks if the caller wants anything special for certain classes of code points. Because that final condition is subsidiary, the block was getting executed just to be thrown away. Commit: 98aa7cce4770815c89f48b7ac654b3de3e0f40a7 https://github.com/Perl/perl5/commit/98aa7cce4770815c89f48b7ac654b3de3e0f40a7 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Split conditionals As a first step in simplifying this overly complicated series of conditionals, pull out the first one into a separate 'if'. The next commits will do more. Commit: 626cad237450342c2f0e4a4a9c4e8f087c23a07e https://github.com/Perl/perl5/commit/626cad237450342c2f0e4a4a9c4e8f087c23a07e Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Further simplify a complex conditional This hoists a clause in a complex conditional to the 'if' statement above it, converting that to two conditionals from one, while decreasing the number in the much larger interior 'if' by 1. This is in preparation for further simplifications in the next few commits. Commit: bff7ff500ee4c484356150d97dc6acf99a53ac57 https://github.com/Perl/perl5/commit/bff7ff500ee4c484356150d97dc6acf99a53ac57 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Further simplify complex conditional This splits these into an if clause, and an else clause Commit: 9efd3ace7ca57bde78c7cd137119c3ac7d36d6f1 https://github.com/Perl/perl5/commit/9efd3ace7ca57bde78c7cd137119c3ac7d36d6f1 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Swap order of blocks This makes things a bit simpler, but mainly leads to further simplifications in the next commits. Commit: 15454ada1536aed9038c5b44aa4a230caca8dd3f https://github.com/Perl/perl5/commit/15454ada1536aed9038c5b44aa4a230caca8dd3f Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Check specially for perl-extended UTF-8 More rigorous testing of the overlong malformation, yet to be committed, showed that this needs to be handled specially. This commit does part of that. Perl extended UTF-8 means you are using a start byte not recognized by any UTF-8 standard. Suppose it is an overlong sequence that reduces down to something representable using standard UTF-8. The string still used non-standard UTF-8 to get there, so should still be called out when the input parameters to this function ask for that. This commit is a first step towards that. Commit: f241a5be0d582cd100172697fd02e95c5a0bf6a7 https://github.com/Perl/perl5/commit/f241a5be0d582cd100172697fd02e95c5a0bf6a7 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Remove intermediate value By not overriding the computed value of malformed input until later in the function, we can eliminate this temporary variable. This paves the way to a much bigger simplification in the next commit. Commit: cc8bd1ea0fb28d5a19dc451da1758c0305e524d6 https://github.com/Perl/perl5/commit/cc8bd1ea0fb28d5a19dc451da1758c0305e524d6 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Combine two blocks It turns out that the work being done in the first block is only used in the second block. If that block doesn't get executed, the first block's effort is thrown away. So fold the first block into the second. This results in a bunch of temporaries that were used to communicate between the blocks being able to be removed. More detailed comments are added. Commit: f22cd664562cf140edba9f889a39bf419011ac50 https://github.com/Perl/perl5/commit/f22cd664562cf140edba9f889a39bf419011ac50 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: Don't throw away work Don't execute this loop if it would be pointless. Commit: 1d9f041275ce09a3dfffdd4fc74ce43732bac883 https://github.com/Perl/perl5/commit/1d9f041275ce09a3dfffdd4fc74ce43732bac883 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8n_to_uvchr_msgs_helper: Add assertion Make sure it isn't being called with unexpected input -- Commit: fadda7d70f016bcce71f3da3fc3319fc62315ae7 https://github.com/Perl/perl5/commit/fadda7d70f016bcce71f3da3fc3319fc62315ae7 Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8n_to_uvchr_msgs_helper: Don't throw away work Admittedly not much work, but I realized in code reading that there are function exits that ignore this initialization. Instead move the initialization to later, where it is actually needed Commit: 3cf2df0ef8b3706862ff5ec05a8aa187f976002c https://github.com/Perl/perl5/commit/3cf2df0ef8b3706862ff5ec05a8aa187f976002c Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8.c: White-space only Remove excess indentation Commit: f254d774f8489de819d97ce662af2dbe3eb9f12b https://github.com/Perl/perl5/commit/f254d774f8489de819d97ce662af2dbe3eb9f12b Author: Karl Williamson <k...@cpan.org> Date: 2024-11-24 (Sun, 24 Nov 2024) Changed paths: M utf8.c Log Message: ----------- utf8n_to_uvchr_msgs_helper(): Refactor expression More rigorous testing of the overlong malformation, yet to be committed, showed that this didn't work as intended. The IS_UTF8_START_BYTE() excludes start bytes that always lead to overlong sequences. Fortunately the logic caused that to be mostly bypassed. But this commit fixes it all. Compare: https://github.com/Perl/perl5/compare/94caec977b93...f254d774f848 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications