In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/449a79a3e9e452cf9cb57f06b5843a4053de674d?hp=f909f9f77e09a983fd06d560db3355cbb5c00608>
- Log ----------------------------------------------------------------- commit 449a79a3e9e452cf9cb57f06b5843a4053de674d Author: Mattia Barbon <[email protected]> Date: Sun Jan 3 21:54:31 2016 +0100 Replace :: with __ in THIS like it's done for parameters/return values Apart from being more consistent, this simplifies writing XS code wrapping C++ classes into a nested Perl namespace (it reqquires only a typedef for Foo__Bar rather than two, one for Foo_Bar and the other for Foo::Bar). Impact is likely to be minimmal: it will only affect classes: - in C++ extensions (there is no way to make Foo::Bar *THIS compile in C) - that use Foo::Bar only as a receiver (if they use it as a parameter/return value the typedef is already there) Given that a class is always used as the return valus in a normal constructor, this case should be relatively rare. given this Foo.xs file: MODULE=Foo PACKAGE=Foo::Bar TYPEMAP: <<EOT TYPEMAP Foo::Bar * T_PTRREF EOT Foo::Bar * Foo::Bar::moo(Foo::Bar *foo) the output of perl -Ilib lib/ExtUtils/xsubpp -prototypes Foo.xs | grep -A8 moo | head -n 10 changes from: XS_EUPXS(XS_Foo__Bar_moo); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_Foo__Bar_moo) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "THIS, foo"); { Foo::Bar * THIS; Foo__Bar * RETVAL; Foo__Bar * foo; to: XS_EUPXS(XS_Foo__Bar_moo); /* prototype to pass -Wmissing-prototypes */ XS_EUPXS(XS_Foo__Bar_moo) { dVAR; dXSARGS; if (items != 2) croak_xs_usage(cv, "THIS, foo"); { Foo__Bar * THIS; Foo__Bar * RETVAL; Foo__Bar * foo; ----------------------------------------------------------------------- Summary of changes: dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm | 4 ++-- dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm | 2 +- dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm index f67a82d..32d74e1 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm @@ -11,7 +11,7 @@ use Symbol; our $VERSION; BEGIN { - $VERSION = '3.30'; + $VERSION = '3.31'; } use ExtUtils::ParseXS::Constants $VERSION; use ExtUtils::ParseXS::CountLines $VERSION; @@ -579,7 +579,7 @@ EOF } ); } else { - print "\t$class *"; + print "\t" . map_type($self, "$class *"); $self->{var_types}->{"THIS"} = "$class *"; $self->generate_init( { type => "$class *", diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm index 8856551..2319a24 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Symbol; -our $VERSION = '3.30'; +our $VERSION = '3.31'; =head1 NAME diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm index 2f45292..222a95c 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm @@ -1,7 +1,7 @@ package ExtUtils::ParseXS::CountLines; use strict; -our $VERSION = '3.30'; +our $VERSION = '3.31'; our $SECTION_END_MARKER; diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm index 8c075a3..7315332 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm @@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval; use strict; use warnings; -our $VERSION = '3.30'; +our $VERSION = '3.31'; =head1 NAME diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm index 4de9f4e..41a9f6d 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm @@ -5,7 +5,7 @@ use Exporter; use File::Spec; use ExtUtils::ParseXS::Constants (); -our $VERSION = '3.30'; +our $VERSION = '3.31'; our (@ISA, @EXPORT_OK); @ISA = qw(Exporter); diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm index a16ae06..48d623e 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps; use 5.006001; use strict; use warnings; -our $VERSION = '3.30'; +our $VERSION = '3.31'; require ExtUtils::ParseXS; require ExtUtils::ParseXS::Constants; diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm index ccd5efe..ffed504 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps::Cmd; use 5.006001; use strict; use warnings; -our $VERSION = '3.30'; +our $VERSION = '3.31'; use ExtUtils::Typemaps; diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm index 67ea1c2..86c646d 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps::InputMap; use 5.006001; use strict; use warnings; -our $VERSION = '3.30'; +our $VERSION = '3.31'; =head1 NAME diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm index 42cbe5c..32cf9f9 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps::OutputMap; use 5.006001; use strict; use warnings; -our $VERSION = '3.30'; +our $VERSION = '3.31'; =head1 NAME diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm index 7e0f4ba..abe93cb 100644 --- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm +++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm @@ -4,7 +4,7 @@ use strict; use warnings; require ExtUtils::Typemaps; -our $VERSION = '3.30'; +our $VERSION = '3.31'; =head1 NAME -- Perl5 Master Repository
