More early bailouts to avoid redoing work

This commit is contained in:
Your Name 2017-03-30 17:52:16 -04:00
parent 40a9a8b1d0
commit b2464a7495
2 changed files with 14 additions and 2 deletions

View file

@ -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 {

View file

@ -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;