Branch: refs/heads/davem/xs_void_st0
Home: https://github.com/Perl/perl5
Commit: 1fa705cecf05facd1a250d5b1752e3b5e3a400ac
https://github.com/Perl/perl5/commit/1fa705cecf05facd1a250d5b1752e3b5e3a400ac
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: c27fd96267fb72380b9fff8eb937e7c9d631fa55
https://github.com/Perl/perl5/commit/c27fd96267fb72380b9fff8eb937e7c9d631fa55
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: 93be29fa22d139c903e929a56945f877d7f6dae2
https://github.com/Perl/perl5/commit/93be29fa22d139c903e929a56945f877d7f6dae2
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: 2f46dde4e6dc670e1385ce75c2dcd0f84cea2f11
https://github.com/Perl/perl5/commit/2f46dde4e6dc670e1385ce75c2dcd0f84cea2f11
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths:
M ext/Opcode/Opcode.pm
Log Message:
-----------
bump Opcode.pm version to 1.71
Commit: 91d69c83a787968db17c81f0468c0829ee1180c7
https://github.com/Perl/perl5/commit/91d69c83a787968db17c81f0468c0829ee1180c7
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: 1771f7e2c8a39d19a728d75b024502ea6d58c5a4
https://github.com/Perl/perl5/commit/1771f7e2c8a39d19a728d75b024502ea6d58c5a4
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths:
M ext/POSIX/lib/POSIX.pm
Log Message:
-----------
POSIX: bump version to 2.26
Commit: 23ba45c20aa94bd5525f6bb6dd53fe142db9307b
https://github.com/Perl/perl5/commit/23ba45c20aa94bd5525f6bb6dd53fe142db9307b
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: 3a391d7569bb6b3b047927be9f7ddb841b9675b5
https://github.com/Perl/perl5/commit/3a391d7569bb6b3b047927be9f7ddb841b9675b5
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths:
M dist/Storable/lib/Storable.pm
Log Message:
-----------
Storable: bump version to 3.40
Commit: 202e32c8eef4403dc1ddf6dbd588f9f57d2a9068
https://github.com/Perl/perl5/commit/202e32c8eef4403dc1ddf6dbd588f9f57d2a9068
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: 74f87b51687603c96e7ec7150bb09680b88dc456
https://github.com/Perl/perl5/commit/74f87b51687603c96e7ec7150bb09680b88dc456
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths:
M dist/threads/lib/threads.pm
Log Message:
-----------
threads: bump version to 2.45
Commit: 43b22e7bb9662b2c153b00b25b3c78be3c6317d6
https://github.com/Perl/perl5/commit/43b22e7bb9662b2c153b00b25b3c78be3c6317d6
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: 2fd8ccbbfc4a9a3202070c87942dace0698d0c8b
https://github.com/Perl/perl5/commit/2fd8ccbbfc4a9a3202070c87942dace0698d0c8b
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths:
M dist/threads-shared/lib/threads/shared.pm
Log Message:
-----------
threads::shared: bump version to 1.73
Commit: 3b02783bc3ce5ef53fd3679d9f228424c2a9a896
https://github.com/Perl/perl5/commit/3b02783bc3ce5ef53fd3679d9f228424c2a9a896
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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: 493e57572b58b213805e09ef20b443e9aa3260a7
https://github.com/Perl/perl5/commit/493e57572b58b213805e09ef20b443e9aa3260a7
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 Feb 2026)
Changed paths:
M ext/XS-APItest/APItest.pm
Log Message:
-----------
XS::APItest: bump version to 1.50
Commit: 5d803e43e40ac097498780de7d5f39b3fbf75c6e
https://github.com/Perl/perl5/commit/5d803e43e40ac097498780de7d5f39b3fbf75c6e
Author: David Mitchell <[email protected]>
Date: 2026-02-25 (Wed, 25 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.
Compare: https://github.com/Perl/perl5/compare/270a26e90c73...5d803e43e40a
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications