Branch: refs/heads/davem/xspod
  Home:   https://github.com/Perl/perl5
  Commit: 93f6a42980c4e75024539547c58482fbe293252a
      
https://github.com/Perl/perl5/commit/93f6a42980c4e75024539547c58482fbe293252a
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 31dc5c840498557bf8ce01487dfa257873a208a5
      
https://github.com/Perl/perl5/commit/31dc5c840498557bf8ce01487dfa257873a208a5
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 3841739d7cf7dce88f52d24821eb5ce074d4de3a
      
https://github.com/Perl/perl5/commit/3841739d7cf7dce88f52d24821eb5ce074d4de3a
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 4f7d7fcb7327d1872c1c7de596eea77d93535c9b
      
https://github.com/Perl/perl5/commit/4f7d7fcb7327d1872c1c7de596eea77d93535c9b
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 112e4da258eaadcd77f446416a177e12ce928e80
      
https://github.com/Perl/perl5/commit/112e4da258eaadcd77f446416a177e12ce928e80
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 684d2cacaa942a1df51aa843e6b5a1ad15f5193c
      
https://github.com/Perl/perl5/commit/684d2cacaa942a1df51aa843e6b5a1ad15f5193c
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 1070dfc55f611924981a026419fd25325b64dc35
      
https://github.com/Perl/perl5/commit/1070dfc55f611924981a026419fd25325b64dc35
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 885cd86c7126f60e8b9e03f2cecc943cdc928f32
      
https://github.com/Perl/perl5/commit/885cd86c7126f60e8b9e03f2cecc943cdc928f32
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: debd46cc1fed4ce00e4e99750b36470dfbe96a6c
      
https://github.com/Perl/perl5/commit/debd46cc1fed4ce00e4e99750b36470dfbe96a6c
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: b37c26c273484906cf9c659c87e72ebf216de599
      
https://github.com/Perl/perl5/commit/b37c26c273484906cf9c659c87e72ebf216de599
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: ef723fa9607b98c284acf5e0435843e6a710f227
      
https://github.com/Perl/perl5/commit/ef723fa9607b98c284acf5e0435843e6a710f227
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update REQUIRE, VERSIONCHECK keywords


  Commit: 94132d9115a92e0b2321729d7cb37d180efe705a
      
https://github.com/Perl/perl5/commit/94132d9115a92e0b2321729d7cb37d180efe705a
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update PROTOTYPES: keyword


  Commit: e3669f6530ccd5b91c8022fb935d6489eaf946fd
      
https://github.com/Perl/perl5/commit/e3669f6530ccd5b91c8022fb935d6489eaf946fd
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update EXPORT_XSUB_SYMBOLS, INCLUDE(_COMMAND)


  Commit: c328c89642fb6fd13baa89a36852ba16dd22a3a5
      
https://github.com/Perl/perl5/commit/c328c89642fb6fd13baa89a36852ba16dd22a3a5
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update TYPEMAP: keyword


  Commit: 577996f613850c54b341a9f8231e31f2d566bb42
      
https://github.com/Perl/perl5/commit/577996f613850c54b341a9f8231e31f2d566bb42
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update BOOT: keyword


  Commit: f47e2a65f2477d5ce81a5e302c9b4dace354d648
      
https://github.com/Perl/perl5/commit/f47e2a65f2477d5ce81a5e302c9b4dace354d648
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update FALLBACK: keyword


  Commit: 1192f100b8412ddaf5c872a8d84d787dde2d496c
      
https://github.com/Perl/perl5/commit/1192f100b8412ddaf5c872a8d84d787dde2d496c
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 5d7c778194bd7bc1aa5ba3da20cf974d11dc59bd
      
https://github.com/Perl/perl5/commit/5d7c778194bd7bc1aa5ba3da20cf974d11dc59bd
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: f3527c40112f3c1344702c7e4180d6542cd1c2bb
      
https://github.com/Perl/perl5/commit/f3527c40112f3c1344702c7e4180d6542cd1c2bb
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update IN_OUT etc section


  Commit: aa9de8a8f13ba32498962374eca14b8e534bc982
      
https://github.com/Perl/perl5/commit/aa9de8a8f13ba32498962374eca14b8e534bc982
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 4ed6616ad4e618170f869c1abf476d108fe7a8cf
      
https://github.com/Perl/perl5/commit/4ed6616ad4e618170f869c1abf476d108fe7a8cf
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 8446a0e910dc8f179655e56288a337319df2503a
      
https://github.com/Perl/perl5/commit/8446a0e910dc8f179655e56288a337319df2503a
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 2b60dcbabb13a16aff3862665f8d5a40dc5a4044
      
https://github.com/Perl/perl5/commit/2b60dcbabb13a16aff3862665f8d5a40dc5a4044
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs.pod: update 'SCOPE: Keyword' section


  Commit: 79df85fb9a0c55a0f09a2892f617714a45e2fb0e
      
https://github.com/Perl/perl5/commit/79df85fb9a0c55a0f09a2892f617714a45e2fb0e
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 937bbba40b165d1186eb2704563560e2ece15111
      
https://github.com/Perl/perl5/commit/937bbba40b165d1186eb2704563560e2ece15111
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 400d4d91fc2fec6be13c0bce012a8341ac14ffad
      
https://github.com/Perl/perl5/commit/400d4d91fc2fec6be13c0bce012a8341ac14ffad
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 22d950fca4d2834d35ef5bf529ba3ad0a87209ec
      
https://github.com/Perl/perl5/commit/22d950fca4d2834d35ef5bf529ba3ad0a87209ec
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: c7f1a1f088fc55bfc47a7a9a2311f273236644ff
      
https://github.com/Perl/perl5/commit/c7f1a1f088fc55bfc47a7a9a2311f273236644ff
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 0be723ecda5e5c64aa083ada63ffda8abb39cede
      
https://github.com/Perl/perl5/commit/0be723ecda5e5c64aa083ada63ffda8abb39cede
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: da15cced7520b64f4653e4d2b8455deaf9c57e3b
      
https://github.com/Perl/perl5/commit/da15cced7520b64f4653e4d2b8455deaf9c57e3b
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: b725c165259f48e3f9aabcc05ba5efbdf00dc29b
      
https://github.com/Perl/perl5/commit/b725c165259f48e3f9aabcc05ba5efbdf00dc29b
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 525db3189937eb0787ef0c15afd8f605e221ad0b
      
https://github.com/Perl/perl5/commit/525db3189937eb0787ef0c15afd8f605e221ad0b
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: cf3050087f3c523c9ca6f090c688c2bc6e99da7b
      
https://github.com/Perl/perl5/commit/cf3050087f3c523c9ca6f090c688c2bc6e99da7b
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: b1c382e4084166f8156ce7ace76429648df20ce8
      
https://github.com/Perl/perl5/commit/b1c382e4084166f8156ce7ace76429648df20ce8
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: ddeceea3352e512279bb2c48cfa344feb9c3b83b
      
https://github.com/Perl/perl5/commit/ddeceea3352e512279bb2c48cfa344feb9c3b83b
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 6f2e471305f6e215ee23f00e0e134a7ecf639f2b
      
https://github.com/Perl/perl5/commit/6f2e471305f6e215ee23f00e0e134a7ecf639f2b
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: f251d6d5879b7d83890cbe5dd6a22fe23f8e1a8e
      
https://github.com/Perl/perl5/commit/f251d6d5879b7d83890cbe5dd6a22fe23f8e1a8e
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 3b38fab591e1867ff7d5c89e5daeb370b968c2f0
      
https://github.com/Perl/perl5/commit/3b38fab591e1867ff7d5c89e5daeb370b968c2f0
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: bf4865c8669db79a929e28a55ba55ebe22872eed
      
https://github.com/Perl/perl5/commit/bf4865c8669db79a929e28a55ba55ebe22872eed
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 27ea4f8c0cb0078735345332cdd9c67835d08aca
      
https://github.com/Perl/perl5/commit/27ea4f8c0cb0078735345332cdd9c67835d08aca
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 979df6841f8d9389e8dfad1c1f5eb74f8e91cd18
      
https://github.com/Perl/perl5/commit/979df6841f8d9389e8dfad1c1f5eb74f8e91cd18
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: 5ce979ce1b869ca7cfb50b80bd99db1cb3f5aa7f
      
https://github.com/Perl/perl5/commit/5ce979ce1b869ca7cfb50b80bd99db1cb3f5aa7f
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: b5f7ce37682c90292b28568637df342c74821b7f
      
https://github.com/Perl/perl5/commit/b5f7ce37682c90292b28568637df342c74821b7f
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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: bc5b8577c8613c0c67b917e5ef712902465405a1
      
https://github.com/Perl/perl5/commit/bc5b8577c8613c0c67b917e5ef712902465405a1
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 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.)


  Commit: fc5072b07a23ee3ad8953401780c29a4626b0060
      
https://github.com/Perl/perl5/commit/fc5072b07a23ee3ad8953401780c29a4626b0060
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  perlxs: more tweaks following code review

The many commits in this branch have completely rewritten perlxs.pod.
This commit applies a second set of minor tweaks suggested by reviewers.


  Commit: b7d779abb07c8414630f851e14ddb9f2f3e84a6c
      
https://github.com/Perl/perl5/commit/b7d779abb07c8414630f851e14ddb9f2f3e84a6c
  Author: David Mitchell <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M pod/perldelta.pod

  Log Message:
  -----------
  perldelta entry for perlxs.pod rewrite


Compare: https://github.com/Perl/perl5/compare/45673ef5d75d...b7d779abb07c

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

Reply via email to