tests, little things, 0.07 release
[gitmo/Class-C3-XS.git] / lib / Class / C3 / XS.pm
index ee0a07f..aab8d46 100644 (file)
@@ -1,6 +1,10 @@
 package Class::C3::XS;
 
-our $VERSION = '0.01_05';
+use 5.006_000;
+use strict;
+use warnings;
+
+our $VERSION = '0.07';
 
 =pod
 
@@ -15,10 +19,19 @@ Class::C3::XS - XS speedups for Class::C3
 
 =head1 DESCRIPTION
 
-This contains XS performance enhancers for L<Class::C3>.
-The main L<Class::C3> package will use this package automatically
-if it can find it.  Do not use this package directly, use
-L<Class::C3> instead.
+This contains XS performance enhancers for L<Class::C3> version
+0.16 and higher.  The main L<Class::C3> package will use this
+package automatically if it can find it.  Do not use this
+package directly, use L<Class::C3> instead.
+
+The test suite here is not complete, although it does verify
+a few basic things.  The best testing comes from running the
+L<Class::C3> test suite *after* this module is installed.
+
+This module won't do anything for you if you're running a
+version of L<Class::C3> older than 0.16.  (It's not a
+dependency because it would be circular with the optional
+dep from that package to this one).
 
 =head1 AUTHOR
 
@@ -34,4 +47,23 @@ it under the same terms as Perl itself.
 require XSLoader;
 XSLoader::load('Class::C3::XS', $VERSION);
 
+package # hide me from PAUSE
+    next;
+
+sub can { Class::C3::XS::_nextcan($_[0], 0) }
+
+sub method {
+    my $method = Class::C3::XS::_nextcan($_[0], 1);
+    goto &$method;
+}
+
+package # hide me from PAUSE
+    maybe::next;
+
+sub method {
+    my $method = Class::C3::XS::_nextcan($_[0], 0);
+    goto &$method if defined $method;
+    return;
+}
+
 1;