KiokuDB
view release on metacpan or search on metacpan
"Moose::Exporter" : "0",
"Moose::Role" : "0",
"Moose::Util" : "0",
"Moose::Util::MetaRole" : "0",
"Moose::Util::TypeConstraints" : "0",
"MooseX::Clone" : "0.04",
"MooseX::Clone::Meta::Attribute::Trait::NoClone" : "0",
"MooseX::Role::Parameterized" : "0.10",
"MooseX::YAML" : "0.04",
"POSIX" : "0",
"PadWalker" : "1.9",
"Path::Class" : "0",
"Scalar::Util" : "0",
"Scope::Guard" : "0",
"Search::GIN::Driver" : "0",
"Search::GIN::Extract" : "0",
"Search::GIN::Query::Class" : "0.03",
"Set::Object" : "1.26",
"Storable" : "0",
"Sub::Exporter" : "0",
"Symbol" : "0",
Moose::Exporter: '0'
Moose::Role: '0'
Moose::Util: '0'
Moose::Util::MetaRole: '0'
Moose::Util::TypeConstraints: '0'
MooseX::Clone: '0.04'
MooseX::Clone::Meta::Attribute::Trait::NoClone: '0'
MooseX::Role::Parameterized: '0.10'
MooseX::YAML: '0.04'
POSIX: '0'
PadWalker: '1.9'
Path::Class: '0'
Scalar::Util: '0'
Scope::Guard: '0'
Search::GIN::Driver: '0'
Search::GIN::Extract: '0'
Search::GIN::Query::Class: '0.03'
Set::Object: '1.26'
Storable: '0'
Sub::Exporter: '0'
Symbol: '0'
Makefile.PL view on Meta::CPAN
"Moose::Exporter" => 0,
"Moose::Role" => 0,
"Moose::Util" => 0,
"Moose::Util::MetaRole" => 0,
"Moose::Util::TypeConstraints" => 0,
"MooseX::Clone" => "0.04",
"MooseX::Clone::Meta::Attribute::Trait::NoClone" => 0,
"MooseX::Role::Parameterized" => "0.10",
"MooseX::YAML" => "0.04",
"POSIX" => 0,
"PadWalker" => "1.9",
"Path::Class" => 0,
"Scalar::Util" => 0,
"Scope::Guard" => 0,
"Search::GIN::Driver" => 0,
"Search::GIN::Extract" => 0,
"Search::GIN::Query::Class" => "0.03",
"Set::Object" => "1.26",
"Storable" => 0,
"Sub::Exporter" => 0,
"Symbol" => 0,
Makefile.PL view on Meta::CPAN
"Moose::Exporter" => 0,
"Moose::Role" => 0,
"Moose::Util" => 0,
"Moose::Util::MetaRole" => 0,
"Moose::Util::TypeConstraints" => 0,
"MooseX::Clone" => "0.04",
"MooseX::Clone::Meta::Attribute::Trait::NoClone" => 0,
"MooseX::Role::Parameterized" => "0.10",
"MooseX::YAML" => "0.04",
"POSIX" => 0,
"PadWalker" => "1.9",
"Path::Class" => 0,
"Scalar::Util" => 0,
"Scope::Guard" => 0,
"Search::GIN::Driver" => 0,
"Search::GIN::Driver::Hash" => 0,
"Search::GIN::Extract" => 0,
"Search::GIN::Extract::Class" => 0,
"Search::GIN::Extract::Delegate" => 0,
"Search::GIN::Query::Class" => "0.03",
"Set::Object" => "1.26",
lib/KiokuDB/TypeMap/Entry/Closure.pm view on Meta::CPAN
package KiokuDB::TypeMap::Entry::Closure;
BEGIN {
$KiokuDB::TypeMap::Entry::Closure::AUTHORITY = 'cpan:NUFFIN';
}
$KiokuDB::TypeMap::Entry::Closure::VERSION = '0.57';
use Moose;
use Carp qw(croak);
use Scalar::Util qw(refaddr);
use PadWalker 1.9;
use Class::Load ();
no warnings 'recursion';
use namespace::clean -except => 'meta';
with qw(KiokuDB::TypeMap::Entry::Std);
sub compile_collapse_body {
my $self = shift;
lib/KiokuDB/TypeMap/Entry/Closure.pm view on Meta::CPAN
my ( $collapser, %args ) = @_;
my $sub = $args{object};
my ( $pkg, $name ) = Class::MOP::get_code_info($sub);
my %data;
# FIXME make this customizable on a per sub and per typemap level
if ( $name eq '__ANON__' ) {
my $pad = PadWalker::closed_over($sub);
if ( keys %$pad ) {
my $collapsed_pad = $collapser->visit($pad);
$data{pad} = $collapsed_pad;
my $buffer = $collapser->_buffer;
my $pad_entry_data = blessed $collapsed_pad ? $buffer->id_to_entry( $collapsed_pad->id )->data : $collapsed_pad;
$buffer->first_class->insert(map { $_->id } values %$pad_entry_data ); # maybe only if entry($_->id)->object's refcount is > 1 (only shared closure vars) ?
lib/KiokuDB/TypeMap/Entry/Closure.pm view on Meta::CPAN
# FIXME Parse::Perl
my $sub = eval "
my ( $vars );
sub $body;
";
my $e = $@;
$linker->queue_finalizer(sub {
PadWalker::set_closed_over($sub, $pad);
}) if $sub;
( $sub, $e );
} else {
eval "sub $body", $@;
}
};
die $e unless $sub;
( run in 0.798 second using v1.01-cache-2.11-cpan-05444aca049 )