On Fri, Apr 05, 2024 at 12:20:19AM +0200, Patrice Dumas wrote: > I do not think that having the same interface for XS and pure Perl is > important. It could even make clearer what is going on in XS. What is > important is to have a code that is easy to understand as a whole in my > opinion. > > > The current state of the change is below. I'd also plan on reviewing > > the other parse_texi_* functions in Parsetexi.pm (such as parse_texi_piece) > > to see if the $no_build and $no_store arguments are necessary. > > I expect no_build not to be relevant anymore, as with your changes > building Perl structures is never done by the Parser if the XS Parser is > used, building Perl structures is always done later on. > > I am not sure that no_store is used, but I think that it should be > considered completely separately from no_build and the on-demand Perl > structures build, as it is a completely different issue.
parse_texi_piece is declared in Parsetexi.pm as "sub parse_texi_piece($$;$$$)" while it is declared in ParserNonXS.pm as "sub parse_texi_piece($$;$)", taking two fewer optional arguments. (I believe this hasn't led to an error message from Perl as the function signatures are not checked when a sub is called with method call syntax.) The $no_store argument doesn't appear to be used anywhere. I've committed a change to remove the $no_build parameter but not the $no_store parameter.