Branch: refs/heads/davem/xspod
Home: https://github.com/Perl/perl5
Commit: d044425cd0e30d2ae29d54a485d545df1b7716eb
https://github.com/Perl/perl5/commit/d044425cd0e30d2ae29d54a485d545df1b7716eb
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: remove section on %v
The XS parser supported an extremely obscure bit of functionality which
made use of the %v package variable to maintain state between different
bits of typemap processing. This was accidentally broken in 5.10.0:
refactoring removed the 'use vars "%v"' line, and no one seemed to
notice or care.
Also, the sole example of its use in the docs seemed to be obscure,
confusing and probably wrong.
There was a consensus in the discussion at
http://nntp.perl.org/group/perl.perl5.porters/267667
that we should stop documenting this feature rather than trying to fix
it.
Commit: c2d26f6785e44f1a4925f0de56ce947613844a8e
https://github.com/Perl/perl5/commit/c2d26f6785e44f1a4925f0de56ce947613844a8e
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: reindent and reformat code examples
The various XS code examples had odd and inconsistent indentation (often
with 5 leading spaces) and inconsistent formatting, e.g. foo(a,b) vs
foo( a, b ) vs foo(a, b). Fix that, and also remove any tab chars.
Whitespace-only change.
Commit: bafe93f7df38cbc46918a9507ddf53c55d8361d1
https://github.com/Perl/perl5/commit/bafe93f7df38cbc46918a9507ddf53c55d8361d1
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: delete most non-ref sections
This commit is a simple cut which deletes several '=head2' sections from
perlxs.pod. The next commit will tidy up and fix any broken links etc.
These sections are more tutorial-like, and aren't in line with the goal
of this branch that perlxs.pod becomes purely a reference manual for XS.
Any relevant information from these sections may be incorporated later
into new sections in perlxs.pod and/or be included in a future rewrite
of perlxstut.pod.
The sections deleted are:
=head2 Introduction
=head2 On The Road
=head2 The Anatomy of an XSUB
=head2 The Argument Stack
=head2 The RETVAL Variable
=head2 Returning SVs, AVs and HVs through RETVAL
=head2 Returning Undef And Empty Lists
=head2 Interface Strategy
=head2 Perl Objects And C Structures
Commit: 942ab5a5afb123ac8ffb7afaad86719882f2e7d3
https://github.com/Perl/perl5/commit/942ab5a5afb123ac8ffb7afaad86719882f2e7d3
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M XSUB.h
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: fix up links after deleting sections
The previous commit deleted several sections from perlxs.pod. This
commit fixes things up; done as a separate commit so that the changes
aren't drowned out in the diff listing.
Commit: e7ddc3c9b6802f96d3791773e22f2e7c7823e5b6
https://github.com/Perl/perl5/commit/e7ddc3c9b6802f96d3791773e22f2e7c7823e5b6
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: reorder sections
This big commit does a series of plain cut+pastes to reorder all the
=head2 sections within the file.
This changes the order from semi-random into roughly the order the
various XS keywords would appear within an XS file, and then within an
XSUB declaration/definition.
No changes have been made to the text: simply that all lines from a
particular '^=head2' up until the next head2 have been cut+paste as
a single unit.
No attempt has been made yet to make the text consistent with the new
ordering; that will be done by the subsequent commits of this branch.
The previous ordering in this file was:
=head1 NAME
=head1 DESCRIPTION
=head2 The MODULE Keyword
=head2 The PACKAGE Keyword
=head2 The PREFIX Keyword
=head2 The OUTPUT: Keyword
=head2 The NO_OUTPUT Keyword
=head2 The CODE: Keyword
=head2 The INIT: Keyword
=head2 The NO_INIT Keyword
=head2 The TYPEMAP: Keyword
=head2 Initializing Function Parameters
=head2 Default Parameter Values
=head2 The PREINIT: Keyword
=head2 The SCOPE: Keyword
=head2 The INPUT: Keyword
=head2 The IN/OUTLIST/IN_OUTLIST/OUT/IN_OUT Keywords
=head2 The C<length(NAME)> Keyword
=head2 Variable-length Parameter Lists
=head2 The C_ARGS: Keyword
=head2 The PPCODE: Keyword
=head2 The REQUIRE: Keyword
=head2 The CLEANUP: Keyword
=head2 The POSTCALL: Keyword
=head2 The BOOT: Keyword
=head2 The VERSIONCHECK: Keyword
=head2 The PROTOTYPES: Keyword
=head2 The PROTOTYPE: Keyword
=head2 The ALIAS: Keyword
=head2 The OVERLOAD: Keyword
=head2 The FALLBACK: Keyword
=head2 The INTERFACE: Keyword
=head2 The INTERFACE_MACRO: Keyword
=head2 The INCLUDE: Keyword
=head2 The INCLUDE_COMMAND: Keyword
=head2 The CASE: Keyword
=head2 The EXPORT_XSUB_SYMBOLS: Keyword
=head2 The & Unary Operator
=head2 Inserting POD, Comments and C Preprocessor Directives
=head2 Using XS With C++
=head2 Safely Storing Static Data in XS
=head3 MY_CXT REFERENCE
=head1 EXAMPLES
=head1 CAVEATS
=head2 Use of standard C library functions
=head2 Event loops and control flow
=head1 XS VERSION
=head1 AUTHOR DIAGNOSTICS
=head1 AUTHOR
and is now:
=head1 NAME
=head1 DESCRIPTION
=head2 The MODULE Keyword
=head2 The PACKAGE Keyword
=head2 The PREFIX Keyword
=head2 Inserting POD, Comments and C Preprocessor Directives
=head2 The REQUIRE: Keyword
=head2 The VERSIONCHECK: Keyword
=head2 The PROTOTYPES: Keyword
=head2 The EXPORT_XSUB_SYMBOLS: Keyword
=head2 The INCLUDE: Keyword
=head2 The INCLUDE_COMMAND: Keyword
=head2 The TYPEMAP: Keyword
=head2 The BOOT: Keyword
=head2 The FALLBACK: Keyword
=head2 The NO_OUTPUT Keyword
=head2 The IN/OUTLIST/IN_OUTLIST/OUT/IN_OUT Keywords
=head2 Default Parameter Values
=head2 The C<length(NAME)> Keyword
=head2 Variable-length Parameter Lists
=head2 The PREINIT: Keyword
=head2 The INPUT: Keyword
=head2 The NO_INIT Keyword
=head2 Initializing Function Parameters
=head2 The & Unary Operator
=head2 The SCOPE: Keyword
=head2 The INIT: Keyword
=head2 The C_ARGS: Keyword
=head2 The CODE: Keyword
=head2 The PPCODE: Keyword
=head2 The POSTCALL: Keyword
=head2 The OUTPUT: Keyword
=head2 The CLEANUP: Keyword
=head2 The PROTOTYPE: Keyword
=head2 The OVERLOAD: Keyword
=head2 The ALIAS: Keyword
=head2 The INTERFACE: Keyword
=head2 The INTERFACE_MACRO: Keyword
=head2 The CASE: Keyword
=head2 Using XS With C++
=head2 Safely Storing Static Data in XS
=head3 MY_CXT REFERENCE
=head1 EXAMPLES
=head1 CAVEATS
=head2 Use of standard C library functions
=head2 Event loops and control flow
=head1 XS VERSION
=head1 AUTHOR DIAGNOSTICS
=head1 AUTHOR
Commit: 1d00b081479c5377bae150e4570f36a9aeca7898
https://github.com/Perl/perl5/commit/1d00b081479c5377bae150e4570f36a9aeca7898
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: add group headers
Following the previous commit's reordering of the all the =head2
sections, demote most of the =head2 headers to =head3, and add some new
=head2 headers which group together related headers.
Also add some =head3's for a few missing keywords.
Subsequent commits will flesh out the new sections.
Commit: a43c5fe3a961e5783be5a82c7d15939a8f1fdb60
https://github.com/Perl/perl5/commit/a43c5fe3a961e5783be5a82c7d15939a8f1fdb60
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: add a new introductory part
Four commits ago, I removed most of the general text sections in
perlxs (i.e. the ones not specifically about a particular keyword).
Now this commit adds a completely new introductory part to perlxs, about
1200 lines long. It represents an attempt to write a background to what
XS and XSUBs, SVs, typemaps etc are, in a complete and modern way.
The existing reference section for each keyword follows it.
I tried to avoid getting too tutorial-like (that's what perlxstut is
for), but I may have crossed the line in various places. In particular
it has a new section which could have been titled "all the bits of
perlguts you need to know in order to write non-trivial XSUBs without
having to actually read perlguts".
Commit: c8d62e378edc4989826c2d1bb5c8c96cbf842fe9
https://github.com/Perl/perl5/commit/c8d62e378edc4989826c2d1bb5c8c96cbf842fe9
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: add BNF definition section
Add a section which semi-formally tries to define the syntax and
structue of an XS file, using a BNF-like format.
See http://nntp.perl.org/group/perl.perl5.porters/268701 for the
discussion of this part.
Commit: 56fcc2c4a457daf37608ba364885e5c87d058ae4
https://github.com/Perl/perl5/commit/56fcc2c4a457daf37608ba364885e5c87d058ae4
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update MODULE/PACKAGE/PREFIX
Rewrite the POD for these three keywords, and in particular, treat
them as one declaration, rather than three unrelated keywords.
Commit: 24cf9e414dec614367a1e562def4483f6e152f19
https://github.com/Perl/perl5/commit/24cf9e414dec614367a1e562def4483f6e152f19
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update file-scoped directive text
Populate the new
=head2 File-scoped XS Keywords and Directives
section, partially by cannibalising (and then deleting) the old
=head3 Inserting POD, Comments and C Preprocessor Directives
subsection. This commit only adds text about directives; subsequent
commits will update the various file-scoped keywords.
Commit: b58fedb6792d8cbe2aa2a8f42c627a61a725ac12
https://github.com/Perl/perl5/commit/b58fedb6792d8cbe2aa2a8f42c627a61a725ac12
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update REQUIRE, VERSIONCHECK keywords
Commit: bb0c675c6078654398d1508e80f10d3df72a0330
https://github.com/Perl/perl5/commit/bb0c675c6078654398d1508e80f10d3df72a0330
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update PROTOTYPES: keyword
Commit: 24511a807c8f3783b1ead99a0a79a8fbe0a92324
https://github.com/Perl/perl5/commit/24511a807c8f3783b1ead99a0a79a8fbe0a92324
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update EXPORT_XSUB_SYMBOLS, INCLUDE(_COMMAND)
Commit: 9a7fd52d7dc4f7392249bf25433bc6b039c67ef1
https://github.com/Perl/perl5/commit/9a7fd52d7dc4f7392249bf25433bc6b039c67ef1
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update TYPEMAP: keyword
Commit: ed7511118cab32427e83885c8d3c13f9284ad49e
https://github.com/Perl/perl5/commit/ed7511118cab32427e83885c8d3c13f9284ad49e
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update BOOT: keyword
Commit: 31a0f7600502f8cbf1a2c743bf28c9679c4356bc
https://github.com/Perl/perl5/commit/31a0f7600502f8cbf1a2c743bf28c9679c4356bc
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update FALLBACK: keyword
Commit: d206967dc8d4d925d4ea4ba248905b035de70999
https://github.com/Perl/perl5/commit/d206967dc8d4d925d4ea4ba248905b035de70999
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update XSUB Structure + Declaration
Populate the new
=head2 The Structure of an XSUB
=head2 An XSUB Declaration
sections
Commit: 67c737d941d8119ef05b6b10c324a58c306bb565
https://github.com/Perl/perl5/commit/67c737d941d8119ef05b6b10c324a58c306bb565
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update section 'An XSUB Parameter'
Add some initial text for this new section, and also add a new
subsection "XSUB Parameter Placeholders".
Commit: 0d99ab087a7394e1c41e94cd185bb769d323b7b2
https://github.com/Perl/perl5/commit/0d99ab087a7394e1c41e94cd185bb769d323b7b2
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update IN_OUT etc section
Commit: 3d9d4154df3daab932864ffea5e71cd283685cd4
https://github.com/Perl/perl5/commit/3d9d4154df3daab932864ffea5e71cd283685cd4
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M XSUB.h
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update default, length, ellipis params
Rewrite (and retitle) these three subsections:
=head3 Default Parameter Values
=head3 The C<length(NAME)> Keyword
=head3 Variable-length Parameter Lists
Commit: d3d53839d730c57a7af193acf1b77c41a9ca86d0
https://github.com/Perl/perl5/commit/d3d53839d730c57a7af193acf1b77c41a9ca86d0
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: Input part, PREINIT sections
Add text for the new '=head2 The XSUB Input Part' section, and rewrite
the existing entry for the PREINIT keyword.
Commit: ffc1d0c18a58589634b4e9419ddcc583fdd8bcc9
https://github.com/Perl/perl5/commit/ffc1d0c18a58589634b4e9419ddcc583fdd8bcc9
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update 'The INPUT: Keyword' section
This commit completely rewrites this section and subsections:
=head3 The INPUT: Keyword
=head4 The NO_INIT Keyword
=head4 Initializing Function Parameters
=head4 The & Unary Operator
It de-emphasises the INPUT keyword and suggests using ANSI XS signatures
etc instead.
Commit: 08f74af3ad78ecbe183faf6d6347c0f249322c0d
https://github.com/Perl/perl5/commit/08f74af3ad78ecbe183faf6d6347c0f249322c0d
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update 'SCOPE: Keyword' section
Commit: c83fa60d2d997af27fbb493f4751c062e128593a
https://github.com/Perl/perl5/commit/c83fa60d2d997af27fbb493f4751c062e128593a
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: init part, INIT sections
Add text for the new '=head2 The XSUB Init Part' section, and rewrite
the existing entry for the INIT keyword.
Commit: 6a9feedd1e708f175aafd1966bc08c4e8721f975
https://github.com/Perl/perl5/commit/6a9feedd1e708f175aafd1966bc08c4e8721f975
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: code part, autocall, C_ARGS
Add text to the new
=head2 The XSUB Code Part
=head3 Auto-calling a C function
sections, and rewrite the existing
=head4 The C_ARGS: Keyword
section
Commit: bd34cf6dd5b3ba3445380d28b69729828c8d536b
https://github.com/Perl/perl5/commit/bd34cf6dd5b3ba3445380d28b69729828c8d536b
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: CODE, PPCODE
Rewrite these sections:
=head3 The CODE: Keyword
=head3 The PPCODE: Keyword
Commit: 55c519eed4d8530cc2cea0a4c88141914e923070
https://github.com/Perl/perl5/commit/55c519eed4d8530cc2cea0a4c88141914e923070
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update NOT_IMPLEMENTED_YET: keyword
This keyword formerly wasn't documented. The docs now say "this is what
it is, but don't use it".
Commit: efa2b9691a69dcae95dae8dc2cd924d1ddad9e9d
https://github.com/Perl/perl5/commit/efa2b9691a69dcae95dae8dc2cd924d1ddad9e9d
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: output part
Add text to the new
=head2 The XSUB Output Part
section, and rewrite the text in these existing sections:
=head3 The POSTCALL: Keyword
=head3 The OUTPUT: Keyword
Commit: ccc212fea05064bd36b3f62abc68eb765d513e07
https://github.com/Perl/perl5/commit/ccc212fea05064bd36b3f62abc68eb765d513e07
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: cleanup part
Add text to the new
=head2 The XSUB Cleanup Part
section, and rewrite the text in this existing section:
=head3 The CLEANUP: Keyword
Commit: 7105474d75807c06bf5cde0ee2dd3ca89978bc1f
https://github.com/Perl/perl5/commit/7105474d75807c06bf5cde0ee2dd3ca89978bc1f
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update generic intro, PROTOTYPE
Add text to the new
=head2 XSUB Generic Keywords
section, and rewrite the text in this existing section:
=head3 The PROTOTYPE: Keyword
Commit: 4ac6fde262bdedbcb17994d43338ab33ae5b90b3
https://github.com/Perl/perl5/commit/4ac6fde262bdedbcb17994d43338ab33ae5b90b3
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: mention package name types
Explain that a 'C' parameter type in an XSUB declaration can actually
be a Perl package name or similar, e.g.
Foo::Bar
f(Foo::Bar obj, char *s)
Commit: 54c5a85a6a73a59585106f3492eaf40c57a8c010
https://github.com/Perl/perl5/commit/54c5a85a6a73a59585106f3492eaf40c57a8c010
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update OVERLOAD, add T_PTROBJ
First, add a new subsection
=head3 T_PTROBJ and opaque handles
to the TYPEMAPs section explaining how this typemap can be used to
map between Perl objects and C library handles. It provides a
fully-worked example of wrapping a simple arithmetic library.
Then completely rewrite the
=head3 The OVERLOAD: Keyword
section. In particular, it now refers to the new T_PTROBJ example and
shows how it can be extended to use overloading.
Commit: 73bc0cb2e21ac9b4369b6a297768a1f4b78aa319
https://github.com/Perl/perl5/commit/73bc0cb2e21ac9b4369b6a297768a1f4b78aa319
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: document ATTRS
This keyword was undocumented, even though it had been added 25 years
ago.
Commit: 1014eeebf463e85a1a09362ee6816a75190385f1
https://github.com/Perl/perl5/commit/1014eeebf463e85a1a09362ee6816a75190385f1
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: add "Sharing XSUB bodies" section
Populate the introduction to this new section.
Commit: 7f37717be76e4739f3ebe2ecdc1c4ebb25801adb
https://github.com/Perl/perl5/commit/7f37717be76e4739f3ebe2ecdc1c4ebb25801adb
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: ALIAS
Rewrite this section:
=head3 The ALIAS: Keyword
Commit: b7be9ba32169f342d031a877d3de4ed936dd7ae3
https://github.com/Perl/perl5/commit/b7be9ba32169f342d031a877d3de4ed936dd7ae3
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update INTERFACE, INTERFACE_MACRO
Rewrite these sections:
=head3 The INTERFACE: Keyword
=head3 The INTERFACE_MACRO: Keyword
also demote the second to be a head4 child of the first. Then expand
the T_PTROBJ example to use INTERFACE as an alternative to ALIAS.
Commit: aabcc04c244e36b3b4841fa903fde89a64720388
https://github.com/Perl/perl5/commit/aabcc04c244e36b3b4841fa903fde89a64720388
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update: CASE
Rewrite this section:
=head3 The CASE: Keyword
Commit: f0c901c4b4783aac3facb1af3147936cf3ad157f
https://github.com/Perl/perl5/commit/f0c901c4b4783aac3facb1af3147936cf3ad157f
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: add "Using Typemaps" section
Populate this new section (except for the T_PTROBJ subsection, which had
already been added by an earlier commit within this branch).
Note that the "Common typemaps" subsection could probably benefit
from some further expansion by someone familiar with which built-in
T_FOO entries are useful.
Commit: 4e5f4d27b56552cfc52fc2ae1d7cf4283a683646
https://github.com/Perl/perl5/commit/4e5f4d27b56552cfc52fc2ae1d7cf4283a683646
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M t/porting/known_pod_issues.dat
Log Message:
-----------
perlxs.pod: update "Using XS With C++" section
Rewrite this section:
=head2 Using XS With C++
Disclaimer: I've never written a proper C++ program. I had to
(literally) dust off my 34-year old copy of Stroustrup(*) and also do
some Googling. Hopefully what I've written is sane.
(*) This was bought back in the days when people used to to learn things
by buying books, and when I thought that I ought to know something about
this newfangled C++ thing. I never got round to reading all of it: I
discovered Perl around the same time, which looked to be a lot more fun.
Commit: 9710ed344e3785c2a627aae3447ab566c2b51eb4
https://github.com/Perl/perl5/commit/9710ed344e3785c2a627aae3447ab566c2b51eb4
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update MY_CXT section
Revise the text in this section:
=head2 Safely Storing Static Data in XS
Commit: 8dd67ae9c1c919fd057753ddfc5c75ab96e43f5c
https://github.com/Perl/perl5/commit/8dd67ae9c1c919fd057753ddfc5c75ab96e43f5c
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update EXAMPLES section
Rewrite this section:
=head1 EXAMPLES
Basically, delete the one big example in this section and instead
provide links to various other examples already present in this document
instead.
Commit: fcf22295819a95a523e4fa2513ba8e3d8dc45200
https://github.com/Perl/perl5/commit/fcf22295819a95a523e4fa2513ba8e3d8dc45200
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs.pod: update CAVEATS, AUTHOR, A DIAGNOSTICS
Tweak the final few sections of perlxs.pod.
Commit: d08740e8b89a42c1dbcd19b20cfa463fe9f66bde
https://github.com/Perl/perl5/commit/d08740e8b89a42c1dbcd19b20cfa463fe9f66bde
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M dist/ExtUtils-ParseXS/t/001-basic.t
Log Message:
-----------
perlxs.pod: standardise version numbers in the doc
After the big rewrite, various bits of text which describe when a
particular feature was introduced or changed have ended up using a
random mixture of Perl, ParseXS and xsubpp version numbers.
This commit standardises on xsubpp version numbers. These are mostly
the same as ParseXS, but this handles the cases before ParseXS was
split off from xsubpp. Perl versions suffer from not exactly matching
when an xsubpp version number was incremented, and not matching what is
used by the "REQUIRE:" keyword.
This commit also adds a short new section which tries to explain how the
three sets of version numbers are related.
Commit: 4f3cd13616550ed1e2d63d00b99fe960960657db
https://github.com/Perl/perl5/commit/4f3cd13616550ed1e2d63d00b99fe960960657db
Author: David Mitchell <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
Log Message:
-----------
perlxs: tweaks following code review
The many commits in this branch have completely rewritten perlxs.pod.
This commit applies all the minor tweaks suggested by reviewers.
(It was far too much like hard work to try and update each individual
commit with the various changes.)
Compare: https://github.com/Perl/perl5/compare/b16fbe94419f...4f3cd1361655
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications