Skip to content

Commit

Permalink
[MERGE] ParseXS: refactor OUTPUT and RETVAL code
Browse files Browse the repository at this point in the history
My previous merge commit, 5.41.4-108-g9621dfa822, added Node::Param
objects - which store information about each parameter in an XSUB's
signature - but updated with any further data from an INPUT line.

This branch extends that work by:

- Also updating each Param object with any data from *OUTPUT* lines.

- Adding a synthetic Param object for RETVAL, which means that in many
  places, RETVAL can now be handled just as another parameter (albeit
  one which is declared but not initialised, and which doesn't consume
  an arg). There's still plenty of special-casing code for RETVAL, but
  it now tends to be more in the places where it will have an effect
  (e.g.  some special-handling in INPUT_handler() if RETVAL is seen in
  an INPUT section) rather than the effect being a side-effect of the
  way the code works elsewhere.

- Does some general refactoring of the code responsible for emitting
  output code, e.g. in generate_output() etc. There's still more
  refactoring to be done in this area, but this is a start.

- fixes CASE statements, which were partially broken by the previous
  merge commit.
  • Loading branch information
iabyn committed Nov 18, 2024
2 parents bd24079 + a1fad1e commit b0e9f2b
Show file tree
Hide file tree
Showing 13 changed files with 1,570 additions and 473 deletions.
541 changes: 267 additions & 274 deletions dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use strict;
use warnings;
use Symbol;

our $VERSION = '3.55';
our $VERSION = '3.56';

=head1 NAME
Expand Down
2 changes: 1 addition & 1 deletion dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ExtUtils::ParseXS::CountLines;
use strict;

our $VERSION = '3.55';
our $VERSION = '3.56';

our $SECTION_END_MARKER;

Expand Down
2 changes: 1 addition & 1 deletion dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval;
use strict;
use warnings;

our $VERSION = '3.55';
our $VERSION = '3.56';

=head1 NAME
Expand Down
Loading

0 comments on commit b0e9f2b

Please sign in to comment.