package XS::APItest;
-{ use 5.011001; }
+{ use 5.011001; } # 5.11 is a long long time ago... What gives with this?
use strict;
use warnings;
use Carp;
-our $VERSION = '0.41';
+our $VERSION = '1.04';
require XSLoader;
}
}
foreach (keys %{$exports||{}}) {
- next unless /\A(?:rpn|calcrpn|stufftest|swaptwostmts|looprest|scopelessblock|stmtasexpr|stmtsasexpr|loopblock|blockasexpr|swaplabel|labelconst|arrayfullexpr|arraylistexpr|arraytermexpr|arrayarithexpr|arrayexprflags)\z/;
+ next unless /\A(?:rpn|calcrpn|stufftest|swaptwostmts|looprest|scopelessblock|stmtasexpr|stmtsasexpr|loopblock|blockasexpr|swaplabel|labelconst|arrayfullexpr|arraylistexpr|arraytermexpr|arrayarithexpr|arrayexprflags|subsignature|DEFSV|with_vars|join_with_space)\z/;
$^H{"XS::APItest/$_"} = 1;
delete $exports->{$_};
}
=item B<call_sv>, B<call_pv>, B<call_method>
These exercise the C calls of the same names. Everything after the flags
-arg is passed as the the args to the called function. They return whatever
+arg is passed as the args to the called function. They return whatever
the C function itself pushed onto the stack, plus the return value from
the function; for example
- call_sv( sub { @_, 'c' }, G_ARRAY, 'a', 'b'); # returns 'a', 'b', 'c', 3
- call_sv( sub { @_ }, G_SCALAR, 'a', 'b'); # returns 'b', 1
+ call_sv( sub { @_, 'c' }, G_ARRAY, 'a', 'b');
+ # returns 'a', 'b', 'c', 3
+ call_sv( sub { @_ }, G_SCALAR, 'a', 'b');
+ # returns 'b', 1
=item B<eval_sv>
=over
+=item DEFSV
+
+Behaves like C<$_>.
+
=item rpn(EXPRESSION)
This construct is a Perl expression. I<EXPRESSION> must be an RPN