#! perl -wl
die unless defined($adir=shift@ARGV);
die unless defined($bdir=shift@ARGV);
for$fn(<$adir/DR-*.out>){
    $_=&read_last_line($fn);
    die $_ unless /^(\S+)-([0-9.]+)$/;
    $a{$1}=$2;
}

for$fn(<$bdir/DR-*.out>){
    $_=&read_last_line($fn);
    die $_ unless /^(\S+)-([0-9.]+)$/;
    $b{$1}=$2;
}
for(keys%a){
    next if defined$b{$_};
    print "aonly $_ $a{$_}";
}
for(keys%b){
    next if defined$a{$_};
    print "bonly $_ $b{$_}";
}
for(keys%a){
    next unless defined$b{$_};
    $diff=&compare_versions($a{$_},$b{$_});
    if($diff<0){
        $cdiff='b';
    }elsif($diff==0){
        die unless $a{$_}eq$b{$_};
        $cdiff='=';
    }elsif($diff>0){
        $cdiff='a';
    }else{die}
    print "compare $cdiff $_ $a{$_} $b{$_}";
}
sub compare_versions {
    my$a=shift;
    my$b=shift;
    my@A=split /\./,$a;
    my@B=split /\./,$b;
    for(;;){
        return 0 if(@A==0 and @B==0);
        return 1 if(@A==0 and @B>0);  # 5 < 5.0
        return -1 if (@A>0 and @B==0);
        $ia=shift@A;
        $ib=shift@B;
        if($ia!=$ib){
            return($ia-$ib);
        }
    }
}
sub read_last_line {
    my$fn=shift;
    open FI,$fn or die;
    while(<FI>){
        chomp;
        s/ \(latest: [0-9.]+\)//;
        $ln=$_;
    }
    close FI;
    $ln;
}
