Class::C3::XS - XS speedups for Class::C3


Class-C3-XS documentation Contained in the Class-C3-XS distribution.

Index


Code Index:

NAME

Top

Class::C3::XS - XS speedups for Class::C3

SUMMARY

Top

  use Class::C3; # Automatically loads Class::C3::XS
                 #  if it's installed locally

DESCRIPTION

Top

This contains XS performance enhancers for Class::C3 version 0.16 and higher. The main Class::C3 package will use this package automatically if it can find it. Do not use this package directly, use 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 Class::C3 test suite *after* this module is installed.

This module won't do anything for you if you're running a version of 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).

AUTHOR

Top

Brandon L. Black, <blblack@gmail.com>

LICENSE

Top

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Class-C3-XS documentation Contained in the Class-C3-XS distribution.

package Class::C3::XS;

use 5.006_000;
use strict;
use warnings;

our $VERSION = '0.13';

require XSLoader;
XSLoader::load('Class::C3::XS', $VERSION);

$VERSION = eval $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;