Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 21b46a7e11c4619da7bed49ea611c4f20a43448c
https://github.com/Perl/perl5/commit/21b46a7e11c4619da7bed49ea611c4f20a43448c
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/B/B.pm
Log Message:
-----------
bump B.pm version to 1.92
Commit: c8282019f273d4a086a051a1001a3eee925a5f89
https://github.com/Perl/perl5/commit/c8282019f273d4a086a051a1001a3eee925a5f89
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/B/B.xs
Log Message:
-----------
B.xs: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: b8f5896090d8ebb9c97c54864f08eff981b282c5
https://github.com/Perl/perl5/commit/b8f5896090d8ebb9c97c54864f08eff981b282c5
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/IO/IO.pm
M dist/IO/lib/IO/Dir.pm
M dist/IO/lib/IO/File.pm
M dist/IO/lib/IO/Handle.pm
M dist/IO/lib/IO/Pipe.pm
M dist/IO/lib/IO/Seekable.pm
M dist/IO/lib/IO/Select.pm
M dist/IO/lib/IO/Socket.pm
M dist/IO/lib/IO/Socket/INET.pm
M dist/IO/lib/IO/Socket/UNIX.pm
Log Message:
-----------
bump IO::* version to 1.56
Commit: 03d9903dcd70dc10a21c0fa56a17780d533e0224
https://github.com/Perl/perl5/commit/03d9903dcd70dc10a21c0fa56a17780d533e0224
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/IO/IO.xs
Log Message:
-----------
IO.xs: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: ca20dc3f3766c93438c900a4dd95f407e672fd20
https://github.com/Perl/perl5/commit/ca20dc3f3766c93438c900a4dd95f407e672fd20
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/Opcode/Opcode.pm
Log Message:
-----------
bump Opcode.pm version to 1.71
Commit: d987c7395f4c19fa72a72679d2aa474620787b2f
https://github.com/Perl/perl5/commit/d987c7395f4c19fa72a72679d2aa474620787b2f
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/Opcode/Opcode.xs
Log Message:
-----------
Opcode.xs: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: 0376c15bc6a6c61144d10983150fc1394747ecf8
https://github.com/Perl/perl5/commit/0376c15bc6a6c61144d10983150fc1394747ecf8
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/POSIX/lib/POSIX.pm
Log Message:
-----------
POSIX: bump version to 2.26
Commit: 25f40b3ff13fd9e6262e18c4a9b685ecc82fa46f
https://github.com/Perl/perl5/commit/25f40b3ff13fd9e6262e18c4a9b685ecc82fa46f
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/POSIX/POSIX.xs
Log Message:
-----------
POSIX.xs: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: 05fff3d0cc10fb247ed41095312ded33d1805990
https://github.com/Perl/perl5/commit/05fff3d0cc10fb247ed41095312ded33d1805990
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/Storable/lib/Storable.pm
Log Message:
-----------
Storable: bump version to 3.40
Commit: bbf4b5b4661f7f077148f7bcf0315e5e643fcbaf
https://github.com/Perl/perl5/commit/bbf4b5b4661f7f077148f7bcf0315e5e643fcbaf
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/Storable/Storable.xs
Log Message:
-----------
Storable.xs: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: 801c6d332e19d508f5c396ec1e5c3739c27b405d
https://github.com/Perl/perl5/commit/801c6d332e19d508f5c396ec1e5c3739c27b405d
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/threads/lib/threads.pm
Log Message:
-----------
threads: bump version to 2.45
Commit: 5aa665484ca2892c74c6cf0f2cad99acbecd38d3
https://github.com/Perl/perl5/commit/5aa665484ca2892c74c6cf0f2cad99acbecd38d3
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/threads/threads.xs
Log Message:
-----------
threads.xs: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: badb56ac90d2e69b62c7f7120d2a5c0cda5e56a8
https://github.com/Perl/perl5/commit/badb56ac90d2e69b62c7f7120d2a5c0cda5e56a8
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/threads-shared/lib/threads/shared.pm
Log Message:
-----------
threads::shared: bump version to 1.73
Commit: 3b4508d3012c936ac677c92040c1cb50f6ddea8c
https://github.com/Perl/perl5/commit/3b4508d3012c936ac677c92040c1cb50f6ddea8c
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/threads-shared/shared.xs
Log Message:
-----------
threads::shared: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: 0d7078e0315cb6c1087a05de7d418e0092352781
https://github.com/Perl/perl5/commit/0d7078e0315cb6c1087a05de7d418e0092352781
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/XS-APItest/APItest.pm
Log Message:
-----------
XS::APItest: bump version to 1.50
Commit: e1641793d1a6764bdcea5a32192a98f52053b535
https://github.com/Perl/perl5/commit/e1641793d1a6764bdcea5a32192a98f52053b535
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M ext/XS-APItest/APItest.xs
Log Message:
-----------
XS::APItest: avoid setting ST(0) in void XSUBs
Update some XSUBs in this distro's XS to avoid an old anti-pattern.
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
The docs were fixed in 1996, but this anti-pattern continues to reproduce.
This commit is part of an branch which eliminates this code style within
the parts of bleadperl under p5p's control.
Commit: 5a884dc576328766b16e235aa6a9752ca40cdecb
https://github.com/Perl/perl5/commit/5a884dc576328766b16e235aa6a9752ca40cdecb
Author: David Mitchell <[email protected]>
Date: 2026-02-27 (Fri, 27 Feb 2026)
Changed paths:
M dist/IO/IO.pm
M dist/IO/IO.xs
M dist/IO/lib/IO/Dir.pm
M dist/IO/lib/IO/File.pm
M dist/IO/lib/IO/Handle.pm
M dist/IO/lib/IO/Pipe.pm
M dist/IO/lib/IO/Seekable.pm
M dist/IO/lib/IO/Select.pm
M dist/IO/lib/IO/Socket.pm
M dist/IO/lib/IO/Socket/INET.pm
M dist/IO/lib/IO/Socket/UNIX.pm
M dist/Storable/Storable.xs
M dist/Storable/lib/Storable.pm
M dist/threads-shared/lib/threads/shared.pm
M dist/threads-shared/shared.xs
M dist/threads/lib/threads.pm
M dist/threads/threads.xs
M ext/B/B.pm
M ext/B/B.xs
M ext/Opcode/Opcode.pm
M ext/Opcode/Opcode.xs
M ext/POSIX/POSIX.xs
M ext/POSIX/lib/POSIX.pm
M ext/XS-APItest/APItest.pm
M ext/XS-APItest/APItest.xs
Log Message:
-----------
[MERGE] make core XS not rely on void XSUB hack
This branch modifies XS code under p5p control to remove any reliance on
the 1996-era ParseXS hack that special-cases void XSUBs which assign to
ST(0).
In detail: a historical quirk of XS, which was fixed in 1996, allowed code
to be written along the lines of:
void
foo(...)
CODE:
...
ST(0) = ...;
This is wrong, because the code is declared as returning nothing, but
still puts something on the stack.
ExtUtils::ParseXS has some hacky logic to work around this coding style.
Normally it would emit 'XSRETURN_EMPTY' for a void XSUB, but if it sees
text like 'ST(n) = ' in the body of a void XSUB, it emits 'XSRETURN(1)'
instead.
These commits make the XSUBs avoid replying on this hack.
A general pattern within these commits is that when changing the XSUB's
return type from void to SV*, account has to taken that the typemap for
SV* mortalises the return value. Thus a lot of these commits remove an
explicit sv_2mortal() call or similar.
Compare: https://github.com/Perl/perl5/compare/ff4e1580450c...5a884dc57632
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications