diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 137cf18a2..0e5ee8a91 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -141,7 +141,6 @@ for (const func of Query.search('function')) { - `scripts/`: Build and interface generation tools **Entry Points**: -- `core.ts`: Global imports and initialization - `weaver/Weaver.ts`: Main weaver utilities - `LaraJoinPoint.ts`: Base join point implementation diff --git a/.github/workflows/ant-lara-2.0-legacy.yml b/.github/workflows/ant-lara-2.0-legacy.yml index 96768da84..84d94bedb 100644 --- a/.github/workflows/ant-lara-2.0-legacy.yml +++ b/.github/workflows/ant-lara-2.0-legacy.yml @@ -11,7 +11,7 @@ on: # Daily at midnight schedule: - - cron: '0 0 * * *' + - cron: '0 0 1 * *' jobs: build: @@ -23,7 +23,7 @@ jobs: steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 # Because of scheduled runs, by default run on default branch with: ref: lara-2.0-legacy diff --git a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/DefaultWeaver.java b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/DefaultWeaver.java index 16d443411..95f646869 100644 --- a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/DefaultWeaver.java +++ b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/DefaultWeaver.java @@ -60,7 +60,7 @@ public DefaultWeaver() { public boolean begin(List sources, File output, DataStore args) { this.args = args; - root = new DWorkspace(); + root = new DWorkspace(this); for (File source : sources) { if (source.isDirectory()) { root.addFolder(source); @@ -140,10 +140,6 @@ public String getName() { return "LaraI"; } - public static DefaultWeaver getDefaultWeaver() { - return (DefaultWeaver) getThreadLocalWeaver(); - } - public DataStore getArgs() { return args; } diff --git a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFile.java b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFile.java index 25c37b51b..99e37bd98 100644 --- a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFile.java +++ b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFile.java @@ -13,13 +13,16 @@ package org.lara.interpreter.weaver.defaultweaver.joinpoints; import java.io.File; + +import org.lara.interpreter.weaver.defaultweaver.DefaultWeaver; import org.lara.interpreter.weaver.defaultweaver.abstracts.joinpoints.AFile; public class DWFile extends AFile { private final File file; - public DWFile(File f) { + public DWFile(File f, DefaultWeaver weaver) { + super(weaver); file = f; } diff --git a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFolder.java b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFolder.java index 896a3fdbf..c721e69da 100644 --- a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFolder.java +++ b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFolder.java @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.List; +import org.lara.interpreter.weaver.defaultweaver.DefaultWeaver; import org.lara.interpreter.weaver.defaultweaver.abstracts.joinpoints.AFolder; public class DWFolder extends AFolder { @@ -24,7 +25,8 @@ public class DWFolder extends AFolder { private final List files; private final String path; - public DWFolder(File source) { + public DWFolder(File source, DefaultWeaver weaver) { + super(weaver); path = source.getAbsolutePath(); files = new ArrayList<>(); createFiles(source); @@ -36,7 +38,7 @@ public void createFiles(File folder) { if (f.isDirectory() && getFilesRecursively) { createFiles(f); } else if (f.getName().endsWith(".c")) { - files.add(new DWFile(f)); + files.add(new DWFile(f, getWeaverEngine())); } } } diff --git a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFunction.java b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFunction.java index e4f282d22..c4aa0c76e 100644 --- a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFunction.java +++ b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWFunction.java @@ -12,6 +12,7 @@ */ package org.lara.interpreter.weaver.defaultweaver.joinpoints; +import org.lara.interpreter.weaver.defaultweaver.DefaultWeaver; import org.lara.interpreter.weaver.defaultweaver.abstracts.joinpoints.AFunction; import org.lara.interpreter.weaver.interf.JoinPoint; @@ -19,7 +20,8 @@ public class DWFunction extends AFunction { private final String name; - public DWFunction(String element) { + public DWFunction(String element, DefaultWeaver weaver) { + super(weaver); name = element; } diff --git a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWorkspace.java b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWorkspace.java index fa70bc460..632c72410 100644 --- a/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWorkspace.java +++ b/DefaultWeaver/src/org/lara/interpreter/weaver/defaultweaver/joinpoints/DWorkspace.java @@ -20,6 +20,7 @@ import java.util.HashMap; import java.util.Map; +import org.lara.interpreter.weaver.defaultweaver.DefaultWeaver; import org.lara.interpreter.weaver.defaultweaver.abstracts.joinpoints.AWorkspace; import pt.up.fe.specs.util.SpecsIo; @@ -32,14 +33,15 @@ public class DWorkspace extends AWorkspace { private final Map folders; - public DWorkspace() { + public DWorkspace(DefaultWeaver weaver) { + super(weaver); folders = new HashMap<>(); } public void addFolder(File dir) { File canonicalFile = SpecsIo.getCanonicalFile(dir.getAbsoluteFile()); if (!folders.containsKey(canonicalFile)) { - folders.put(canonicalFile, new DWFolder(canonicalFile)); + folders.put(canonicalFile, new DWFolder(canonicalFile, getWeaverEngine())); } } diff --git a/LARAI/src/org/lara/interpreter/cli/CLIOption.java b/LARAI/src/org/lara/interpreter/cli/CLIOption.java index 20f58f4b2..c40d03a39 100644 --- a/LARAI/src/org/lara/interpreter/cli/CLIOption.java +++ b/LARAI/src/org/lara/interpreter/cli/CLIOption.java @@ -24,7 +24,6 @@ public enum CLIOption implements WeaverOption { help("h", "print this message", LaraiKeys.SHOW_HELP), - version("v", "print version information and exit", null), debug("d", "show all process information", LaraiKeys.DEBUG_MODE), argv("av", OptionArguments.ONE_ARG, "arguments", "arguments for the main aspect. Supports passing a .properties file with the arguments", diff --git a/LARAI/src/org/lara/interpreter/cli/JOptionsInterface.java b/LARAI/src/org/lara/interpreter/cli/JOptionsInterface.java index 92290ce38..59285d2ed 100644 --- a/LARAI/src/org/lara/interpreter/cli/JOptionsInterface.java +++ b/LARAI/src/org/lara/interpreter/cli/JOptionsInterface.java @@ -21,7 +21,6 @@ import pt.up.fe.specs.util.SpecsEnums; import pt.up.fe.specs.util.SpecsLogs; -import java.util.EnumSet; import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -44,8 +43,6 @@ public class JOptionsInterface { } - private static final EnumSet IGNORE_SET = EnumSet.of(CLIOption.version); - public static DataStore getDataStore(String name, Properties properties) { DataStore data = DataStore.newInstance(name); @@ -59,11 +56,6 @@ public static DataStore getDataStore(String name, Properties properties) { continue; } - // Just ignore - if (JOptionsInterface.IGNORE_SET.contains(option)) { - continue; - } - DataKey datakey = JOptionsInterface.CONVERSION_MAP.get(option); // New key that forgot to be added if (datakey == null) { diff --git a/LARAI/src/org/lara/interpreter/cli/OptionsParser.java b/LARAI/src/org/lara/interpreter/cli/OptionsParser.java index 86d6e948b..0d0d42f6b 100644 --- a/LARAI/src/org/lara/interpreter/cli/OptionsParser.java +++ b/LARAI/src/org/lara/interpreter/cli/OptionsParser.java @@ -40,6 +40,7 @@ import org.suikasoft.jOptions.storedefinition.StoreDefinitionBuilder; import pt.up.fe.specs.util.SpecsIo; +import pt.up.fe.specs.util.lazy.Lazy; /** * @author Tiago @@ -53,7 +54,6 @@ public class OptionsParser { */ public static Collection