From 79b49095c1ca91f2f4ec06a03e00ec8d293e8ea2 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Sat, 21 Dec 2024 15:35:54 +0000 Subject: [PATCH] updating to match Mosaic project structure, also some doc tweaks --- README.txt | 115 ++++---- .../document\360\237\226\211/build.txt" | 23 -- .../build_Ariadne.txt" | 29 ++ .../is_there_a_time_bound.txt" | 22 +- .../javac\360\237\226\211/Ariadne_Graph.java" | 95 ++++--- .../Ariadne_GraphDirectedAcyclic.java" | 4 + .../javac\360\237\226\211/Ariadne_Node.java" | 16 +- .../tool\360\237\226\211/clean" | 7 +- .../tool\360\237\226\211/clean_make_output" | 26 -- .../tool\360\237\226\211/clean_release" | 29 -- .../tool\360\237\226\211/gather_source_links" | 0 .../tool\360\237\226\211/gather_third_party" | 45 ++++ "developer/tool\360\237\226\211/release" | 53 ++-- "document\360\237\226\211/LICENSE.txt" | 1 + "document\360\237\226\211/README.txt" | 1 + env_run | 2 +- release/Ariadne.jar | Bin 23442 -> 23386 bytes tester/bash/.githolder | 0 tester/bash/Test_File_0 | 2 - tester/bash/Test_Graph_0 | 2 - tester/bash/Test_LabelList_0 | 2 - tester/bash/Test_Label_0 | 2 - tester/bash/Test_NodeList_0 | 2 - tester/bash/Test_Node_0 | 2 - tester/bash/Test_TokenSet_0 | 2 - tester/bash/Test_Token_0 | 2 - tester/bash/Test_Util_0 | 2 - "tester/bash\360\237\226\211/TF0" | 10 - .../{data_Test_File_0 => data_File_0}/I_exist | 0 .../{data_Test_File_0 => data_File_0}/file_0 | 0 .../{data_Test_File_0 => data_File_0}/file_1 | 0 .../{data_Test_File_0 => data_File_0}/file_2 | 0 .../{data_Test_File_0 => data_File_0}/file_3 | 0 .../debug_with_sources.txt" | 78 ------ .../javac\360\237\226\211/File_0.java" | 18 +- .../javac\360\237\226\211/Graph_0.java" | 5 +- .../javac\360\237\226\211/LabelList_0.java" | 4 +- .../javac\360\237\226\211/Label_0.java" | 4 +- .../javac\360\237\226\211/NodeList_0.java" | 4 +- .../javac\360\237\226\211/Node_0.java" | 4 +- .../javac\360\237\226\211/TokenSet_0.java" | 4 +- .../javac\360\237\226\211/Token_0.java" | 4 +- .../javac\360\237\226\211/Util_0.java" | 4 +- .../javac\360\237\226\211/log.txt" | 0 tester/jdwp_server/.gitignore | 2 + tester/jvm/.githolder | 0 tester/jvm/.gitignore | 2 + tester/jvm/Test_Ariadne.jar | Bin 17248 -> 0 bytes tester/log/logback.xml | 22 ++ tester/test_log.txt | 234 ---------------- .../tool\360\237\226\211/clean" | 10 +- .../clean_build_directories" | 24 -- "tester/tool\360\237\226\211/env" | 155 +++++++---- .../tool\360\237\226\211/list" | 19 +- "tester/tool\360\237\226\211/make" | 56 ++-- .../tool\360\237\226\211/run" | 11 +- "tester/tool\360\237\226\211/run_jdb" | 12 - "tool_shared/bespoke\360\237\226\211/env" | 4 + .../document\360\237\226\211/Eclipse.txt" | 22 -- .../document\360\237\226\211/Emacs.txt" | 45 ---- .../IntelliJ_IDEA.txt" | 252 ------------------ .../document\360\237\226\211/install.txt" | 43 +-- 62 files changed, 475 insertions(+), 1063 deletions(-) delete mode 100644 "developer/document\360\237\226\211/build.txt" create mode 100644 "developer/document\360\237\226\211/build_Ariadne.txt" rename "developer/document\360\237\226\211/GraphDirectedAcyclic.txt" => "developer/document\360\237\226\211/is_there_a_time_bound.txt" (79%) rename "developer/tool\360\237\226\211/clean_build_directories" => "developer/tool\360\237\226\211/clean" (88%) delete mode 100755 "developer/tool\360\237\226\211/clean_make_output" delete mode 100755 "developer/tool\360\237\226\211/clean_release" rename "developer/tool\360\237\226\211/distribute_source" => "developer/tool\360\237\226\211/gather_source_links" (100%) create mode 100755 "developer/tool\360\237\226\211/gather_third_party" create mode 120000 "document\360\237\226\211/LICENSE.txt" create mode 120000 "document\360\237\226\211/README.txt" delete mode 100644 tester/bash/.githolder delete mode 100755 tester/bash/Test_File_0 delete mode 100755 tester/bash/Test_Graph_0 delete mode 100755 tester/bash/Test_LabelList_0 delete mode 100755 tester/bash/Test_Label_0 delete mode 100755 tester/bash/Test_NodeList_0 delete mode 100755 tester/bash/Test_Node_0 delete mode 100755 tester/bash/Test_TokenSet_0 delete mode 100755 tester/bash/Test_Token_0 delete mode 100755 tester/bash/Test_Util_0 delete mode 100755 "tester/bash\360\237\226\211/TF0" rename tester/{data_Test_File_0 => data_File_0}/I_exist (100%) rename tester/{data_Test_File_0 => data_File_0}/file_0 (100%) rename tester/{data_Test_File_0 => data_File_0}/file_1 (100%) rename tester/{data_Test_File_0 => data_File_0}/file_2 (100%) rename tester/{data_Test_File_0 => data_File_0}/file_3 (100%) delete mode 100644 "tester/document\360\237\226\211/debug_with_sources.txt" rename "tester/javac\360\237\226\211/Test_File_0.java" => "tester/javac\360\237\226\211/File_0.java" (86%) rename "tester/javac\360\237\226\211/Test_Graph_0.java" => "tester/javac\360\237\226\211/Graph_0.java" (94%) rename "tester/javac\360\237\226\211/Test_LabelList_0.java" => "tester/javac\360\237\226\211/LabelList_0.java" (93%) rename "tester/javac\360\237\226\211/Test_Label_0.java" => "tester/javac\360\237\226\211/Label_0.java" (93%) rename "tester/javac\360\237\226\211/Test_NodeList_0.java" => "tester/javac\360\237\226\211/NodeList_0.java" (92%) rename "tester/javac\360\237\226\211/Test_Node_0.java" => "tester/javac\360\237\226\211/Node_0.java" (96%) rename "tester/javac\360\237\226\211/Test_TokenSet_0.java" => "tester/javac\360\237\226\211/TokenSet_0.java" (95%) rename "tester/javac\360\237\226\211/Test_Token_0.java" => "tester/javac\360\237\226\211/Token_0.java" (94%) rename "tester/javac\360\237\226\211/Test_Util_0.java" => "tester/javac\360\237\226\211/Util_0.java" (95%) rename "tester/javac\360\237\226\211/test_log.txt" => "tester/javac\360\237\226\211/log.txt" (100%) create mode 100644 tester/jdwp_server/.gitignore delete mode 100644 tester/jvm/.githolder create mode 100644 tester/jvm/.gitignore delete mode 100644 tester/jvm/Test_Ariadne.jar create mode 100644 tester/log/logback.xml delete mode 100644 tester/test_log.txt rename "developer/tool\360\237\226\211/clean_javac_output" => "tester/tool\360\237\226\211/clean" (60%) delete mode 100755 "tester/tool\360\237\226\211/clean_build_directories" rename "tester/tool\360\237\226\211/bash_wrapper_list" => "tester/tool\360\237\226\211/list" (64%) rename "tester/tool\360\237\226\211/run_tests" => "tester/tool\360\237\226\211/run" (75%) delete mode 100755 "tester/tool\360\237\226\211/run_jdb" delete mode 100644 "tool_shared/document\360\237\226\211/Eclipse.txt" delete mode 100644 "tool_shared/document\360\237\226\211/Emacs.txt" delete mode 100644 "tool_shared/document\360\237\226\211/IntelliJ_IDEA.txt" diff --git a/README.txt b/README.txt index bf5978e..5e7234b 100644 --- a/README.txt +++ b/README.txt @@ -1,80 +1,105 @@ +-------------------------------------------------------------------------------- +Documents + +Note the directories: Ariadne/document🖉, Ariadne/developer/document🖉, and Ariadne/tester/document🖉. Also not documents in the RT-project-share/document🖉 directory. + -------------------------------------------------------------------------------- Ariadne Ariadne is a graph based build tool. -Tying to build a project is a lot like trying to find your way out of -Daedalus's impossible to solve maze. Ariadne hands you a ball of string. +When you are tasked with a project build that is as complex as Daedalus's impossible to solve maze, modern Ariadne hands you a piece of chalk to draw arrows with. It works even better than a ball of string. --------------------------------------------------------------------------------- -Documents +A tool like Ariadne is useful for projects that have compiled languages, where there are many steps in getting from source code to a loadable set of instructions. At is able to handle complex cases with generation of sources from ANTLR grammars, and the implied dependencies of Java programs. -Note the directories: Ariadne/document, Ariadne/developer/document, -and Ariadne/tester/document. +Ariadne can also be used to describe dependencies on libraries or other programs used by a given program. This is useful with both compiled and interpreted languages. +In the Java implementation of Ariadne, everything is coded in Java, including the developer's description of the dependency graph. + +If a developer were to compare `Ariadne` with `make`, the file corresponding to the 'make file' is a dynamically loaded Java program known as the 'graph definition'. Whereas a make file for a complex project will contain a lot of shell code, the Ariadne graph definition is all Java code. Where a make file has 'pattern rules' Ariadne will typically has regular expressions. Make can not backwards chain through pattern rules, Ariadne can. + +Ariadne is more procedural than Maven, which is more descriptive. Ariadne allows for finer grain description of dependencies and finer grain decision making than with Gradle task dependencies. -------------------------------------------------------------------------------- -How It Works +General Comments about Graphs + +Conceptually a graph is a set with two members, nodes and edges, both also being sets. In turn, each edge is a pair of nodes. In a directed graph, one of the nodes of such a pair is said to be the tail, while the other is said to be the head. -Everything is coded in Java, including the developers description of the -dependency graph. +A leaf node is unusual in that it is not the tail of any edge. -A graph is made of nodes and edges. +When a node is selected, a set is implied that contains each and every edge that has the selected node as its tail, if any. These are the outgoing edges for the selected node. Each outgoing edge then has a head. We say that the set of head nodes are distance one from the selected node. (The selected node itself is at distance zero.) Distance one nodes are said to be 'neighbor' nodes. -A node is dictionary. Each node has a 'label', a 'build' function, and a -'neighbor' list. The neighbor list holds the edges. +Deterministic traversal is an algorithm that is given two arguments when it is started, a graph definition, and a start node. The start node is then assigned to a state variable. At each step of the algorithm, the node in the state variable is selected on the graph, then the state variable is re-assigned to be one of the distance one nodes. -Using Java, the developer puts the nodes in a map, keyed on the node label, or -writes functions that when given a label, return either a node or null. +Deterministic search for a node is an example of an algorithm that makes use of traversal. Deterministic search begins with a graph, a start node, a predicate that is said to recognize the searched for node, and a function that guides the traversal. -A node map looks a lot like classic make file. Each node label is a target file -path, the neighbor list can be listed next, and then we have the build code. +A self cycle in a graph consists of a node and an edge, where said edge has the node as both its tail and its head. There is no change in the traversal state variable when taking a traversal step through such an edge. In general, a cycle consists of a start node and all nodes and edges traversed up until arriving back at said start node. -Function defined nodes are very flexible. They are more powerful, and more -flexible than make's pattern rules. If a developer wants a function to act like -a pattern rule, the developer can use a regular expression match on the given -label. However, unlike make, pattern rules defined in this manner, will -backwards chain potentially through other pattern rules. +It is a bad thing to have cycles in a build graph, as cycles will correspond to circular dependencies. Hence Ariadne looks for these and reports them. + +-------------------------------------------------------------------------------- +The Ariadne Build Graph -The Build function is one of the graph traversal programs. It is given a graph -and a list of top level market targets. It traverses the graph to find leaf -while unwinding its proverbial ball of string. Upon finding leaf nodes, it then -follows the string back until building the targets. +An Ariadne graph definition contains a 'graph definition function' list. A graph definition function is given a node label, and returns a node, or null if it can not find a node with such a label. A common graph definition function contains a map where each entry is a node label and a node. -It is possible to define other graph traversal functions. In fact, Ariadne can -be used to do anything where a directed graph of functions is useful. +An Ariadne node is dictionary that maps a string key to a value. The type of the value is implied by the string key. Depending on the Ariadne tool being used, each node map will typically have entries for the keys "label", "build", and "neighbor". +A "label" value is a string that is unique among the nodes in the graph. The "build" value is a function that a build tool will call when a file corresponding to a node is to be built. The "neighbor" value is a list of neighbor nodes. + +The Ariadne graph definition is optimized to be a run time data structure used for traversal, so the neighbor list is held directly in the node. Also, there is only one edge property, that of 'dependency'. As a consequence, there is no need for a separate edge table. -------------------------------------------------------------------------------- -Entering the Project +Ariadne Build Tool + +For the default Ariadne build tool, each node label is either symbolic, or is a file path. The tool descends into the graph, based on file modification dates, and builds nodes that are modified less recently than their dependencies. + +-------------------------------------------------------------------------------- +For Developers/Testers + +The project has three entry points, one for each project role: developer, tester, and administrator. To enter the project, source the environment appropriate for the role, either `env_developer`, `env_tester`, or `env_administrator`. + +1. Production + + 1.1. development + + cd Ariadne + . env_developer + + [do work] + + make + release -The project has three entry points, one for each project role: developer, -tester, and administrator. To enter the project, source the environment -appropriate for the role, either `env_developer`, `env_tester`, or -`env_administrator`. + 1.2 regression testing -For example, to work on the code as a developer, start a fresh shell and: + cd Ariadne + . env_tester + make + run -> cd Ariadne -> . env_developer -> +2. Debugging -[do work] + cd Ariadne + . env_developer + make + # puts links to source files on the `scratchpad` + gather_source_links -> make -> release + [change to tester module] -[change to tester role] + cd Ariadne + # the developer parameter links in the actual source in the developer module + . env_tester developer + make + run -The `make` command you see above is a bash script. Version 1.0 of Ariadne uses a -direct 'build it all every time' approach. Perhaps in version 2.0 or so, we will -use a prior version of Ariadne for the build environment. +The `make` command you see above is a bash script. Version 1.0 of Ariadne uses a direct 'build it all every time' approach. Perhaps in version 2.0 or so, we will use a prior version of Ariadne for the build environment. +In IntelliJ IDEA there are two modules, developer and tester. The output for each module is 'scratchpad' tests are added through the `run edit-configuration` menu. See tool_shared/third_party/document🖉 directory for more information. Using Ariadne ------------- -After it is built and released the tool will appear in the Ariadne/release -directory where it can be tested or imported into another project. +After it is built and released the tool will appear in the Ariadne/release directory where it can be regression tested or imported into another project. diff --git "a/developer/document\360\237\226\211/build.txt" "b/developer/document\360\237\226\211/build.txt" deleted file mode 100644 index fa1fc0b..0000000 --- "a/developer/document\360\237\226\211/build.txt" +++ /dev/null @@ -1,23 +0,0 @@ - -1. start with a clean release directory - - wipe_release - -2a. if including sources in the .jar: - - clean_build_directories - distribute_source - make - release - - -2b. if not including the sources: - - clean_build_directories - make - release - -3. check - - jar -tf ../release/Ariadne.jar - diff --git "a/developer/document\360\237\226\211/build_Ariadne.txt" "b/developer/document\360\237\226\211/build_Ariadne.txt" new file mode 100644 index 0000000..adbb344 --- /dev/null +++ "b/developer/document\360\237\226\211/build_Ariadne.txt" @@ -0,0 +1,29 @@ + +Ariadne is itself a build tool. Plans are that once there is a stable +version, that version will be used to build later versions of Ariadne. +For now, we use naive build scripts. When run, they build everything, +edited or not. + +1. start with a clean release directory + + wipe_release + +2a. when including sources in the .jar, or when debugging sources +via the `env_tester developer` environment, or through an IDE. + + clean + gather_source_links + make + release + + +2b. when not including the sources: + + clean + make + release + +3. check to see what was released: + + jar -tf ../release/Ariadne.jar + diff --git "a/developer/document\360\237\226\211/GraphDirectedAcyclic.txt" "b/developer/document\360\237\226\211/is_there_a_time_bound.txt" similarity index 79% rename from "developer/document\360\237\226\211/GraphDirectedAcyclic.txt" rename to "developer/document\360\237\226\211/is_there_a_time_bound.txt" index 3da0b12..5db2b4b 100644 --- "a/developer/document\360\237\226\211/GraphDirectedAcyclic.txt" +++ "b/developer/document\360\237\226\211/is_there_a_time_bound.txt" @@ -1,25 +1,19 @@ -Comment that was on the cycle detector code. Was useful for defining -the problem and limitations when defining the code. Might turn -into a list of constraints the user needs to adhere for the algorithm -to be guaranteed to function per spec. Has potential -to be turned into a proof of the algorithm. Begins by laying -out the assumptions the code is working under. -/* -Our build tool graph is directed from targets to dependencies. +Each node in the build graph + -It must be cycle free. This class extends `Graph` by marking -cycles that are found when descending from root nodes. Then -`lookup` will not return these nodes. +Our build tool graph is directed from targets to dependencies. If: 1. The production functions produce the same output given the - same input. (Which is a given for the map definition portion of - the graph). + same input. + + 2. There are a finite number of nodes - 2. There are a finite number of states. + 3. At some point, stay t0, the graph no longer changes. + -input values 3. Any input values that are used in the definition of the graph are not changed after some point in time when the graph is said to have been 'defined'. diff --git "a/developer/javac\360\237\226\211/Ariadne_Graph.java" "b/developer/javac\360\237\226\211/Ariadne_Graph.java" index 2dd28b6..6b54394 100644 --- "a/developer/javac\360\237\226\211/Ariadne_Graph.java" +++ "b/developer/javac\360\237\226\211/Ariadne_Graph.java" @@ -3,60 +3,71 @@ package com.ReasoningTechnology.Ariadne; import java.util.HashMap; import java.util.Map; -public class Ariadne_Graph { +public class Ariadne_Graph{ - /*-------------------------------------------------------------------------------- - constructors - */ - - public Ariadne_Graph(Map node_map, Ariadne_ProductionList recognizer_f_list) { - if (node_map == null && recognizer_f_list == null) { - System.err.println("Ariadne_Graph: At least one of 'node_map' (Map) or 'recognizer_f_list' (List) must be provided."); - System.exit(1); + // Test messaging + // + private static boolean test = false; + public static void test_switch(boolean test){ + if (Ariadne_Graph.test && !test){ + test_print("Ariadne_Graph:: test messages off"); + } + if (!Ariadne_Graph.test && test){ + test_print("Ariadne_Graph:: test messages on"); + } + } + private static void test_print(String message){ + if(test){ + System.out.println(message); + } } - // Initialize each of node_map and recognizer_f_list to empty collections if null - this.node_map = (node_map != null) ? node_map : new HashMap<>(); - this.recognizer_f_list = (recognizer_f_list != null) ? recognizer_f_list : new Ariadne_ProductionList(); - } - - /*-------------------------------------------------------------------------------- - instance data - */ + // Class data (static data) + // - private static boolean debug = true; - private Map node_map; - private Ariadne_ProductionList recognizer_f_list; - /*-------------------------------------------------------------------------------- - interface - */ + // Instance data and access + // + private Map node_map; + private Ariadne_ProductionList recognizer_f_list; - // Lookup method to find a node by its label - public Ariadne_Node lookup(Ariadne_Label node_label, boolean verbose) { - if (node_label == null || node_label.isEmpty()) { - if (verbose) { - System.out.println("lookup:: given node_label is null or empty."); + // Constructors + // + public Ariadne_Graph(Map node_map, Ariadne_ProductionList recognizer_f_list){ + if (node_map == null && recognizer_f_list == null){ + System.err.println("Ariadne_Graph: At least one of 'node_map' (Map) or 'recognizer_f_list' (List) must be provided."); + System.exit(1); } - return null; + + // Initialize each of node_map and recognizer_f_list to empty collections if null + this.node_map = (node_map != null) ? node_map : new HashMap<>(); + this.recognizer_f_list = (recognizer_f_list != null) ? recognizer_f_list : new Ariadne_ProductionList(); } - // Try to retrieve the node from the map - Ariadne_Node node = this.node_map.get(node_label); + // Interface methods + // - if (verbose) { - if (node != null) { - System.out.println("lookup:: found node: " + node); - } else { - System.out.println("lookup:: node not found for label: " + node_label); + // Lookup by label + public Ariadne_Node lookup(Ariadne_Label node_label){ + if (node_label == null || node_label.isEmpty()){ + if (verbose){ + System.out.println("lookup:: given node_label is null or empty."); + } + return null; } + + // Try to retrieve the node from the map + Ariadne_Node node = this.node_map.get(node_label); + + if(test) + if(node == null) test_print("lookup:: node not found for label: " + node_label); + else test_print("lookup:: found node: " + node); + + return node; } - return node; - } + // standard interface + // + // need a toString ... - // Overloaded lookup method with default verbosity (true) - public Ariadne_Node lookup(Ariadne_Label node_label) { - return lookup(node_label, true); - } } diff --git "a/developer/javac\360\237\226\211/Ariadne_GraphDirectedAcyclic.java" "b/developer/javac\360\237\226\211/Ariadne_GraphDirectedAcyclic.java" index 3a8e9e2..948dc47 100644 --- "a/developer/javac\360\237\226\211/Ariadne_GraphDirectedAcyclic.java" +++ "b/developer/javac\360\237\226\211/Ariadne_GraphDirectedAcyclic.java" @@ -11,6 +11,10 @@ public class Ariadne_GraphDirectedAcyclic extends Ariadne_Graph { Constructors */ + public Ariadne_GraphDirectedAcyclic() { + super(new HashMap<>(), null); + } + public Ariadne_GraphDirectedAcyclic(Map node_map, Ariadne_ProductionList recognizer_f_list, Ariadne_LabelList root_node_list, int max_depth, boolean verbose) { super(node_map, recognizer_f_list); Ariadne_TokenSet cycle_detection_result = graph_mark_cycles(root_node_list, max_depth, verbose); diff --git "a/developer/javac\360\237\226\211/Ariadne_Node.java" "b/developer/javac\360\237\226\211/Ariadne_Node.java" index 41d8ccd..0c49ac2 100644 --- "a/developer/javac\360\237\226\211/Ariadne_Node.java" +++ "b/developer/javac\360\237\226\211/Ariadne_Node.java" @@ -1,30 +1,30 @@ package com.ReasoningTechnology.Ariadne; import java.util.HashMap; -public class Ariadne_Node extends HashMap { +public class Ariadne_Node extends HashMap{ private static String mark_property_name = "mark"; private static String neighbor_property_name = "neighbor"; - public Ariadne_Node() { + public Ariadne_Node(){ super(); this.put(neighbor_property_name, new Ariadne_LabelList()); } - public void mark(Ariadne_Token token) { - if (this.get(mark_property_name) == null) { + public void mark(Ariadne_Token token){ + if(this.get(mark_property_name) == null){ this.put(mark_property_name, new Ariadne_TokenSet()); } ((Ariadne_TokenSet) this.get(mark_property_name)).add(token); } - public boolean has_mark(Ariadne_Token token) { - Ariadne_TokenSet mark = (Ariadne_TokenSet) this.get(mark_property_name); + public boolean has_mark(Ariadne_Token token){ + Ariadne_TokenSet mark =(Ariadne_TokenSet) this.get(mark_property_name); return mark != null && mark.contains(token); } - public Ariadne_LabelList neighbor_LabelList() { - return (Ariadne_LabelList) this.get(neighbor_property_name); + public Ariadne_LabelList neighbor_LabelList(){ + return(Ariadne_LabelList) this.get(neighbor_property_name); } } diff --git "a/developer/tool\360\237\226\211/clean_build_directories" "b/developer/tool\360\237\226\211/clean" similarity index 88% rename from "developer/tool\360\237\226\211/clean_build_directories" rename to "developer/tool\360\237\226\211/clean" index 2414a1c..a32578f 100755 --- "a/developer/tool\360\237\226\211/clean_build_directories" +++ "b/developer/tool\360\237\226\211/clean" @@ -16,9 +16,12 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # remove files set -x cd "$REPO_HOME"/developer + + # rm_na currently does not handle links correctly rm -r scratchpad/* - rm jvm/* - rm bash/* + + rm_na jvm/* + rm_na bash/* set +x echo "$(script_fn) done." diff --git "a/developer/tool\360\237\226\211/clean_make_output" "b/developer/tool\360\237\226\211/clean_make_output" deleted file mode 100755 index 094552b..0000000 --- "a/developer/tool\360\237\226\211/clean_make_output" +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -script_afp=$(realpath "${BASH_SOURCE[0]}") -# remove all files made by `make` - -# input guards - - env_must_be="developer/tool🖉/env" - if [ "$ENV" != "$env_must_be" ]; then - echo "$(script_fp):: error: must be run in the $env_must_be environment" - exit 1 - fi - -# wrappers to clean (this list space separated list will grow) - - wrapper=$(bash_wrapper_list) - -# remove files - - set -x - cd "$REPO_HOME"/developer - rm -r scratchpad/com/ReasoningTechnology/"$PROJECT" - rm jvm/"$PROJECT".jar - rm bash/{$wrapper} - set +x - -echo "$(script_fn) done." diff --git "a/developer/tool\360\237\226\211/clean_release" "b/developer/tool\360\237\226\211/clean_release" deleted file mode 100755 index 8744730..0000000 --- "a/developer/tool\360\237\226\211/clean_release" +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash -script_afp=$(realpath "${BASH_SOURCE[0]}") -# remove files made by `make` and by `release` - -# input guards - - env_must_be="developer/tool🖉/env" - if [ "$ENV" != "$env_must_be" ]; then - echo "$(script_fp):: error: must be run in the $env_must_be environment" - exit 1 - fi - -# things to clean - - release_dir="$REPO_HOME"/release - wrapper=$(bash_wrapper_list) - -# remove files - set -x - cd "$REPO_HOME"/developer - rm -r scratchpad/com/ReasoningTechnology/"$PROJECT" - rm jvm/"$PROJECT".jar - rm bash/{$wrapper} - rm -f "$release_dir"/"$PROJECT".jar - rm -f "$release_dir"/{$wrapper} - set +x - -echo "$(script_fn) done." - diff --git "a/developer/tool\360\237\226\211/distribute_source" "b/developer/tool\360\237\226\211/gather_source_links" similarity index 100% rename from "developer/tool\360\237\226\211/distribute_source" rename to "developer/tool\360\237\226\211/gather_source_links" diff --git "a/developer/tool\360\237\226\211/gather_third_party" "b/developer/tool\360\237\226\211/gather_third_party" new file mode 100755 index 0000000..5941b9a --- /dev/null +++ "b/developer/tool\360\237\226\211/gather_third_party" @@ -0,0 +1,45 @@ +#!/bin/env bash +script_afp=$(realpath "${BASH_SOURCE[0]}") + +# Ariadne does not currently package any third party tools with the .jar +# release, so this script does nothing. + +# This script expands Mosaic third party projects onto the scratchpad. This is done before releasing or running local ad hoc tests, so that the third party tools will be present. I.e. this is for creating a 'fat' jar. + +# Input guards + + env_must_be="developer/tool🖉/env" + if [ "$ENV" != "$env_must_be" ]; then + echo "$(script_fp):: error: must be run in the $env_must_be environment" + exit 1 + fi + + cd "$REPO_HOME"/developer + +# Expand the third party tools into the package tree + + # echo "Expanding .jar files to be included with Mosaic into scratchpad." + + # third_party_jars=( + # "$LOGGER_FACADE" + # "$LOGGER_CLASSIC" + # "$LOGGER_CORE" + # ) + + # pushd scratchpad >& /dev/null + + # for jar in "${third_party_jars[@]}"; do + # if [ -f "$jar" ]; then + # echo "including $jar" + # jar -xf "$jar" + # else + # echo "Warning: JAR file not found: $jar" + # fi + # done + + # # we are not currently using modules + # rm -rf module-info.class + + + +echo "$(script_fp) done." diff --git "a/developer/tool\360\237\226\211/release" "b/developer/tool\360\237\226\211/release" index 81966ad..c8c32fe 100755 --- "a/developer/tool\360\237\226\211/release" +++ "b/developer/tool\360\237\226\211/release" @@ -1,6 +1,8 @@ #!/usr/bin/env bash script_afp=$(realpath "${BASH_SOURCE[0]}") +# before running this script, gather everything needed for the release on the scratchpad + # input guards if [ -z "$REPO_HOME" ]; then @@ -10,23 +12,24 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") env_must_be="developer/tool🖉/env" if [ "$ENV" != "$env_must_be" ]; then - echo "$(script_fp):: error: must be run in the $env_must_be environment" + echo "$(script_fp):: must be run in the $env_must_be environment" exit 1 fi -# script local environment + cd "$REPO_HOME"/developer - release_dir="$REPO_HOME/release" - bash_dir="$REPO_HOME/developer/bash" - project_jar_fp="$REPO_HOME/developer/jvm/"$PROJECT".jar" - wrapper=$(bash_wrapper_list) + if [ ! -d scratchpad ]; then + echo "$(script_fp):: no scratchpad directory" + exit 1 + fi - if [ ! -d "$release_dir" ]; then - mkdir -p "$release_dir" - fi +# Inform the user + + echo "The pwd for this script is `pwd`." + +# Function to copy and set permissions - # Function to copy and set permissions install_file() { source_fp="$1" target_dp="$2" @@ -46,17 +49,33 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") echo "Installed $(basename "$source_fp") to $target_dp with permissions $perms" fi } - -# do the release - echo "Starting release process..." +# scratchpad --> .jar file + + mkdir -p jvm + jar_file=$(realpath jvm/"$PROJECT".jar) + + pushd scratchpad + + echo "scratchpad -> $jar_file" + jar cf $jar_file * + if [ $? -ne 0 ]; then + echo "Failed to create $jar_file file." + exit 1 + fi + + popd + +# move files to the release dir + + release_dir="$REPO_HOME/release" + bash_dir="$REPO_HOME/developer/bash" + wrapper=$(bash_wrapper_list) - # Install the JAR file - install_file "$project_jar_fp" "$release_dir" "ug+r" + install_file "$jar_file" "$release_dir" "ug+r" - # Install bash wrappers for wrapper in $wrapper; do - install_file "$bash_dir/$wrapper" "$release_dir" "ug+r+x" + install_file "$bash_dir"/"$wrapper" "$release_dir" "ug+r+x" done echo "$(script_fp) done." diff --git "a/document\360\237\226\211/LICENSE.txt" "b/document\360\237\226\211/LICENSE.txt" new file mode 120000 index 0000000..4ab4373 --- /dev/null +++ "b/document\360\237\226\211/LICENSE.txt" @@ -0,0 +1 @@ +../LICENSE.txt \ No newline at end of file diff --git "a/document\360\237\226\211/README.txt" "b/document\360\237\226\211/README.txt" new file mode 120000 index 0000000..ecfa029 --- /dev/null +++ "b/document\360\237\226\211/README.txt" @@ -0,0 +1 @@ +../README.txt \ No newline at end of file diff --git a/env_run b/env_run index c2bd006..dc80084 120000 --- a/env_run +++ b/env_run @@ -1 +1 @@ -tool_shared/third_party/RT-project-share/release/bash/env_run \ No newline at end of file +tool_shared/third_party/RT-project-share//release/bash/env_run \ No newline at end of file diff --git a/release/Ariadne.jar b/release/Ariadne.jar index b9fcac53a5b3a18cd0b496446e1d7e54ba7f0ac5..b077223ead54f0133d859ff33f6725baec7699e5 100644 GIT binary patch delta 6706 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 Scys_dfZxOS>R12$>i+=NlV9Qh delta 6717 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 BdMN+^ diff --git a/tester/bash/.githolder b/tester/bash/.githolder deleted file mode 100644 index e69de29..0000000 diff --git a/tester/bash/Test_File_0 b/tester/bash/Test_File_0 deleted file mode 100755 index 39c1f2a..0000000 --- a/tester/bash/Test_File_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_File_0 diff --git a/tester/bash/Test_Graph_0 b/tester/bash/Test_Graph_0 deleted file mode 100755 index 7653d09..0000000 --- a/tester/bash/Test_Graph_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_Graph_0 diff --git a/tester/bash/Test_LabelList_0 b/tester/bash/Test_LabelList_0 deleted file mode 100755 index 15a0da6..0000000 --- a/tester/bash/Test_LabelList_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_LabelList_0 diff --git a/tester/bash/Test_Label_0 b/tester/bash/Test_Label_0 deleted file mode 100755 index 6b61242..0000000 --- a/tester/bash/Test_Label_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_Label_0 diff --git a/tester/bash/Test_NodeList_0 b/tester/bash/Test_NodeList_0 deleted file mode 100755 index 8970446..0000000 --- a/tester/bash/Test_NodeList_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_NodeList_0 diff --git a/tester/bash/Test_Node_0 b/tester/bash/Test_Node_0 deleted file mode 100755 index 7901f30..0000000 --- a/tester/bash/Test_Node_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_Node_0 diff --git a/tester/bash/Test_TokenSet_0 b/tester/bash/Test_TokenSet_0 deleted file mode 100755 index 05d37d4..0000000 --- a/tester/bash/Test_TokenSet_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_TokenSet_0 diff --git a/tester/bash/Test_Token_0 b/tester/bash/Test_Token_0 deleted file mode 100755 index 842f673..0000000 --- a/tester/bash/Test_Token_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_Token_0 diff --git a/tester/bash/Test_Util_0 b/tester/bash/Test_Util_0 deleted file mode 100755 index 6157abe..0000000 --- a/tester/bash/Test_Util_0 +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/env bash -java Test_Util_0 diff --git "a/tester/bash\360\237\226\211/TF0" "b/tester/bash\360\237\226\211/TF0" deleted file mode 100755 index af784e6..0000000 --- "a/tester/bash\360\237\226\211/TF0" +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/env bash - -echo $ENV - -vl echo "CLASSPATH: $CLASSPATH" - -set -x -java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 Test_File_0 - - diff --git a/tester/data_Test_File_0/I_exist b/tester/data_File_0/I_exist similarity index 100% rename from tester/data_Test_File_0/I_exist rename to tester/data_File_0/I_exist diff --git a/tester/data_Test_File_0/file_0 b/tester/data_File_0/file_0 similarity index 100% rename from tester/data_Test_File_0/file_0 rename to tester/data_File_0/file_0 diff --git a/tester/data_Test_File_0/file_1 b/tester/data_File_0/file_1 similarity index 100% rename from tester/data_Test_File_0/file_1 rename to tester/data_File_0/file_1 diff --git a/tester/data_Test_File_0/file_2 b/tester/data_File_0/file_2 similarity index 100% rename from tester/data_Test_File_0/file_2 rename to tester/data_File_0/file_2 diff --git a/tester/data_Test_File_0/file_3 b/tester/data_File_0/file_3 similarity index 100% rename from tester/data_Test_File_0/file_3 rename to tester/data_File_0/file_3 diff --git "a/tester/document\360\237\226\211/debug_with_sources.txt" "b/tester/document\360\237\226\211/debug_with_sources.txt" deleted file mode 100644 index e2ee8e0..0000000 --- "a/tester/document\360\237\226\211/debug_with_sources.txt" +++ /dev/null @@ -1,78 +0,0 @@ - -How to tie sources into debugging - -

Option 1: so sources can be edited then checked into the repo:

- - It is not typical to desire to be able edit upstream libraries, but maybe you - are developer on the upstream code, or want to leave the option open. Who - knows? - - 1. distribute the source files into the package tree - - cd $REPO_HOME/tool_shared//developer - . env_developer - distribute_source - - This will put links into developer/scratchpad that point back into original - sources. Hence, after making changes they can be checked in. - - If on a release branch, the sources will be in sync with the classes found - in the .jvm in the release directory, or at least they are supposed to be. - - If not on a release branch, then follow the directions for making and - releasing the project, and spin up a new released `.jvm` file and they - will be in sync. - - - 2. edit $REPO_HOME/tester/tool🖉/env and make sure the developer/scratchpad is - in the SOURCEPATH - - export SOURCEPATH=\ - ... - :"$REPO_HOME"/tool_shared/third_party/Mosaic/developer/scratchpad\ - ... - -

Option 2: you do not plan to edit the third party library:

- - This is more typical. - - 1. If your `.jar` file has sources included, expand it into the tester/scratchapd - - jar -xf .jar> $REPO_HOME/tester/scratchpad. - - The debugger should now have access to the sources. - - 2. If your `.jar` does not have sources included. Go build them, see the directions in - the first option. - -

Option 3: don't debug a third party library. - - This is the most typical. Step over calls to the library. If results are not as expected, - read docs, discuss with others, make bug reports. - --------------------------------------------------------------------------------- - -Examples: - -export CLASSPATH=\ -"$JAVA_HOME"/lib\ -:"$MOSAIC_HOME"/developer/scratchpad\ -:"$REPO_HOME"/developer/scratchpad\ -:"$REPO_HOME"/tester/scratchpad\ -:"$CLASSPATH" - -First line gets the class files most recently built by Mosaic developer. -Second line gets the class files most recently built by Ariadne developer. -Third line gets class files most recently built by the tester. - -export SOURCEPATH=\ -"$JAVA_HOME"/lib\ -:"$MOSAIC_HOME"/developer/scratchpad\ -:"$REPO_HOME"/developer/scratchpad\ -:"$REPO_HOME"/tester/javac🖉\ -:"$SOURCEPATH" - -In each case the developer must run `distribute_source` before building the project. -First line gets the source files most recently built by Mosaic developer. -Second line gets the source files most recently built by Ariadne developer. -Third line gets source files most recently built by the tester. diff --git "a/tester/javac\360\237\226\211/Test_File_0.java" "b/tester/javac\360\237\226\211/File_0.java" similarity index 86% rename from "tester/javac\360\237\226\211/Test_File_0.java" rename to "tester/javac\360\237\226\211/File_0.java" index e3bb697..cf56c38 100644 --- "a/tester/javac\360\237\226\211/Test_File_0.java" +++ "b/tester/javac\360\237\226\211/File_0.java" @@ -16,7 +16,7 @@ import com.ReasoningTechnology.Mosaic.Mosaic_Util; import com.ReasoningTechnology.Ariadne.Ariadne_File; -public class Test_File_0 { +public class File_0 { public class TestSuite { @@ -51,8 +51,8 @@ public class Test_File_0 { int i = 0; String repoHome = System.getenv("REPO_HOME"); - String existingFilePath = repoHome + "/tester/data_Test_File_0/I_exist"; - String nonExistentFilePath = repoHome + "/tester/data_Test_File_0/I_do_not_exist"; + String existingFilePath = repoHome + "/tester/data_File_0/I_exist"; + String nonExistentFilePath = repoHome + "/tester/data_File_0/I_do_not_exist"; conditions[i++] = Ariadne_File.file_exists_q(existingFilePath); conditions[i++] = !Ariadne_File.file_exists_q(nonExistentFilePath); @@ -65,11 +65,11 @@ public class Test_File_0 { int i = 0; String repoHome = System.getenv("REPO_HOME"); - String file_0 = repoHome + "/tester/data_Test_File_0/file_0"; - String file_1 = repoHome + "/tester/data_Test_File_0/file_1"; - String file_2 = repoHome + "/tester/data_Test_File_0/file_2"; - String file_3 = repoHome + "/tester/data_Test_File_0/file_3"; - String missing_file_0 = repoHome + "/tester/data_Test_File_0/missing_file_0"; + String file_0 = repoHome + "/tester/data_File_0/file_0"; + String file_1 = repoHome + "/tester/data_File_0/file_1"; + String file_2 = repoHome + "/tester/data_File_0/file_2"; + String file_3 = repoHome + "/tester/data_File_0/file_3"; + String missing_file_0 = repoHome + "/tester/data_File_0/missing_file_0"; // Setting modification times Files.setLastModifiedTime(Path.of(file_3), FileTime.fromMillis(System.currentTimeMillis() - 20000)); @@ -96,7 +96,7 @@ public class Test_File_0 { public static void main(String[] args) { try { - TestSuite suite = new Test_File_0().new TestSuite(); + TestSuite suite = new File_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } catch (Exception e) { diff --git "a/tester/javac\360\237\226\211/Test_Graph_0.java" "b/tester/javac\360\237\226\211/Graph_0.java" similarity index 94% rename from "tester/javac\360\237\226\211/Test_Graph_0.java" rename to "tester/javac\360\237\226\211/Graph_0.java" index ba28304..bfb5dcc 100644 --- "a/tester/javac\360\237\226\211/Test_Graph_0.java" +++ "b/tester/javac\360\237\226\211/Graph_0.java" @@ -3,6 +3,7 @@ import java.util.Map; import java.util.List; import java.lang.reflect.Method; +import com.ReasoningTechnology.Mosaic.Mosaic_Dispatch; import com.ReasoningTechnology.Mosaic.Mosaic_IO; import com.ReasoningTechnology.Mosaic.Mosaic_Testbench; import com.ReasoningTechnology.Mosaic.Mosaic_Util; @@ -14,7 +15,7 @@ import com.ReasoningTechnology.Ariadne.Ariadne_LabelList; import com.ReasoningTechnology.Ariadne.Ariadne_Node; import com.ReasoningTechnology.Ariadne.Ariadne_ProductionList; -public class Test_Graph_0 { +public class Graph_0 { public class TestSuite { private final Object GraphDirectedAcyclic_proxy; @@ -64,7 +65,7 @@ public class Test_Graph_0 { public static void main(String[] args) { // no command line arguments, nor options to be parsed. - TestSuite suite = new Test_Graph_0().new TestSuite(); + TestSuite suite = new Graph_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/Test_LabelList_0.java" "b/tester/javac\360\237\226\211/LabelList_0.java" similarity index 93% rename from "tester/javac\360\237\226\211/Test_LabelList_0.java" rename to "tester/javac\360\237\226\211/LabelList_0.java" index 258362e..6b11de6 100644 --- "a/tester/javac\360\237\226\211/Test_LabelList_0.java" +++ "b/tester/javac\360\237\226\211/LabelList_0.java" @@ -8,7 +8,7 @@ import com.ReasoningTechnology.Mosaic.Mosaic_Testbench; import com.ReasoningTechnology.Ariadne.Ariadne_Label; import com.ReasoningTechnology.Ariadne.Ariadne_LabelList; -public class Test_LabelList_0 { +public class LabelList_0 { public class TestSuite { @@ -32,7 +32,7 @@ public class Test_LabelList_0 { } public static void main(String[] args) { - TestSuite suite = new Test_LabelList_0().new TestSuite(); + TestSuite suite = new LabelList_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/Test_Label_0.java" "b/tester/javac\360\237\226\211/Label_0.java" similarity index 93% rename from "tester/javac\360\237\226\211/Test_Label_0.java" rename to "tester/javac\360\237\226\211/Label_0.java" index e304150..817e232 100644 --- "a/tester/javac\360\237\226\211/Test_Label_0.java" +++ "b/tester/javac\360\237\226\211/Label_0.java" @@ -6,7 +6,7 @@ import com.ReasoningTechnology.Mosaic.Mosaic_Testbench; import com.ReasoningTechnology.Ariadne.Ariadne_Label; -public class Test_Label_0 { +public class Label_0 { public class TestSuite { @@ -32,7 +32,7 @@ public class Test_Label_0 { } public static void main(String[] args) { - TestSuite suite = new Test_Label_0().new TestSuite(); + TestSuite suite = new Label_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/Test_NodeList_0.java" "b/tester/javac\360\237\226\211/NodeList_0.java" similarity index 92% rename from "tester/javac\360\237\226\211/Test_NodeList_0.java" rename to "tester/javac\360\237\226\211/NodeList_0.java" index cb7f5a6..21dc2a4 100644 --- "a/tester/javac\360\237\226\211/Test_NodeList_0.java" +++ "b/tester/javac\360\237\226\211/NodeList_0.java" @@ -5,7 +5,7 @@ import com.ReasoningTechnology.Mosaic.Mosaic_Testbench; import com.ReasoningTechnology.Ariadne.Ariadne_Node; import com.ReasoningTechnology.Ariadne.Ariadne_NodeList; -public class Test_NodeList_0 { +public class NodeList_0 { public class TestSuite { @@ -28,7 +28,7 @@ public class Test_NodeList_0 { } public static void main(String[] args) { - TestSuite suite = new Test_NodeList_0().new TestSuite(); + TestSuite suite = new NodeList_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/Test_Node_0.java" "b/tester/javac\360\237\226\211/Node_0.java" similarity index 96% rename from "tester/javac\360\237\226\211/Test_Node_0.java" rename to "tester/javac\360\237\226\211/Node_0.java" index ae85d64..a8754b6 100644 --- "a/tester/javac\360\237\226\211/Test_Node_0.java" +++ "b/tester/javac\360\237\226\211/Node_0.java" @@ -10,7 +10,7 @@ import com.ReasoningTechnology.Ariadne.Ariadne_Token; import com.ReasoningTechnology.Ariadne.Ariadne_TokenSet; -public class Test_Node_0 { +public class Node_0 { public class TestSuite { @@ -67,7 +67,7 @@ public class Test_Node_0 { } public static void main(String[] args) { - TestSuite suite = new Test_Node_0().new TestSuite(); + TestSuite suite = new Node_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/Test_TokenSet_0.java" "b/tester/javac\360\237\226\211/TokenSet_0.java" similarity index 95% rename from "tester/javac\360\237\226\211/Test_TokenSet_0.java" rename to "tester/javac\360\237\226\211/TokenSet_0.java" index 53399e1..7eecb83 100644 --- "a/tester/javac\360\237\226\211/Test_TokenSet_0.java" +++ "b/tester/javac\360\237\226\211/TokenSet_0.java" @@ -5,7 +5,7 @@ import com.ReasoningTechnology.Mosaic.Mosaic_Testbench; import com.ReasoningTechnology.Ariadne.Ariadne_Token; import com.ReasoningTechnology.Ariadne.Ariadne_TokenSet; -public class Test_TokenSet_0 { +public class TokenSet_0 { public class TestSuite { @@ -45,7 +45,7 @@ public class Test_TokenSet_0 { } public static void main(String[] args) { - TestSuite suite = new Test_TokenSet_0().new TestSuite(); + TestSuite suite = new TokenSet_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/Test_Token_0.java" "b/tester/javac\360\237\226\211/Token_0.java" similarity index 94% rename from "tester/javac\360\237\226\211/Test_Token_0.java" rename to "tester/javac\360\237\226\211/Token_0.java" index 2fe9c48..e248f6f 100644 --- "a/tester/javac\360\237\226\211/Test_Token_0.java" +++ "b/tester/javac\360\237\226\211/Token_0.java" @@ -4,7 +4,7 @@ import com.ReasoningTechnology.Mosaic.Mosaic_Testbench; import com.ReasoningTechnology.Ariadne.Ariadne_Token; -public class Test_Token_0 { +public class Token_0 { public class TestSuite { @@ -43,7 +43,7 @@ public class Test_Token_0 { } public static void main(String[] args) { - TestSuite suite = new Test_Token_0().new TestSuite(); + TestSuite suite = new Token_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/Test_Util_0.java" "b/tester/javac\360\237\226\211/Util_0.java" similarity index 95% rename from "tester/javac\360\237\226\211/Test_Util_0.java" rename to "tester/javac\360\237\226\211/Util_0.java" index 15d9821..8e814ea 100644 --- "a/tester/javac\360\237\226\211/Test_Util_0.java" +++ "b/tester/javac\360\237\226\211/Util_0.java" @@ -8,7 +8,7 @@ import com.ReasoningTechnology.Ariadne.Ariadne_Util; import java.util.List; import java.util.Arrays; -public class Test_Util_0 { +public class Util_0 { public class TestSuite { @@ -47,7 +47,7 @@ public class Test_Util_0 { } public static void main(String[] args) { - TestSuite suite = new Test_Util_0().new TestSuite(); + TestSuite suite = new Util_0().new TestSuite(); int result = Mosaic_Testbench.run(suite); System.exit(result); } diff --git "a/tester/javac\360\237\226\211/test_log.txt" "b/tester/javac\360\237\226\211/log.txt" similarity index 100% rename from "tester/javac\360\237\226\211/test_log.txt" rename to "tester/javac\360\237\226\211/log.txt" diff --git a/tester/jdwp_server/.gitignore b/tester/jdwp_server/.gitignore new file mode 100644 index 0000000..120f485 --- /dev/null +++ b/tester/jdwp_server/.gitignore @@ -0,0 +1,2 @@ +* +!/.gitignore diff --git a/tester/jvm/.githolder b/tester/jvm/.githolder deleted file mode 100644 index e69de29..0000000 diff --git a/tester/jvm/.gitignore b/tester/jvm/.gitignore new file mode 100644 index 0000000..120f485 --- /dev/null +++ b/tester/jvm/.gitignore @@ -0,0 +1,2 @@ +* +!/.gitignore diff --git a/tester/jvm/Test_Ariadne.jar b/tester/jvm/Test_Ariadne.jar deleted file mode 100644 index 4e2f38411469c592c0fe617a296dae3e7ea6db6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17248 zcma)D1yr2Lvc^5QI|=SC1BBr25Zv7%xCb&oa3{eTAh^40aCZ{i-Q6GAy}O&0yZ1F` z&iOe^*VHuCUwvf?(vVOHU|?`yVDMVO8el&ycrYk1Sy2^121z+FrpJCTFooy0VuHcJ z!Ts&6n9tjOf2*vZoTQkjvI?WD*qQ9$fQ&Q)<@-&z}kl*V;D?Ci46lLeH;1 zw6OFw|C7ScUjvNM%)-gS%+~Im$;7JCs@ zJpWb2#L-Dl%);74kD2_(v$C^=lL@1dwSl8!@uwSCf+?&X0kyd>lP;Haaxvh0BJ?QX zkN%zG5*82+=+;qd?3{AJ($18pv&1h);D)%loye->FXru>}qy)1A#se6g z9#C$jpF-0n&YQ*z`=T+P-bV~iBzqn;9yK35EP9HQJRa?Pwvj%Cpp)jIg`iQsbXu@U zVO4_eOp^>xtD7726f%x9(OT3c`@Ek%IvP+dEp|tgtB+qJr?M?K1aLI9T;!0Z8F6YR zTJ+Dw!1zvp2_W)s$v#9E+LfeYgldLn>IY0)S$`bsr0BS8V*3QJ#4j<@x*V)aOs`J$ zXLAHNOZTznSXW*q^BQBxfUFi7@o!@5EeiEFLjt+zv=avzQ(Xt?G%jUwT3;qz6$x2> zr8ae9#DY-na$z)z?cQK1$xu_DFs6Vqlaa407&CzWlGG^{-MvZ4N2eveVZ*&AFbijIxNnq=~yKpuT)?&%Owqj3$}E^LAblvYcF{C2Nq-pE4HRwoskrbmuxv^-*XcJ@_7!!Gr5@w*Elyy%!auwkO3}>#}OKf z`x!=!X$GFQga+zpj^y12VgVelTL+;BF6QU?2O!kv_S{myIvxBi;qu9f0^vFjWb9?u zVp$H?>rk&|z9+;g*(!^BeTPZ0Ae-noS`V4AJdILR@TTq7@zPXJPG^djnIov(97HQr zDAN|WtqnL42=dHIAuVOW>NM8ewz)KO)9nMW93|4koAd{xrZVz4a_DKr)-nim-dM3J znwGO4MmWR>g(F-*_YYz<=u8aYmvF7hXiOyVsD5Kews!6cwflyixLZ6CsYa#ds!Fwh zQoF`d>L4Y$sS7g72Qy}v!3fke-nAqThZcA5r{+wJa3D!X16ZHwR>qx~zTn-;ot(xt z&^yd{ssrq8O$rJy&DRw;rn(}8vvu4$OkCXGCeGE14)ts@$WM(M*9gY$q@xOb7>=WH zGG&8!{eavl{PSWF zoAXy{JjWcf1Z}dGriv{Wgu9q;Q&>eSV+jAIclKzCmPlCqo|)I(=q43X|@1P6x4G~*eB>y?RzWgdyI;gQvATC)>l0Fn_35Q=qK zLx-cXVp<12X#kg=#DGeX_yw0_Z-Ls7K`)>Scl*O#R#AIaM zvS!R9PbXZ>D!%`nQfHQPI4Y6jrnGzI?dsT@WukuVQIzBouJyXKZYJO*3?#^^b0j3Fe-mk#y~Qa0KptIDM$6e%xO*m(e@OM`u5JL?0Ss zENIK2sFg(zS(_qy&h|s8DXv=*ll3`TuZfndnADu%&)mMjwlHHuIZV^*P!mo%(0pK=CJoM=^sKrL&s|mgC=S+i87-F zuNA{zjf4Hz)~w2Dg;>;29h)h~mjY-qa; z%)kZY07*12fxP zEG1nKUnaa8)zmKo8cW+izX7Hnn^RDIKt_ufWX(?x8ji*Xq$_Oa^(jhNS+c^=mJhQc z@6-T^y*{ofjhtS{ zd46?AjuQzK)^w@Cog^(m>gA3jE-lOI^WwLPUw;v3Ify*EUMsyn(eb?x7kEr)1=}5Y zdT447g7e)tx{v+(1pb55aCuWz3q8{=7mS}d&0nd=53=$T75SBb*u?0`V<@6_`A#re zH)3khKv$`P3u-BZJf#)1pvorEf1b^OU-7g4WaU}DK+&iLsn@NR?vC~{n4}HGWUwUs zZKroV+tuJ8kJ&rl`}<3x*_8m%kgDKlqYw*_{l3?`UC5rjsU_#gcmntdrs~|R8KDNv zz0bx#C9Qz56)k>+pgAjtdHfxTMD>nADC1}f8v|AXlvXm#f=j6RJZE}@dG^EsMPuE( z#>cWpT^`VpMd{32+odyDpQECdy`Tt}o*4tatU|t8rtA;VRB;8DPZb2!Ib9H;l+rx5 z4tFGG#g)uT!tDyV0Q4|RHqN(bA--0NDGj^i<1J>2o3;_2CoZQ{ewUeV*Xu~;{MKmO zXHO#IqH3#iFU2}b5WdT~W&nBSTvG*m;GI$;Ny76=g$*v#IpDfS$I{9a_&*d>X_`qMv&*x?yN&jc3;tSzS|m ztSNlj$es0-hNDb*9nOKd@BQ>ok;-DI2OQUNei)moIUt7-0t_q=^52Y&@Hb-pEWB3XjYmw7%mr-Oqc6xw9-_joA!8g-Rtdo zYlk${iqpF}mWl@TYP?MXEM0mvYY6A0VskX8VhwN_13FyFyPMmpimN;8h`vXRR+}?Y zcRCSfDWy7C52&lGG;tB&Vl8=A(G&K4(p@ES7$l{>OwcXOn-xiTo2nhiUj^?;rHVS8 zf&aiiHXt&E9ADN-e1D-*U+my~iBQZm)S0$LJrRzu_z4vI&`|>CnIU8}>;ysKw0;y{ zqfITwPJ$_S6t@|}la&%f1Ox;DW1sdkLu>^D$DK}Gvi)3vmqYY&z?OrA&}L1^9fJ12at|t zSMEPanI4G_X+Z z4=o)Ov*`+1wN$xpKc9;~=jsqG=!ZFdbLn|CwW8p$DrIanT#6~_~%Jf%F-72!#T zMOpr7O4_nS;dZVL@9Hym>z;Zd)Dc+>0mCA)C5bFEsyl=dtOY0 z9+ico>W-Vt8tCt%LLWc+kqbfAN-{%hQ=$1T>9~bpzPqKBZJju!i&{pG5{A6Y9P=A~ z?K0MvTTao^#qLVx)6nA$9C;7pN2LKA@QM(zSjPo~w;3HkAFNTm-I36B8}{4Ta+2Lz z^ypu?2AMsORTRBDr=fzW?y##W8vVqZ)x5m##OkVV7;yC}>(c+LQ-yM}I_R3J2Zq2W z$5CM*+{uzo+r1mNh&4@nBUZ0!8y1v!hl>;)CQU#JNto@&n8Yo@wt&e!2bCm%r#>BbXhln2a!EO;X#lh$dyhzqF@^U|9^e6p{ z9b;$WZEpWb`6_g<2$Ql8ld}1O`-PP~ z`#g7=IK^ucbTAqq1u&{~jSs$pZ=C>W=iY(h^oaNaL+LT4DsG{`z!skK41Xjc{_3#N z|AL{vdF(M;bV1C(R!HfYg_17{Au5G6npm1xM~Zf%_~@FkLK65)y%lo$$tE-V^xdx$ z)Yv&sz`dxAT%_ZYhKB|deTTWW1bA9~p044m+zn!1*%@+Us-sPh%$M4-*>^get!>M= z2bZ0GM|oH;jwg^a`lex6Y1eRWoXK41sSC|?_*Rs^7uFe3Jnj4F1 z@gb9)r6^5;UeF3ngysxkZ0u5>cRJ{~$1)>ip17Y;kCz-V)EFS(<&P%A-MC>RBwrjp z#n<8!CDXdfSR!l9H=CBYmSAvTAzci~LuD;mAVFmjdA}7Z-wWDx<0Q(jJBomyh--}A zf`R0^oN#lnAji-{w3=an@1DF625CN3sVFlAKiJRr`#7wXV{_U@1^CNp(M&dQan(~4 zeU%#V7m13{zsl6u&leUb&Z|l}WBr0y*ds+HPRo%6or@7jYYSU4ErmF($JnU8E}@1j z83evUJSu{kQ6?bXVs^@D%oD|65ppW+|x%cH!-fcKqyE|GPnu{$>y|28JfqG8WHirN3pA;$ugYG1X9e1ez;(BNyl! zmW4#Vie&XM3gU3I8l(B=fmgn7kbod>H*oi3=?wdpSRF#B#G@X6y1JlcTTh8oW|-K| z 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 E0Z{@$3IG5A diff --git a/tester/log/logback.xml b/tester/log/logback.xml new file mode 100644 index 0000000..80b0fef --- /dev/null +++ b/tester/log/logback.xml @@ -0,0 +1,22 @@ + + + + + + + + /var/user_data/Thomas-developer/Mosaic/tester/log/log.txt + true + + %d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + diff --git a/tester/test_log.txt b/tester/test_log.txt deleted file mode 100644 index f9fe542..0000000 --- a/tester/test_log.txt +++ /dev/null @@ -1,234 +0,0 @@ -Test: test_pass -Stream: stderr -Output: -wrong number of arguments ----------------------------------------- -Test: test_fail_0 -Stream: stderr -Output: -wrong number of arguments ----------------------------------------- - -2024-12-02T05:55:58.032644Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:02:01.242181Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:04:46.092722Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:10:34.729080Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:12:34.226099Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:12:34.237210Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-02T06:22:30.107089Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:22:30.119855Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-02T06:22:58.368281Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:22:58.381072Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-02T06:26:59.743703Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:26:59.756441Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-02T06:35:07.484479Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T06:35:07.497273Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-02T14:13:43.621612Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T14:13:43.635546Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-02T14:19:11.142646Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T14:19:11.154358Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-02T14:19:52.526559Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-02T14:19:52.538420Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-03T02:59:57.307803Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-03T02:59:57.319918Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-03T11:14:06.700856Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-03T11:14:06.713717Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-03T11:15:02.833069Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-03T11:15:02.845364Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-03T11:16:50.971751Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-03T11:16:50.983957Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-03T11:22:09.342877Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-03T11:22:09.354854Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-03T11:27:07.988412Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: com.sun.proxy.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-03T11:27:08.001723Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-09T04:07:54.684532266Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: jdk.proxy1.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-09T04:07:54.695557006Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-09T04:20:55.682148373Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: jdk.proxy1.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-09T04:24:22.045170508Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - - -2024-12-09T07:16:25.530710606Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Message: -Test logic error: jdk.proxy1.$Proxy0.path_find_cycle(com.ReasoningTechnology.Ariadne.Ariadne_LabelList) - -2024-12-09T07:16:25.539373169Z ----------------------------------------------------------- -Test: path_find_cycle_0 -Stream: stdout -Output: -path_find_cycle_0 method called - diff --git "a/developer/tool\360\237\226\211/clean_javac_output" "b/tester/tool\360\237\226\211/clean" similarity index 60% rename from "developer/tool\360\237\226\211/clean_javac_output" rename to "tester/tool\360\237\226\211/clean" index 82835c7..989b007 100755 --- "a/developer/tool\360\237\226\211/clean_javac_output" +++ "b/tester/tool\360\237\226\211/clean" @@ -1,9 +1,8 @@ #!/usr/bin/env bash script_afp=$(realpath "${BASH_SOURCE[0]}") -# remove all files created by make's call to `javac` # input guards - env_must_be="developer/tool🖉/env" + env_must_be="tester/tool🖉/env" if [ "$ENV" != "$env_must_be" ]; then echo "$(script_fp):: error: must be run in the $env_must_be environment" exit 1 @@ -11,8 +10,11 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") # remove files set -x - cd "$REPO_HOME"/developer - rm -r scratchpad/com/ReasoningTechnology/"$PROJECT" + cd "$REPO_HOME"/tester + rm_na log/log.txt + rm_na -r scratchpad/* + rm_na jvm/* + rm_na jdwp_server/* set +x echo "$(script_fn) done." diff --git "a/tester/tool\360\237\226\211/clean_build_directories" "b/tester/tool\360\237\226\211/clean_build_directories" deleted file mode 100755 index cf16126..0000000 --- "a/tester/tool\360\237\226\211/clean_build_directories" +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash -script_afp=$(realpath "${BASH_SOURCE[0]}") - -# Caveat: the 'bash' directory is for built wrapper -# functions. `clean_build_directories` will remove all the files in this -# directory. For bespoke scripts used by the tester, put them in the `tool` -# directory. - -# input guards - env_must_be="tester/tool🖉/env" - if [ "$ENV" != "$env_must_be" ]; then - echo "$(script_fp):: error: must be run in the $env_must_be environment" - exit 1 - fi - -# remove files - set -x - cd "$REPO_HOME"/tester - rm -r scratchpad/* - rm jvm/* - rm bash/* - set +x - -echo "$(script_fn) done." diff --git "a/tester/tool\360\237\226\211/env" "b/tester/tool\360\237\226\211/env" index 07ba8ec..6f8c26b 100644 --- "a/tester/tool\360\237\226\211/env" +++ "b/tester/tool\360\237\226\211/env" @@ -17,88 +17,125 @@ script_afp=$(realpath "${BASH_SOURCE[0]}") if $error_not_sourced; then exit 1; fi if $error_bad_env; then return 1; fi +#-------------------------------------------------------------------------------- +# arguments + + if [[ -x "$1" ]]; then MODE=$1; else MODE=release; fi + export MODE + echo "MODE: $MODE" + +#-------------------------------------------------------------------------------- # so we can do testing export PATH=\ "$REPO_HOME"/tester/tool🖉/\ +:"$MOSAIC_HOME"/release/\ :"$JAVA_HOME"/bin\ -:"$MOSAIC_HOME"\ :"$PATH" -# Use this when leaving open the option to check in edits to the third party project -# sources. (after cloning/pulling the project, build it with sources, the -# classes and links to the sources will be in the scratchpad directory) +# so we can run individual built tests wrappers +export PATH=\ +"$REPO_HOME"/tester/jvm\ +:"$PATH" + +#-------------------------------------------------------------------------------- +# class/source paths + +BASE_CLASSPATH=\ +"$JAVA_HOME"/lib\ +:"$MOSAIC_HOME"/release/Mosaic.jar\ +:"$REPO_HOME"/tester/log\ +"" + +BASE_SOURCEPATH=\ +"$REPO_HOME"/tester/javac🖉\ +"" + +case "$MODE" in + +# Classes, and other-than-tester sources if present, come from the release candidate. This is the normal MODE for regression testing. +# +# Release candidate sources, if present, are for viewing only. If sources are present in the release, but can not be read directly from the jar file, expand the jar file onto the scratchpad and replace that include line with this one: # -# And, when leaving open the option to edit Ariadne sources directly (some -# development workflows might not accommodate this. Be sure that Ariadne was built -# with sources and the scratchpad directory has not been cleaned) +# :$REPO_HOME/release/scratchpad\ # + release) + export CLASSPATH=\ -"$JAVA_HOME"/lib\ -:"$MOSAIC_HOME"/developer/scratchpad\ -:"$REPO_HOME"/developer/scratchpad\ -:"$REPO_HOME"/tester/scratchpad\ -:"$CLASSPATH" +"$BASE_CLASSPATH\ +:$REPO_HOME/tester/scratchpad\ +:$REPO_HOME/release/${PROJECT}.jar\ +:$CLASSPATH" export SOURCEPATH=\ -"$JAVA_HOME"/lib\ -:"$MOSAIC_HOME"/developer/scratchpad\ -:"$REPO_HOME"/developer/scratchpad\ -:"$REPO_HOME"/tester/javac🖉\ -:"$SOURCEPATH" +"$BASE_SOURCEPATH\ +:$REPO_HOME/release/${PROJECT}.jar\ +:$SOURCEPATH" -# For projects who's sources are not be edited, directly expand the project into -# $REPO_HOME/tester/scratchpad before testing. -# -# When Mosaic sources are not to edited then checked back in. -# Be sure to use `Mosaic.jar` that has sources included. -# (cd tester/scratchpad && jar -xf $REPO_HOME/tool_shared/third_party/Mosaic.jar) -# When Ariadne developers source are not to be edited directly -# Be sure to use `release Ariadne.jar` has sources included. -# (cd scratchpad && jar xf $REPO_HOME/release/Ariadne.jar) + ;; + + +# Classes and other-than-tester sources come from developer/scratchpad. This is the normal MODE for the developer when debugging test failures. # -# export CLASSPATH=\ -# "$JAVA_HOME"/lib\ -# :"$REPO_HOME"/tester/javac🖉\ -# :"$REPO_HOME"/tester/scratchpad\ -# :"$CLASSPATH" - -# export SOURCEPATH=\ -# "$JAVA_HOME"/lib\ -# :"$REPO_HOME"/tester/javac🖉\ -# :"$REPO_HOME"/tester/scratchpad\ -# :"$SOURCEPATH" - -# The 'normal' case When outside sources are not viewed in the debugger. This is -# common when the tester's responsibility is to find failed tests, and the -# tester is not debugging anything but the test code. +# While in env_developer, the developer must make the project and gather third party +# tools and sources into the scratchpad for this to work. # -# export CLASSPATH=\ -# "$JAVA_HOME"/lib\ -# :"$MOSAIC_HOME"/Mosaic.jar\ -# :"$REPO_HOME"/release/"$PROJECT".jar\ -# :"$REPO_HOME"/tester/jvm/Test_"$PROJECT".jar\ -# :"$CLASSPATH" + developer) -# export SOURCEPATH=\ -# "$REPO_HOME"/tester/javac🖉\ -# :"$SOURCEPATH" +export CLASSPATH=\ +"$BASE_CLASSPATH\ +:$REPO_HOME/tester/scratchpad\ +:$REPO_HOME/developer/scratchpad\ +:$CLASSPATH" +export SOURCEPATH=\ +"$BASE_SOURCEPATH\ +:$REPO_HOME/developer/scratchpad\ +:$SOURCEPATH" -# so we can run individual built test wrappers -export PATH=\ -"$REPO_HOME"/tester/bash🖉\ -"$REPO_HOME"/tester/bash\ -:"$PATH" + ;; +# Classes and other-than-tester sources come from tester/scratchpad. This MODE gives the tester complete control over what to include in the test environment. +# +# Tester expands everything to be included into the test environment into the scratchpad. +# +# Any changes made to must be exported to the environment the files came from if they are to persist. +# + local) + +export CLASSPATH=\ +"$BASE_CLASSPATH +:$REPO_HOME/tester/scratchpad\ +:$CLASSPATH" +export SOURCEPATH=\ +"$BASE_SOURCEPATH\ +:$REPO_HOME/tester/scratchpad\ +:$SOURCEPATH" + + ;; + +# default + + *) + echo "Unknown MODE: $MODE" + return 1 + ;; + + esac + +echo CLASSPATH: +vl echo "$CLASSPATH" +echo SOURCEPATH: +vl echo "$SOURCEPATH" +echo PATH: +vl echo $PATH + +#-------------------------------------------------------------------------------- # misc # make .githolder and .gitignore visible - alias ls="ls -a --time-style=full-iso" - -# some feedback to show all went well - + alias ls="ls -a" export PROMPT_DECOR="$PROJECT"_tester export ENV=$(script_fp) echo ENV "$ENV" diff --git "a/tester/tool\360\237\226\211/bash_wrapper_list" "b/tester/tool\360\237\226\211/list" similarity index 64% rename from "tester/tool\360\237\226\211/bash_wrapper_list" rename to "tester/tool\360\237\226\211/list" index 0fef9b2..63c55e8 100755 --- "a/tester/tool\360\237\226\211/bash_wrapper_list" +++ "b/tester/tool\360\237\226\211/list" @@ -10,15 +10,14 @@ fi # space separated list of bash interface wrappers echo \ - Test_File_0 \ - Test_Label_0 \ - Test_LabelList_0 \ - Test_Node_0 \ - Test_NodeList_0 \ - Test_Token_0 \ - Test_TokenSet_0 \ - Test_Util_0 \ - Test_Graph_0 \ - "" + File_0 \ + Label_0 \ + LabelList_0 \ + Node_0 \ + NodeList_0 \ + Token_0 \ + TokenSet_0 \ + Util_0 \ +"" diff --git "a/tester/tool\360\237\226\211/make" "b/tester/tool\360\237\226\211/make" index 9f86f68..947d919 100755 --- "a/tester/tool\360\237\226\211/make" +++ "b/tester/tool\360\237\226\211/make" @@ -1,32 +1,52 @@ #!/bin/env bash +set -x script_afp=$(realpath "${BASH_SOURCE[0]}") # input guards - env_must_be="tester/tool🖉/env" - if [ "$ENV" != "$env_must_be" ]; then - echo "$(script_fp):: error: must be run in the $env_must_be environment" - exit 1 - fi +env_must_be="tester/tool🖉/env" +if [ "$ENV" != "$env_must_be" ]; then + echo "$(script_fp):: error: must be run in the $env_must_be environment" + exit 1 +fi echo "Compiling files..." - set -x - cd $REPO_HOME/tester - javac -g -d scratchpad javac🖉/*.java - jar cf jvm/Test_"$PROJECT".jar -C scratchpad . - set +x - -echo "Creating bash wrappers..." - mkdir -p bash - # wrapper is a space separated list - wrapper=$(bash_wrapper_list) - for file in $wrapper;do - cat > bash/$file << EOL +set -x +cd $REPO_HOME/tester + +# Get the list of tests to compile +# wrapper is a space-separated list +list=$(list) + +# make class files +for file in $list; do + javac -g -d scratchpad "javac🖉/$file.java" +done +set +x + +echo "Making jvm scripts ..." +mkdir -p jvm +for file in $list; do + cat > jvm/$file << EOL #!/bin/env bash java $file EOL - chmod +x bash/$file + chmod +x jvm/$file + done + +echo "Making jdwp debug server scripts..." +mkdir -p jdwp_server +for file in $list; do + cat > jdwp_server/$file << EOL +#!/bin/env bash +java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 $file +EOL + chmod +x jdwp_server/$file done echo "$(script_fp) done." + + + +set +x diff --git "a/tester/tool\360\237\226\211/run_tests" "b/tester/tool\360\237\226\211/run" similarity index 75% rename from "tester/tool\360\237\226\211/run_tests" rename to "tester/tool\360\237\226\211/run" index a27f28a..a3bcf3a 100755 --- "a/tester/tool\360\237\226\211/run_tests" +++ "b/tester/tool\360\237\226\211/run" @@ -7,16 +7,17 @@ if [ -z "$REPO_HOME" ]; then fi # Navigate to the bash directory -cd "$REPO_HOME/tester/bash" || exit +cd "$REPO_HOME/tester/jvm" || exit # Get the list of test scripts in the specific order from bash_wrapper_list -test_list=$(bash_wrapper_list) +list=$(list) +echo list: $list # Execute each test in the specified order -for file in $test_list; do +for file in $list; do + echo if [[ -x "$file" && ! -d "$file" ]]; then - echo - echo "Running $file..." + echo "... Running $file" ./"$file" else echo "Skipping $file (not executable or is a directory)" diff --git "a/tester/tool\360\237\226\211/run_jdb" "b/tester/tool\360\237\226\211/run_jdb" deleted file mode 100755 index 8334c1b..0000000 --- "a/tester/tool\360\237\226\211/run_jdb" +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/env bash -script_afp=$(realpath "${BASH_SOURCE[0]}") - -# input guards -env_must_be="tester/tool🖉/env" -if [ "$ENV" != "$env_must_be" ]; then - echo "$(script_fp):: error: must be run in the $env_must_be environment" - exit 1 -fi - -jdb -sourcepath "$SOURCEPATH" "$@" - diff --git "a/tool_shared/bespoke\360\237\226\211/env" "b/tool_shared/bespoke\360\237\226\211/env" index c7829f1..18d2060 100644 --- "a/tool_shared/bespoke\360\237\226\211/env" +++ "b/tool_shared/bespoke\360\237\226\211/env" @@ -37,6 +37,10 @@ fi PATH="$REPO_HOME/tool_shared/third_party/RT-project-share/release/bash:$PATH" PATH="$REPO_HOME/tool_shared/third_party/RT-project-share/release/amd64:$PATH" PATH="$REPO_HOME/tool_shared/third_party/emacs/bin:$PATH" + + # after having installed Itellij IDEA + PATH="$REPO_HOME/tool_shared/third_party/idea-IC-243.21565.193/bin:$PATH" + JAVA_HOME="$REPO_HOME/tool_shared/third_party/jdk-23.0.1" MOSAIC_HOME="$REPO_HOME/tool_shared/third_party/Mosaic" diff --git "a/tool_shared/document\360\237\226\211/Eclipse.txt" "b/tool_shared/document\360\237\226\211/Eclipse.txt" deleted file mode 100644 index 167d14e..0000000 --- "a/tool_shared/document\360\237\226\211/Eclipse.txt" +++ /dev/null @@ -1,22 +0,0 @@ - -The project is originally configured to be used with Emacs as an IDE. The tools -can all be run from a shell inside of emacs. Even when using an IDE what the -shell environment scripts and tools do should be understood. - -I have added a working IntelliJ IDEA configuration, so if you want a modern IDE -it is probably best to go with this. See ItelliJ_IDEA.txt in this directory. - -I've not run Eclipse on the project, if you do, perhaps you can update the notes -here. These things will probably increase your odds of making it work: - 1. open a shell - 2. cd to Ariadne, and source the env_developer - 3. run the tool 'distribute_source' - 3. run eclipse from the command line - 4. give eclipse the 'scratchpad' directory as its source - -Be sure to run `release` after development to update what the tester sees. - -Do the analogous steps if you contribute as a 'tester'. I.e. from -the shell source env_tester instead. Also, you will need to add -distribute_source to tester/tool, as it is currently not there. - diff --git "a/tool_shared/document\360\237\226\211/Emacs.txt" "b/tool_shared/document\360\237\226\211/Emacs.txt" deleted file mode 100644 index 19398de..0000000 --- "a/tool_shared/document\360\237\226\211/Emacs.txt" +++ /dev/null @@ -1,45 +0,0 @@ - -System requirements: - -dnf install libX11-devel libXpm-devel libjpeg-devel libpng-devel libtiff-devel -dnf install gtk3-devel giflib-devel gnutls-devel -dnf install ncurses-devel texinfo -dnf install libacl-devel libattr-devel libgccjit libgccjit-devel - -# install and build script: - -cd "$REPO_HOME"/tool_shared/third_party -mkdir -p emacs/{src,build,bin} - -# We sought stability, and now this. What can I say? It has 'visual-wrap-prefix-mode'. -pushd upstream -curl -L -O https://alpha.gnu.org/gnu/emacs/pretest/emacs-30.0.92.tar.xz -popd - -tar -xf upstream/emacs-30.0.92.tar.xz -C emacs/src --strip-components=1 - -# need to clear the environment -env -i bash - -pushd emacs/src -./configure --prefix="$REPO_HOME"/tool_shared/third_party/emacs - - I gather this warning is unavaoidable? - "configure: WARNING: Your version of Gtk+ will have problems with" - - -# replace nproc with number of processors: -make -j$(nproc) - -# make install installs locally due to the `--prefix` option `./configure` above -make install -make clean - -popd -rm -r emacs/{src,build} - -# Find emacs in the emacs/in directory. Be sure to add it to the path -# in the tool_shared/bespoke/env file: -# PATH="$REPO_HOME/tool_shared/third_party/emacs/bin:$PATH" - - diff --git "a/tool_shared/document\360\237\226\211/IntelliJ_IDEA.txt" "b/tool_shared/document\360\237\226\211/IntelliJ_IDEA.txt" deleted file mode 100644 index 82b21cc..0000000 --- "a/tool_shared/document\360\237\226\211/IntelliJ_IDEA.txt" +++ /dev/null @@ -1,252 +0,0 @@ - -This file describes the local install and configuration of IntelliJ_IDEA for -the Ariadne project. - -The project was/is originally configured to be used with Emacs as an IDE. The tools -can all be run from a shell inside of emacs. Even when using an IDE what the -shell environment scripts and tools do should be understood. - --------------------------------------------------------------------------------- -Some notes - -'project directory' - the directory with the .git file in it. Called $REPO_HOME in - RT scripts. Called $PROJECT_DIR$ (doesn't seem to be reliable) in IntelliJ - file paths. - -'module directory' - for RT projects examples include `~/Ariadne/developer' - `~/Ariadne/tester`. These are independent build environments. - - Careful, if Intellij scans directories it will not hesitate to pull things - from `tool_shared`/third_party or wherever else it finds things, and it will - make a big mess. - -IntelliJ paths on forms: - - I tried using $PROJECT_DIR$ as a variable standing for the project directory, - as this was suggested by an AI. However IntelliJ simply made a directory - with the literal variable name. - - Also tried using $REPO_HOME, as that was defined in the environment IntelliJ was run from. - It had the same effect as $PROJECT_DIR$. - - It will work with `~` for the home directory. So I have been using - `~/Ariadne/...` when typing out paths. - - There will be a browser icon at the right of a form entry boxes that take - paths. The browser tool starts from either /home or at / rather than at the - project. It inserts absolute path names. - -A GUI bug: - - There is a Gnome Linux bug where the drop down menu can stay on top no matter - what other window, application, or what virtual desktop a person is on. You - must go back to the IDEA application window and hit to make it go - away. - -The [OK] button at the bottom of dialogs: - - This closes the dialog. - - To apply changes hit [Apply]. - - [OK] will not save what is on the dialog if [Apply] would fail, but - it still closes it. - --------------------------------------------------------------------------------- -To install ItelliJ - - Download the tar file from - `https://www.jetbrains.com/idea/download/?section=linux` - into the - `$REPO_HOME/tool_shared/third_party/upstream` - directory. - - Expand it into - `$REPO_HOME/tool_shared/third_party` - - cd into the expanded directory, into `bin`, then `chmod u+x` and run `idea_inst`. - - set the env path to include - `$REPO_HOME/tool_shared/third_party/idea-IC*/bin` - - The executable is called `idea`. - - Consider setting a desktop short cut. Consider instead installing it in your - own bin directory. Easily done, just move the directory created by the tar - file expansion there. - - I prefer a user mode install, as there is no reason this tool should need - admin privileges. - --------------------------------------------------------------------------------- -Startup - - ./tool_shared/third_party/idea-IC-243.21565.193/bin/idea & - - Shows: Welcome screen - select "Open" as Ariadne already exists - - Shows: Open File or Project Browser - In top dialog box put full path to project directory. - - Hit [OK] at the bottom. Unlikely, but might be scrolled off the bottom of the screen. - - Shows: main window - Appears after hitting OK from the "Open File or Project" [ok]. - - Has a tool bar at the top. There is a double meat hamburger menu icon - at the left. Hitting this will replace the top bar with a vertical - menu for drop down menus. - - Careful, after the hamburger icon is pressed, the first drop down - menu instantly appears. Slide over to get the other drop downs. - Don't click, slide! - - Under tool bar: - Far left is an icon bar. Then a file browser. And then a big box - describing hot keys. - --------------------------------------------------------------------------------- -Configuration - -If you cloned the Ariadne project, the modules will already be configured, and -also probably some of the run configuration will already be configured. - - ------------- - Setup Project - Hamburger icon > File dop-down > Project Structure > Project - - select project SDK from disk: - ~/Ariadne/tool_shared/third_party/jdk-11 - - ------------- - Setup Modules - - Hamburger icon > File dop-down > Project Structure > Modules - - Shows: "Project Structure" dialog - - Hit the '+' option that shows at the top of the second panel. - - New Module. - - Dialog pop-up - - Name: developer - - Location: (browse to the developer directory) - - alternatively enter the full path, ~/Ariadne, e.g. - - $PROJECT_DIR$ instead of, ~/Ariadne, worked when - entering the first module, but not the second. - - Dependencies: - Select the "Project SDK" from the drop down. - - Careful, the module won't be made until hitting [Create] at the bottom. - - As far as I can tell you can't get this panel again, rather delete and add - a new module if you need to change the entries. - - Shows: "Project Structure" dialog, again, now the third panel with information about the - developer module. - Third panel shows three choices: [Source] [Paths] [Dependencies] - - [Sources] is already selected. - - With Sources there are two panels. - - In second panel, on right side, the module root should show at the top. - Under if it lists any sources, use the button at the far right of the - listing to x it out. - - The first panel now shows a file browser for the module. - - Select the `javac` directory with a single click. Then, and only - after, look immediately the directory lists and click on [Sources] - - "Source Folders" will now appear in the second panel. The - javac folder will be listed. - - hit: [apply] at the bottom (or the form will reset to defaults next time) - - - Slide over to [Paths] - Copmiler Output - select [Use Module Compile Output Path] - Output Path: $PROJECT_DIR$/developer/scratchpad - Test Path: $PROJECT_DIR$/developer/test - - leave the exclude output checkbox, that means to exclude from repo - and from indexing for search - - hit: [apply] at the bottom - - ------------- - To add an external tool, for example tester/tool/make: - - This is how we integrate the local tools. - - Note, even if a shell script runs then runs a java program, that jave program - was compiled with debug flags, and run in debug mode, it can't be debugged. It - won't stop at break points, etc. For that an 'application' must be added see - the next section. - - Hamburger> Run > edit configurations - Shows Run/Debug configurations dialog - Upper left hit '+' - Shows drop down - chose [Shell Script] second from bottom - Shows dialog, for example: - Name: tester make - Script Path: ~/Ariadne/tester/tool/make (better to chose with the browser tool) - Script Options: tester make - Working Directory: ~/Ariadne (location of the env source scripts that env_run uses) - Environment variabls: (none, env_run will source env_tester) - Interpreter: /bin/bash (left to default) - - ------------- - To add a program for debugging. - - Humburger > Run > edit configurations - Shows Run/Debug configurations dialog - Upper left hit '+' - Shows drop down - chose [Application] first choice - Shows dialog, for example: - Name: Test_Graph_0 - - next line are two boxes, they are not labeled, the defaults show: - [ module not specified ] [ -cp no module ] - I selected:: - [ java 11 SDk of 'tester' module] [ -cp tester ] - This can be confusing, as the modules are 'tester' and 'developer', but - here it asks for an SDK! Then the next box says it wants a class path, - but it wants a module name! - - next line one box, not labeled - [ main class [] ] - Note icon at right, it will give a list of class names, here in the tester module, - that have main calls, select one. - - next line, again not labeled - [ Program Arguments ] - Test_Graph_0 has no arguments so I left it blank. - - Working Directory: ~/Ariadne - - Environment Variables: - Left blank because the executable itself does not make use of any. I do - know at this point if variables set in the environment IDEA ran in are - inherited. - - 'Modify Options' with a drop down menu. (At the top right of the configuration dialog) - Scan down for the `Java` section. - Check: 'Do not build before run' - (To build this example, go to the Run menu and run `tester make'. Or run make directly - from a console prompt. Be sure to source env_tester first.) - - Next go to main window file browser, click on the file you want to debug, click on the line - to set a break point. Right click to get a menu, and - diff --git "a/tool_shared/document\360\237\226\211/install.txt" "b/tool_shared/document\360\237\226\211/install.txt" index 1e387cb..0f6496e 100644 --- "a/tool_shared/document\360\237\226\211/install.txt" +++ "b/tool_shared/document\360\237\226\211/install.txt" @@ -21,47 +21,10 @@ into RT-icommon, so this is not optional. ln -s "$REPO_HOME/tool_shared/third_party/resource/document" see_also ---------------------------------------- -jdk-23 - - cd "$REPO_HOME/tool_shared/third_party/upstream" - - # source for the 11 version used before, now upgraded to 23 - #curl -C - -o OpenJDK11U-jdk_x64_linux_hotspot_11.0.16_8.tar.gz https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.16+8/OpenJDK11U-jdk_x64_linux_hotspot_11.0.16_8.tar.gz - curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O https://download.oracle.com/java/23/latest/jdk-23_linux-x64_bin.tar.gz - - cd .. - tar -xzf upstream/jdk-23_linux-x64_bin.tar.gz - - edit $REPO_HOME/tool_shared/bespoke/env, and update JAVA_HOME: - export JAVA_HOME="$REPO_HOME/tool_shared/third_party/jdk-23.0.1" - - ----------------------------------------- -Mosaic - for testing - - > cd $REPO_HOME/tool_shared/third_party - > git clone https://github.com/Thomas-Walker-Lynch/Mosaic.git - - This will have already been done: - - $REPO_HOME/tool_shared/bespoke/env will have: - export MOSAIC_HOME="$REPO_HOME/tool_shared/third_party/Mosaic/release" - - $REPO_HOME/tester/tool/env, will have Mosaic - - export PATH=\ - "$REPO_HOME"/tester/tool/\ - :"$JAVA_HOME"/bin\ - :"$MOSAIC_HOME"\ - :"$PATH" - - export CLASSPATH=\ - "$JAVA_HOME"/lib\ - :"$MOSAIC_HOME"/Mosaic.jar\ - :"$REPO_HOME"/release/"$PROJECT".jar\ - :"$REPO_HOME"/tester/jvm/Test_"$PROJECT".jar\ - :"$CLASSPATH" +see ~/RT-project-share/document🖉 for: + jdk-23; and one or more IDEs: IntelliJ IDEA, Eclipse, Emacs + -- 2.20.1