Skip to content

Commit

Permalink
Streamline CompUnit::PrecompilationUnit.is-up-to-date a bit
Browse files Browse the repository at this point in the history
- use binding where possible
- remove unnecessary temporary variables
- some code esthetics
  • Loading branch information
lizmat committed Mar 10, 2020
1 parent 1a0cc94 commit 11b186c
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions src/core.c/CompUnit/PrecompilationUnit.pm6
Expand Up @@ -52,23 +52,33 @@ role CompUnit::PrecompilationUnit {
method source-checksum(--> Str:D) { ... }
method bytecode-handle(--> IO::Handle:D) { ... }
method close(--> Nil) { ... }
method is-up-to-date(CompUnit::PrecompilationDependency $dependency, Bool :$check-source --> Bool) {
my $RMD = $*RAKUDO_MODULE_DEBUG;
if $check-source { # a repo changed, so maybe it's a change in our source file
my $source-checksum = $.source-checksum;

my $srcIO = CompUnit::RepositoryRegistry.file-for-spec($dependency.src) // $dependency.src.IO;
return False unless $srcIO and $srcIO.e;
method is-up-to-date(
CompUnit::PrecompilationDependency $dependency,
Bool :$check-source
--> Bool:D) {
my $RMD := $*RAKUDO_MODULE_DEBUG;

# a repo changed, so maybe it's a change in our source file
if $check-source {
my $srcIO :=
CompUnit::RepositoryRegistry.file-for-spec($dependency.src)
// $dependency.src.IO;
return False unless $srcIO.e;

my $current-source-checksum :=
nqp::sha1($srcIO.slurp(:enc<iso-8859-1>));

my $current-source-checksum := nqp::sha1($srcIO.slurp(:enc<iso-8859-1>).Str);
$RMD(
"$.path\nspec: $dependency.spec()\nsource: $srcIO\n"
~ "source-checksum: $source-checksum\ncurrent-source-checksum: $current-source-checksum"
~ "source-checksum: $.source-checksum\ncurrent-source-checksum: $current-source-checksum"
) if $RMD;
return False if $source-checksum ne $current-source-checksum;

return False if $.source-checksum ne $current-source-checksum;
}

$RMD("dependency checksum $dependency.checksum() unit: $.checksum()") if $RMD;
$RMD("dependency checksum $dependency.checksum() unit: $.checksum()")
if $RMD;

$.checksum eq $dependency.checksum
}
Expand Down

0 comments on commit 11b186c

Please sign in to comment.