Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 42c9bbd124aba5897092712c63f451448b70ae70
      
https://github.com/Perl/perl5/commit/42c9bbd124aba5897092712c63f451448b70ae70
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M regen/embed.pl

  Log Message:
  -----------
  regen/embed.pl: Remove redundant push


  Commit: cdd132be41adc3d03e8c46335810879e802fb034
      
https://github.com/Perl/perl5/commit/cdd132be41adc3d03e8c46335810879e802fb034
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M regen/embed.pl

  Log Message:
  -----------
  regen/embed.pl: Comments/white-space

Wrap to fit in 80 column terminal window


  Commit: c0125f32ec93839da85e3e6c7d73d6a54bdfbcd2
      
https://github.com/Perl/perl5/commit/c0125f32ec93839da85e3e6c7d73d6a54bdfbcd2
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M embed.fnc

  Log Message:
  -----------
  embed.fnc: Comments only

This:

* reorders some comments to make more sense
* makes minor clarifications
* removes comments that no longer make sense
* adds comments about moving ARGS_ASSERT macros to the top of their
  functions when the code around them gets changed anyway.


  Commit: 1628b08aebadfb508a779b67f3cff6d1d07f003b
      
https://github.com/Perl/perl5/commit/1628b08aebadfb508a779b67f3cff6d1d07f003b
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M autodoc.pl
    M embed.fnc
    M regen/embed.pl

  Log Message:
  -----------
  regen/embed.pl: Add ability to assert(s < e)

Where s is a pointer into a string, and e is the end of it.


  Commit: 752f9267bfa970815ffc3469ee4b7fe1a1fe3daa
      
https://github.com/Perl/perl5/commit/752f9267bfa970815ffc3469ee4b7fe1a1fe3daa
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M embed.fnc
    M proto.h

  Log Message:
  -----------
  Try out new asserts in a couple cases

This uses the previous commit's new abilities on a couple of sample
functions, so you can see the changes it makes in two small bites.


  Commit: e18f23d7358c3abc5d74b13f43209a163ae82869
      
https://github.com/Perl/perl5/commit/e18f23d7358c3abc5d74b13f43209a163ae82869
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M embed.fnc
    M proto.h
    M utf8.c

  Log Message:
  -----------
  embed.fnc: Add ptr assertions for apparently non-problematic

I went through the declarations in embed.fnc and added PTR constraints
for all the ones that looked to have pointers to the beginning and end
of a string.  I then ran the test suite, and reverted any that had
problems.

Then I looked at the code for each one remaining to see if it was
equipped to handle the case where the end == the beginning, and removed
those.

This is the result.  Testing in the field may reveal others that the
test suite missed; we can fix those as they occur.

I removed now redundant asserts that were in the functions, and now are
included in the ARGS_ASSERT macros


  Commit: 45ea12db26f8c70d27d2452f78ffb3abf1dce644
      
https://github.com/Perl/perl5/commit/45ea12db26f8c70d27d2452f78ffb3abf1dce644
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M embed.fnc
    M inline.h
    M proto.h

  Log Message:
  -----------
  embed.fnc: Add MPTR constraints

This is the first use of the new MPTR constraint that is used to
generate an assertion that a pointer is somewhere in the middle of a
string.

I removed now redundant asserts that were in the functions, and now are
included in the ARGS_ASSERT macros


  Commit: a02324bb8a196330d50073b6a0e2ecef56af7019
      
https://github.com/Perl/perl5/commit/a02324bb8a196330d50073b6a0e2ecef56af7019
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M embed.fnc
    M inline.h
    M proto.h
    M regexec.c
    M toke.c
    M util.c

  Log Message:
  -----------
  embed.fnc: Add EPTRQ constraints

Generally, a pointer to a string upper bound actually is to one beyond
the actual final byte in the string.  This is sanctioned by the C
Standard, and allows you to just subtract the lower bound from it to get
its length, without having to add 1.

But some functions are written to tolerate the upper bound pointer being
set to the actual final byte.  The EPTRQ constraint in embed.fnc is used
for those; the assertion becomes 'l <= u' instead of strictly less-than.

This commit is the first to use this type of constraint, and it applies
it only to those functions whose documentation or behavior clearly
indicate this is expected.

I removed now redundant asserts that were in the functions, and now are
included in the ARGS_ASSERT macros

There's a dozen-ish ones where that isn't true.  And they need to be
investigated further before deciding their disposition.


  Commit: 63ec64f2632018072d77cb07d30bf455edca0456
      
https://github.com/Perl/perl5/commit/63ec64f2632018072d77cb07d30bf455edca0456
  Author: Karl Williamson <[email protected]>
  Date:   2025-10-12 (Sun, 12 Oct 2025)

  Changed paths:
    M autodoc.pl
    M embed.fnc
    M inline.h
    M proto.h
    M regen/embed.pl
    M regexec.c
    M toke.c
    M utf8.c
    M util.c

  Log Message:
  -----------
  Merge branch 'Assert string ptrs in-bounds' into blead

There are a bunch of functions that are passed pointers to two positions
in a string. These commits allow you to declare these in embed.fnc, and
have an assert like (s < e) generated that is automatically placed in
the PERL_ARGS_ASSERT for the function.  Many entries in embed.fnc are
changed to use this new capability.

This is extended for functions where it should instead be assert(s <= e)
and assert(s <= cur)


Compare: https://github.com/Perl/perl5/compare/3a7b25bc8b5e...63ec64f26320

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to