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

Reply via email to