Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: bb468b7b116e0e1adcf518103d6b8533f558df9c
      
https://github.com/Perl/perl5/commit/bb468b7b116e0e1adcf518103d6b8533f558df9c
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm

  Log Message:
  -----------
  ParseXS: don't import standard_typemap_locations()

ExtUtils::ParseXS imports standard_typemap_locations() but doesn't
actually use it: the code which used to need it has since been moved to
ExtUtils/ParseXS/Utilities.pm.

So remove it from the import list.


  Commit: 9815ff9fa6fac4105e85ddf69fd3be1187f3f513
      
https://github.com/Perl/perl5/commit/9815ff9fa6fac4105e85ddf69fd3be1187f3f513
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/t/101-standard_typemap_locations.t

  Log Message:
  -----------
  ParseXS: add tests for standard_typemap_locations

Add some more tests to

    ExtUtils-ParseXS/t/101-standard_typemap_locations.

In particular, this time with a faked-up @INC. This is mainly
so that the next few commits will only change the things we expect
when updating standard_typemap_locations().

Note that this new test directly tests for expected strings such as
'../../typemap', rather than using File::Spec->updir() etc. This is to
avoid the test code being essentially a duplicate of the sub code. It
skips this test on platforms which don't seem to use '..' etc.


  Commit: 09034cdee88c35b8d395119f5ded0b39562b5db2
      
https://github.com/Perl/perl5/commit/09034cdee88c35b8d395119f5ded0b39562b5db2
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
    M dist/ExtUtils-ParseXS/t/101-standard_typemap_locations.t

  Log Message:
  -----------
  ParseXS: standard_typemap_locations(): skip -e

standard_typemap_locations() returns a set of filenames for where a
typemap file map be expected, relative to both the current directory and
to @INC.

The @INC files are filtered using -e, but the others (../../typemap etc)
aren't.

This commit removes the -e filtering for @INC, for consistency.
This means that standard_typemap_locations() now returns a list of
filenames of *all* the standard locations where a typemap file *might*
be found, regardless of whether the file exists. Previously it was a
weird hybrid.

This commit should make no difference in practice, since the one caller
of this function, process_typemaps() does it's own -f filtering too.

So really the net effect of this commit is to remove a few duplicate
stat() OS calls.

It also allows one existing test to be simplified, since now there will
always be one returned entry per @INC entry, whereas before it might
have been less.


  Commit: 9ef3303e12a7643b639223355c2093241849c293
      
https://github.com/Perl/perl5/commit/9ef3303e12a7643b639223355c2093241849c293
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm

  Log Message:
  -----------
  ParseXS: update standard_typemap_locations() docs

Simplify the text describing what this function does.


  Commit: ec7894a9d69cb8b7f546e95cb1de175ea3441d34
      
https://github.com/Perl/perl5/commit/ec7894a9d69cb8b7f546e95cb1de175ea3441d34
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm

  Log Message:
  -----------
  ParseXS: standard_typemap_locations(): rm cache

standard_typemap_locations() has a static variable, @tm_template,
which it populates with all the '../../typemap' etc paths on first call,
then reuses on subsequent calls.

This doesn't seem very useful, since standard_typemap_locations() is
typically only called once per run of xsubpp etc. And anyway,
regenerating those paths (which doesn't involve any IO) isn't costly. So
simplify the code by removing the cache.


  Commit: facf65b405acd18b960c15bdeb6568af0ced2e50
      
https://github.com/Perl/perl5/commit/facf65b405acd18b960c15bdeb6568af0ced2e50
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm

  Log Message:
  -----------
  ParseXS: standard_typemap_locations(): reindent

Reindent after previous removed some scopes. White-space only.


  Commit: e90f1863833c355717dc64d7bc9a9433e3a2d977
      
https://github.com/Perl/perl5/commit/e90f1863833c355717dc64d7bc9a9433e3a2d977
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm

  Log Message:
  -----------
  ParseXS: standard_typemap_locations(): use push

Currently this function builds a list of paths in reverse order, but
*unshifts* each result one by one so that they end up in the right
order.

This commit switches the order of generation and *pushes* the result
each time.

The net result is the same, but its less cognitive load working out
what's going on.


  Commit: 48b09951afe6a29b39670126c33f6483844e1eda
      
https://github.com/Perl/perl5/commit/48b09951afe6a29b39670126c33f6483844e1eda
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm

  Log Message:
  -----------
  ParseXS: process_typemaps(): update docs

Make them a bit clearer.


  Commit: 4adf59baead582feb68786576cdfe928643db967
      
https://github.com/Perl/perl5/commit/4adf59baead582feb68786576cdfe928643db967
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp

  Log Message:
  -----------
  xsubpp: update typemap content in man page

What the man page said concerning typemaps, and especially the search
path, was out of date.


  Commit: 52745e94ad7bce3687dec40570b7920a3b934ef3
      
https://github.com/Perl/perl5/commit/52745e94ad7bce3687dec40570b7920a3b934ef3
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
    M dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
    M dist/ExtUtils-ParseXS/t/106-process_typemaps.t
    M dist/ExtUtils-ParseXS/t/600-t-compat.t

  Log Message:
  -----------
  ParseXS, xsubpp: raise priority of -typemap args

Prior to 5.10. / 5.8.9, any -typemap arguments to xsubpp were applied
last, and thus had the highest priority. From 5.10.0 this was changed
(probably inadvertently) so that the -typemap entries were applied
first, and so the system and ./typemap files took priority.

This commit reverses that change, so that -typemap files are again
applied last.


  Commit: b32a36bbff0f5bbe66fc9771a5c19b4c1f251f00
      
https://github.com/Perl/perl5/commit/b32a36bbff0f5bbe66fc9771a5c19b4c1f251f00
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M pod/perldelta.pod

  Log Message:
  -----------
  perldelta XS xsubpp -typemap processing priority


  Commit: 4355559c2a42af9cbe01cb8ead8ecbfbe5a71b1b
      
https://github.com/Perl/perl5/commit/4355559c2a42af9cbe01cb8ead8ecbfbe5a71b1b
  Author: David Mitchell <da...@iabyn.com>
  Date:   2025-09-10 (Wed, 10 Sep 2025)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm
    M dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
    M dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
    M dist/ExtUtils-ParseXS/t/101-standard_typemap_locations.t
    M dist/ExtUtils-ParseXS/t/106-process_typemaps.t
    M dist/ExtUtils-ParseXS/t/600-t-compat.t
    M pod/perldelta.pod

  Log Message:
  -----------
  [MERGE] tidy typemap-finding code and fix priority

All but the last commit in this branch clean up, simplify, and better
document and test the code which is responsible for searching for XS
typemap files in standard locations (relative to both @INC and the current
dir). They all (in theory) have no change in behaviour.

The final commit restores the priority of files specified by -typemap:
these were the highest priority before 5.10.0 and became lowest priority
afterwards. Pre-5.10.0 was still the documented behaviour and I think the
change was a mistake. In practice this last commit is unlikely to affect
any real modules, but you never know.


Compare: https://github.com/Perl/perl5/compare/6e8e0e86eb1e...4355559c2a42

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

Reply via email to