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';
|
||||
|
||||
has 'name' => (is => 'ro');
|
||||
has 'dist' => (is => 'ro',
|
||||
builder => '_get_dist',
|
||||
lazy => 1);
|
||||
|
||||
has 'depends' => (
|
||||
builder => 'get_deps',
|
||||
|
@ -16,6 +19,11 @@ has 'depends' => (
|
|||
lazy => 1,
|
||||
);
|
||||
|
||||
sub _get_dist {
|
||||
my $self = shift;
|
||||
return $Dist::mod_to_dist{$self->name} // $self->name;
|
||||
}
|
||||
|
||||
our %cache;
|
||||
if (-e 'modcache.stor') {
|
||||
eval {
|
||||
|
|
|
@ -22,6 +22,7 @@ sub remove_imc {
|
|||
}
|
||||
|
||||
our $last_dep = time();
|
||||
our @total_deps = ();
|
||||
|
||||
sub dep_order {
|
||||
my $module = shift;
|
||||
|
@ -31,12 +32,14 @@ sub dep_order {
|
|||
|
||||
for my $dep ($module->depends->@*) {
|
||||
|
||||
if ($level >= 200) {
|
||||
print $dep->name, "\n";
|
||||
if (time() - $last_dep >= 10 || $level >= 200) {
|
||||
print $dep->name," ",$dep->dist, " " ,$level, "\n";
|
||||
$last_dep = time();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -87,3 +90,4 @@ sub test_module {
|
|||
return "success";
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
Loading…
Add table
Reference in a new issue