More early bailouts to avoid redoing work
This commit is contained in:
parent
40a9a8b1d0
commit
b2464a7495
2 changed files with 14 additions and 2 deletions
|
@ -8,6 +8,9 @@ use IPC::Run qw/run/;
|
||||||
no warnings 'experimental';
|
no warnings 'experimental';
|
||||||
|
|
||||||
has 'name' => (is => 'ro');
|
has 'name' => (is => 'ro');
|
||||||
|
has 'dist' => (is => 'ro',
|
||||||
|
builder => '_get_dist',
|
||||||
|
lazy => 1);
|
||||||
|
|
||||||
has 'depends' => (
|
has 'depends' => (
|
||||||
builder => 'get_deps',
|
builder => 'get_deps',
|
||||||
|
@ -16,6 +19,11 @@ has 'depends' => (
|
||||||
lazy => 1,
|
lazy => 1,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
sub _get_dist {
|
||||||
|
my $self = shift;
|
||||||
|
return $Dist::mod_to_dist{$self->name} // $self->name;
|
||||||
|
}
|
||||||
|
|
||||||
our %cache;
|
our %cache;
|
||||||
if (-e 'modcache.stor') {
|
if (-e 'modcache.stor') {
|
||||||
eval {
|
eval {
|
||||||
|
|
|
@ -22,6 +22,7 @@ sub remove_imc {
|
||||||
}
|
}
|
||||||
|
|
||||||
our $last_dep = time();
|
our $last_dep = time();
|
||||||
|
our @total_deps = ();
|
||||||
|
|
||||||
sub dep_order {
|
sub dep_order {
|
||||||
my $module = shift;
|
my $module = shift;
|
||||||
|
@ -31,12 +32,14 @@ sub dep_order {
|
||||||
|
|
||||||
for my $dep ($module->depends->@*) {
|
for my $dep ($module->depends->@*) {
|
||||||
|
|
||||||
if ($level >= 200) {
|
if (time() - $last_dep >= 10 || $level >= 200) {
|
||||||
print $dep->name, "\n";
|
print $dep->name," ",$dep->dist, " " ,$level, "\n";
|
||||||
$last_dep = time();
|
$last_dep = time();
|
||||||
}
|
}
|
||||||
|
|
||||||
next if (Module::_is_banned($dep->name));
|
next if (Module::_is_banned($dep->name));
|
||||||
|
next if ($dep->dist ~~ @total_deps); # skip it if we've already added this to the total deps
|
||||||
|
push @total_deps, $dep->dist;
|
||||||
push @orders, dep_order($dep, $level+1);
|
push @orders, dep_order($dep, $level+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,3 +90,4 @@ sub test_module {
|
||||||
return "success";
|
return "success";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue