From 85bd458e106399126c1b56168ad824847ecbe8f4 Mon Sep 17 00:00:00 2001 From: Gabriel Konat Date: Wed, 25 Aug 2021 10:47:42 +0200 Subject: [PATCH] Provide resources with hash stamper to prevent infinite re-creation. --- .../main/java/mb/spoofax/compiler/util/TemplateWriter.java | 5 +++-- .../mb/spoofax/lwb/compiler/statix/StatixGenerationUtil.java | 3 ++- .../lwb/compiler/stratego/StrategoGenerationUtil.java | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/core/spoofax.compiler/src/main/java/mb/spoofax/compiler/util/TemplateWriter.java b/core/spoofax.compiler/src/main/java/mb/spoofax/compiler/util/TemplateWriter.java index ff0e834dd..fbb29ccf0 100644 --- a/core/spoofax.compiler/src/main/java/mb/spoofax/compiler/util/TemplateWriter.java +++ b/core/spoofax.compiler/src/main/java/mb/spoofax/compiler/util/TemplateWriter.java @@ -2,6 +2,7 @@ import com.samskivert.mustache.Template; import mb.pie.api.ExecContext; +import mb.pie.api.stamp.resource.ResourceStampers; import mb.resource.WritableResource; import mb.resource.hierarchical.HierarchicalResource; import mb.resource.hierarchical.ResourcePath; @@ -45,7 +46,7 @@ public HierarchicalResource write(ExecContext execContext, ResourcePath path, Ob template.execute(context, writer); writer.flush(); } - execContext.provide(resource); + execContext.provide(resource, ResourceStampers.hashFile()); return resource; } @@ -56,7 +57,7 @@ public HierarchicalResource write(ExecContext execContext, ResourcePath path, Ob template.execute(context, parentContext, writer); writer.flush(); } - execContext.provide(resource); + execContext.provide(resource, ResourceStampers.hashFile()); return resource; } diff --git a/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/statix/StatixGenerationUtil.java b/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/statix/StatixGenerationUtil.java index 7d83f4bc7..dd2b02bf4 100644 --- a/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/statix/StatixGenerationUtil.java +++ b/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/statix/StatixGenerationUtil.java @@ -3,6 +3,7 @@ import mb.common.result.Result; import mb.pie.api.ExecContext; import mb.pie.api.STask; +import mb.pie.api.stamp.resource.ResourceStampers; import mb.resource.hierarchical.HierarchicalResource; import mb.resource.hierarchical.ResourcePath; import mb.statix.task.StatixPrettyPrint; @@ -34,6 +35,6 @@ public void writePrettyPrintedFile( final HierarchicalResource file = context.getHierarchicalResource(generatesSourcesDirectory.appendRelativePath(moduleName).appendToLeaf(".stx")); file.ensureFileExists(); file.writeString(prettyPrinted); - context.provide(file); + context.provide(file, ResourceStampers.hashFile()); } } diff --git a/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/stratego/StrategoGenerationUtil.java b/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/stratego/StrategoGenerationUtil.java index b696cb99f..32db689b7 100644 --- a/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/stratego/StrategoGenerationUtil.java +++ b/lwb/spoofax.lwb.compiler/src/main/java/mb/spoofax/lwb/compiler/stratego/StrategoGenerationUtil.java @@ -3,6 +3,7 @@ import mb.common.result.Result; import mb.pie.api.ExecContext; import mb.pie.api.STask; +import mb.pie.api.stamp.resource.ResourceStampers; import mb.resource.hierarchical.HierarchicalResource; import mb.resource.hierarchical.ResourcePath; import mb.str.task.StrategoPrettyPrint; @@ -34,6 +35,6 @@ public void writePrettyPrintedFile( final HierarchicalResource file = context.getHierarchicalResource(generatesSourcesDirectory.appendRelativePath(moduleName).appendToLeaf(".str2")); file.ensureFileExists(); file.writeString(prettyPrinted); - context.provide(file); + context.provide(file, ResourceStampers.hashFile()); } }