Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: fbebf96ce083dc15b63c04d5695997d6e2657b03
      
https://github.com/Perl/perl5/commit/fbebf96ce083dc15b63c04d5695997d6e2657b03
  Author: Richard Leach <richardle...@users.noreply.github.com>
  Date:   2024-12-16 (Mon, 16 Dec 2024)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  Perl_sv_setsv_flags: handle mixed IV and NV fast case

When the fast code at the start of Perl_sv_setsv_flags was modified to
also support bodyless NVs, the simplest possible change was made.
However, this meant that there was no fast handling when one SV was an
IV and the other a NV. Actually having this seems desirable since it
avoids the need to allocate (and later release) an XPVIV or XPVNV body.


  Commit: 5a659e4bacfa90ab9255146b01ef7193bf6f941b
      
https://github.com/Perl/perl5/commit/5a659e4bacfa90ab9255146b01ef7193bf6f941b
  Author: Richard Leach <richardle...@users.noreply.github.com>
  Date:   2024-12-16 (Mon, 16 Dec 2024)

  Changed paths:
    M sv.c

  Log Message:
  -----------
  Perl_sv_setsv_flags: remove unreachable NULL/IV/NV code

The fast code at the top of Perl_sv_setsv_flags now handles all
cases where both SVs are < SVt_NV / SVt_IV, depending on the size of
NVs. This means that the subsequent code paths involving those
combinations are unreachable and can be removed to streamline there
function.

Note: Doing this actually made a difference with gcc 12.2.0, which
didn't seem to figure out that this was possible by itself. Similarly,
sprinking some ASSUME() statements around didn't help.


  Commit: 4419193b1c013e6538fdc84bd61f6db022961624
      
https://github.com/Perl/perl5/commit/4419193b1c013e6538fdc84bd61f6db022961624
  Author: Richard Leach <richardle...@users.noreply.github.com>
  Date:   2024-12-16 (Mon, 16 Dec 2024)

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

  Log Message:
  -----------
  Perl_sv_setsv_flags: extract croaks to a cold helper function

Perl_sv_setsv_flags has a number of fail-safe checks which will croak
if triggered. However, these code paths are *really* cold - they aren't
even hit by the test harness. Since they are so cold and always result
in an immediate croak, they can be pulled out into an unoptimized helper
function. This leaves Perl_sv_setsv_flags smaller and therefore more
cache friendly.


  Commit: 0877c09313129ad9ab50aeabf870cf5fce9724a0
      
https://github.com/Perl/perl5/commit/0877c09313129ad9ab50aeabf870cf5fce9724a0
  Author: Richard Leach <richardle...@users.noreply.github.com>
  Date:   2024-12-16 (Mon, 16 Dec 2024)

  Changed paths:
    M pod/perldelta.pod

  Log Message:
  -----------
  perldelta entry for Perl_sv_setsv_flags changes


Compare: https://github.com/Perl/perl5/compare/7015de198635...0877c0931312

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

Reply via email to