From fed021d4760fc67a2895db616340a2ce700efa86 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Mon, 7 Oct 2024 07:43:54 +0000 Subject: [PATCH] groovy class not reocgnized by jvm, switching to Java --- developer/{executor => executable}/env_build | 9 + developer/executable/make.sh | 36 ++++ developer/executable/release | 59 ++++++ developer/{executor => executable}/version | 0 developer/executor/make.sh | 9 - developer/executor/release | 51 ------ developer/groovy/build | 55 ------ .../AriadneGraph$_all_DAG_DF_closure7.class | Bin 2210 -> 0 bytes .../AriadneGraph$_all_DAG_DF_closure8.class | Bin 2214 -> 0 bytes ...aph$_markup_graph_f_descend_closure4.class | Bin 2019 -> 0 bytes ...aph$_markup_graph_f_descend_closure5.class | Bin 2115 -> 0 bytes ...Graph$_run_build_scripts_f_closure12.class | Bin 2054 -> 0 bytes ...Graph$_run_build_scripts_f_closure13.class | Bin 3900 -> 0 bytes .../AriadneGraph$_wellformed_q_closure1.class | Bin 1736 -> 0 bytes developer/groovyc/AriadneGraph.class | Bin 18824 -> 0 bytes developer/groovyc/AriadneGraph.groovy | 170 ++++++++++++------ developer/groovyc/BuildGraph.groovy | 58 ++++++ developer/javac/PaintItBlack.java | 5 + developer/jvm/Ariadne.jar | Bin 0 -> 30833 bytes developer/shell/build | 3 + {executor => executable}/env_base | 0 {executor => executable}/env_dev | 7 +- {executor => executable}/env_pm | 0 {executor => executable}/env_tester | 0 {executor => executable}/version | 0 .../AriadneGraph$_all_DAG_DF_closure10.class | Bin 2408 -> 2411 bytes .../AriadneGraph$_all_DAG_DF_closure7.class | Bin 2210 -> 2210 bytes .../AriadneGraph$_all_DAG_DF_closure8.class | Bin 2214 -> 2214 bytes .../AriadneGraph$_all_DAG_DF_closure9.class | Bin 2408 -> 2408 bytes ...neGraph$_good_dependency_q_closure10.class | Bin 2393 -> 2393 bytes ...neGraph$_good_dependency_q_closure11.class | Bin 2393 -> 2393 bytes ...riadneGraph$_mark_node_form_closure3.class | Bin 2056 -> 2056 bytes ...riadneGraph$_mark_node_form_closure4.class | Bin 2056 -> 2056 bytes ...aph$_markup_graph_f_descend_closure4.class | Bin 2019 -> 2019 bytes ...aph$_markup_graph_f_descend_closure5.class | Bin 2115 -> 2115 bytes ...aph$_markup_graph_f_descend_closure6.class | Bin 3313 -> 3282 bytes ...aph$_markup_graph_f_descend_closure7.class | Bin 3313 -> 3313 bytes ...iadneGraph$_newer_than_all_closure11.class | Bin 2708 -> 2708 bytes ...iadneGraph$_newer_than_all_closure12.class | Bin 2708 -> 2708 bytes ...Graph$_run_build_scripts_f_closure12.class | Bin 2054 -> 2054 bytes ...Graph$_run_build_scripts_f_closure13.class | Bin 3900 -> 3900 bytes ...Graph$_run_build_scripts_f_closure14.class | Bin 2084 -> 2084 bytes ...Graph$_run_build_scripts_f_closure15.class | Bin 2084 -> 2084 bytes .../AriadneGraph$_wellformed_q_closure1.class | Bin 1736 -> 1736 bytes .../AriadneGraph$_wellformed_q_closure2.class | Bin 2149 -> 2149 bytes .../AriadneGraph$_wellformed_q_closure3.class | Bin 2149 -> 2149 bytes release_candidate/AriadneGraph.class | Bin 18824 -> 20496 bytes release_candidate/build | 19 +- tester/document/what_the_tests_do.txt | 17 ++ tester/executor/make.sh | 3 +- tester/test2/HelloWorld.java | 5 + .../TestGraph$_get_node_f_list_closure2.class | Bin 0 -> 1858 bytes .../TestGraph$_get_node_f_list_closure3.class | Bin 0 -> 1854 bytes .../TestGraph$_java_to_class_closure1.class | Bin 0 -> 3090 bytes .../TestGraph$_java_to_class_f_closure1.class | Bin 0 -> 3098 bytes tester/test2/TestGraph.class | Bin 0 -> 4432 bytes tester/test2/TestGraph.groovy | 70 ++++++++ tester/test2/env_test | 11 ++ tester/test2/test.sh | 11 ++ 59 files changed, 424 insertions(+), 174 deletions(-) rename developer/{executor => executable}/env_build (76%) create mode 100755 developer/executable/make.sh create mode 100755 developer/executable/release rename developer/{executor => executable}/version (100%) delete mode 100755 developer/executor/make.sh delete mode 100755 developer/executor/release delete mode 100755 developer/groovy/build delete mode 100644 developer/groovyc/AriadneGraph$_all_DAG_DF_closure7.class delete mode 100644 developer/groovyc/AriadneGraph$_all_DAG_DF_closure8.class delete mode 100644 developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure4.class delete mode 100644 developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure5.class delete mode 100644 developer/groovyc/AriadneGraph$_run_build_scripts_f_closure12.class delete mode 100644 developer/groovyc/AriadneGraph$_run_build_scripts_f_closure13.class delete mode 100644 developer/groovyc/AriadneGraph$_wellformed_q_closure1.class delete mode 100644 developer/groovyc/AriadneGraph.class create mode 100644 developer/groovyc/BuildGraph.groovy create mode 100644 developer/javac/PaintItBlack.java create mode 100644 developer/jvm/Ariadne.jar create mode 100755 developer/shell/build rename {executor => executable}/env_base (100%) rename {executor => executable}/env_dev (78%) rename {executor => executable}/env_pm (100%) rename {executor => executable}/env_tester (100%) rename {executor => executable}/version (100%) rename developer/groovyc/AriadneGraph$_all_DAG_DF_closure9.class => release_candidate/AriadneGraph$_all_DAG_DF_closure10.class (79%) rename developer/groovyc/AriadneGraph$_good_dependency_q_closure10.class => release_candidate/AriadneGraph$_good_dependency_q_closure11.class (81%) rename developer/groovyc/AriadneGraph$_mark_node_form_closure3.class => release_candidate/AriadneGraph$_mark_node_form_closure4.class (83%) rename developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure6.class => release_candidate/AriadneGraph$_markup_graph_f_descend_closure7.class (86%) rename developer/groovyc/AriadneGraph$_newer_than_all_closure11.class => release_candidate/AriadneGraph$_newer_than_all_closure12.class (88%) rename developer/groovyc/AriadneGraph$_run_build_scripts_f_closure14.class => release_candidate/AriadneGraph$_run_build_scripts_f_closure15.class (84%) rename developer/groovyc/AriadneGraph$_wellformed_q_closure2.class => release_candidate/AriadneGraph$_wellformed_q_closure3.class (84%) create mode 100644 tester/document/what_the_tests_do.txt create mode 100644 tester/test2/HelloWorld.java create mode 100644 tester/test2/TestGraph$_get_node_f_list_closure2.class create mode 100644 tester/test2/TestGraph$_get_node_f_list_closure3.class create mode 100644 tester/test2/TestGraph$_java_to_class_closure1.class create mode 100644 tester/test2/TestGraph$_java_to_class_f_closure1.class create mode 100644 tester/test2/TestGraph.class create mode 100644 tester/test2/TestGraph.groovy create mode 100644 tester/test2/env_test create mode 100755 tester/test2/test.sh diff --git a/developer/executor/env_build b/developer/executable/env_build similarity index 76% rename from developer/executor/env_build rename to developer/executable/env_build index 6c53847..a651d09 100644 --- a/developer/executor/env_build +++ b/developer/executable/env_build @@ -17,10 +17,19 @@ fi export JAVA_HOME="$REPO_HOME/tool/jdk-11" export GROOVY_HOME="$REPO_HOME/tool/groovy-4.0.9" + export PATH=\ +"$REPO_HOME"/developer/shell\ :"$JAVA_HOME"/bin\ :"$GROOVY_HOME"/bin\ :"$PATH" +export CLASSPATH=\ +"$REPO_HOME"/developer/jvm\ +:"$REPO_HOME"/developer/jvm/Ariadne.jar\ +:"$JAVA_HOME"/lib\ +:"$GROOVY_HOME"/lib\ +:"$CLASSPATH" + export ENV_DEV_BUILD=true echo "${BASH_SOURCE[0]}" "complete" diff --git a/developer/executable/make.sh b/developer/executable/make.sh new file mode 100755 index 0000000..fe471b5 --- /dev/null +++ b/developer/executable/make.sh @@ -0,0 +1,36 @@ +#!/bin/env bash + +if [ -z "$ENV_DEV" ]; then + echo "make.sh:: script can only be run from the developer environment" + return 1 +fi + +# Ensure we are in the right directory +cd "$REPO_HOME"/developer + +# Clean the scratch_pad and jvm directories +echo "Cleaning scratch_pad and jvm directories..." +rm -rf scratch_pad/* +rm -rf jvm/* + +# Compile all files +echo "Compiling files..." +groovyc groovyc/*.groovy -d scratch_pad +javac javac/*.java -d scratch_pad + +if [ $? -ne 0 ]; then + echo "Compilation failed." + exit 1 +fi + +# Create a JAR file from the compiled class files +echo "Creating JAR file..." +mkdir -p jvm +jar cf jvm/Ariadne.jar -C scratch_pad . + +if [ $? -eq 0 ]; then + echo "JAR file created successfully: jvm/Ariadne.jar" +else + echo "Failed to create JAR file." + exit 1 +fi diff --git a/developer/executable/release b/developer/executable/release new file mode 100755 index 0000000..74690cb --- /dev/null +++ b/developer/executable/release @@ -0,0 +1,59 @@ +#!/usr/bin/env groovy + +// Access the environment variable REPO_HOME +def repo_home = System.getenv('REPO_HOME') +def env_dev_build = System.getenv('ENV_DEV_BUILD') +def arg_error = false +if (!repo_home) { + println "release:: REPO_HOME is not set." + arg_error = true +} +if (!env_dev_build) { + println "release:: ENV_DEV_BUILD is not set." + arg_error = true +} +if (arg_error) { + System.exit(1) +} + +def release_dir = "${repo_home}/release_candidate" +def release_dir_file = new File(release_dir) +if (!release_dir_file.exists()) { + release_dir_file.mkdirs() +} + +// Function to use 'install' command for copying and setting permissions +def install_file(source_fp, target_dp, perms) { + def target_file = "${target_dp}/${new File(source_fp).name}" + try { + def cmd = ["install", "-m", perms, source_fp, target_file] + def process = cmd.execute() + process.waitFor() + if (process.exitValue() != 0) { + println "Error: Failed to install ${new File(source_fp).name} to ${target_dp}" + println process.err.text + System.exit(1) + } + println "Installed ${new File(source_fp).name} to ${target_dp} with permissions ${perms}" + } catch (Exception e) { + println "Error: ${e.message}" + System.exit(1) + } +} + +println "Starting release process..." + +def build_fp = "${repo_home}/developer/groovy/build" +def ariadne_class_files = new File("${repo_home}/developer/groovyc").listFiles().findAll { + it.name.startsWith("AriadneGraph") && it.name.endsWith(".class") +} + +// Install the build script +install_file(build_fp, release_dir, "ug+r,ug+x") + +// Install all matching class files +ariadne_class_files.each { class_file -> + install_file(class_file.absolutePath, release_dir, "ug+r") +} + +println "Release process completed successfully." diff --git a/developer/executor/version b/developer/executable/version similarity index 100% rename from developer/executor/version rename to developer/executable/version diff --git a/developer/executor/make.sh b/developer/executor/make.sh deleted file mode 100755 index 985c122..0000000 --- a/developer/executor/make.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/env bash - -if [ -z "$ENV_DEV" ]; then - echo "make.sh:: script can only be run from in developer environment" - return 1 -fi - -cd "$REPO_HOME"/developer/groovyc -groovyc AriadneGraph.groovy diff --git a/developer/executor/release b/developer/executor/release deleted file mode 100755 index c8ab7f4..0000000 --- a/developer/executor/release +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env groovy - -// Access the environment variable REPO_HOME -def repo_home = System.getenv('REPO_HOME') -def env_dev_build = System.getenv('ENV_DEV_BUILD') -def arg_error = false; -if(!repo_home){ - println "release:: REPO_HOME is not set." - arg_error = true -} -if(!env_dev_build){ - println "release:: ENV_BUILD_VERSION is not set." - arg_error = true -} -if(arg_error){ - System.exit(1) -} - -def release_dir = "${repo_home}/release_candidate" -def release_dir_file = new File(release_dir) -if (!release_dir_file.exists()){ - release_dir_file.mkdirs() -} - -// Function to use 'install' command for copying and setting permissions -def install_file(source_fp, target_dp, perms){ - def target_file = "${target_dp}/${new File(source_fp).name}" - def cmd = ["install", "-m", perms, source_fp, target_file] - def process = cmd.execute() - process.waitFor() - if( process.exitValue() != 0 ){ - println "Error: Failed to install ${new File(source_fp).name} to ${target_dp}" - println process.err.text - System.exit(1) - } - println "Installed ${new File(source_fp).name} to ${target_dp} with permissions ${perms}" -} - -def build_fp = "${repo_home}/developer/groovy/build" -def ariadne_class_files = new File("${repo_home}/developer/groovyc").listFiles().findAll { - it.name.startsWith("AriadneGraph") && it.name.endsWith(".class") -} - -// Install the build script -install_file(build_fp, release_dir, "ug+r,ug+x") - -// Install all matching class files -ariadne_class_files.each { class_file -> - install_file(class_file.absolutePath, release_dir, "ug+r") -} - diff --git a/developer/groovy/build b/developer/groovy/build deleted file mode 100755 index 2fb7a39..0000000 --- a/developer/groovy/build +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env groovy - -// Function to load the graph class dynamically -def include_a_class( a_class_fp ){ - def class_loader = this.class.classLoader - try{ - return class_loader.loadClass(a_class_fp) - } catch(Exception e){ - return null - } -} - -// Shell User Interface to the build function -def build(graph_definition_fp, root_node_labels){ - - // Print summary of what we are doing - println "Summary: Building targets for graph '${graph_definition_fp}.class'" - if (root_node_labels.isEmpty()) { - println "No build targets specified. Please provide root node labels to build." - System.exit(0) - } - println "Building targets: ${root_node_labels.join(', ')}" - - // Load the dependency graph class from arg[1] - def graph_definition_class = include_a_class(graph_definition_fp) - if(graph_definition_class){ - println "build:: loaded ${graph_definition_fp}.class" - } else{ - println "build:: failed to load ${graph_definition_fp}.class" - System.exit(1) - } - - // Get the node_map and node_f_list from the graph class - def node_map = graph_definition_class.get_node_map() - def node_f_list = graph_definition_class.get_node_f_list() - println "node_map: ${node_map}" - println "node_f_list: ${node_f_list}" - - // Create an instance of AriadneGraph, and run the build scripts - def graph = new AriadneGraph(node_map ,node_f_list) - graph.run_build_scripts_f(root_node_labels) -} - -// Entry point for the script -if(args.length == 0){ - println "Usage: ./build [root_node_labels...]" - System.exit(1) -} - -// Get graph definition file and root node labels -def graph_definition_fp = args[0] -def root_node_labels = args.length > 1 ? args[1..-1] : [] - -build(graph_definition_fp, root_node_labels) - diff --git a/developer/groovyc/AriadneGraph$_all_DAG_DF_closure7.class b/developer/groovyc/AriadneGraph$_all_DAG_DF_closure7.class deleted file mode 100644 index 8857e4d2ef542d233efbb9075e1d99df44bea14b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2210 zcma)7TT|Oc6#mvW2ozzvm?U+YrcFZt+YmRsg+M}UOaP}QNilI6dQoM2Z4|`HBgxG0 z2RhRq()aX6nLPA0Gx<%OPS08bL=ZE)tXAiK&Uen)H~+o*2f!UP7_OHb(`X64;uzhn zaow;ieW|pfFD>g$%XWJXzoURLWIB#*@9q^XLv)H|pQ9koFl{@XV$*K%Eu-fa11YB` zJadN^SGeGg;qlgy#sHZLd%WdqFpNdHX3)aI3Wgcf;}99{PE}tRyM`auSICVG}W}=|l-RWArjwy<}v&D*N?NtP& z*EX75L4nLPY}<1^8VH7;!_k{!*WTvEHSTTMtyM#`Ebfk1ZF{@d4R>A5b4<|*Q%)#u z>~(pV8HiWH$ps3sf;H3Q^BQJwOT{#bsX=^9)%67!X2bEFIRIhPfslqz@aZU(=rbBA znr%C5>1_p>fhKqDQr@tqN69pK{7pDKlyEAi%Y$C7!g)7;_v)_o$ut{g0tb(-P!&Umq z+xxgiJbC+oZn6GN`im3wLtGE6FA_)clKDSzWgnA;SNI%wNt77AqjON&U{Cu#F8Pv2 zK9cyN?}O3XeUo@H+6j`EUWWpE(vlyc=FCP_)tv}p)n8{(!{0tqdc08UMkV(K*XqRRH#RuH=$NoIyW z(3$>_zNa_J2K!rsYbxw_k89(JB-Jj)o+|jC5Otx@_>a)%6OYl-m`) zy~_)0TyWR&dE;24k4!~9-U&1q#^PKv7*SyjgADpfhz$3p%P*`wD+udJ?FFy<3uh_Y z*|RhQmtZjTdA?QOVYph3Cb-F)+~uOq7Z}nLB;wokqGNepNi-!xt{j^*Z#v}PmVyct z%96fjnq*<4$iTK4`tRGq_7@ozFBJJXQDv(PQx`Ijtr{4^6&)#DH86~kK_oEFkn-EM z$8f70t#2&+l)|tnyFPbIf+|5pVHiDIPlijTvKfFti8f@BkYbpOi8BTdhRd-CXn2ny z+2TI6$aIXJfeGB!aSM|SgAQ-{mA2jV2QZza4hO?*98`O|9jDu}MPYBQP!f&(lA!dO zR-J3elbM>7zUR|GF#H&e-WGduhZi=u-2{)BSMgn2w4#(#id*{~ z9%Y8&rD$@Yf~sJ}_W6Q=S=`YvgThEZ-lysY0t|D}_|6@GsOeD1zz6tnluGmw;VZb^ zYS*M|I#!JnW&>33N-!ALk6MuGA-tw^cTc98S|c+Nh|+*iS*%{;GmH~bQ8bTPYMx#n zSPeu~9z*5KDVTdi%Krftb==2i40q!YJ=!>xx@&j*<$a&4owU@jI)to-C59n2c*lV- zW} zEeBb*oT^3dO3mS0>R=ct+k!vt?$)>)QpPufN1|$bHi;|=A=RFhg4WVdulY8tPAF@X z1U)3ZDsf_uJQV72q9LQaX%s2ditM^|zG^F9>E)yO4cH#;5@0D>2K`8;6KV?rXn z-=8pw49!6w@yBqP&gb;^6iK20W4ZjypLlb2J~f`onSbEgc5J;JQeLE$t$k|p*>|Oh|mb=q4u|-?K#Rjg?pGMuF^k>XDWAq&qotK zlc7VbzWf#I<^10mQPe{`eqR0!>-htG8JPc$6loHM|3yZ_qcp=NDxtkJeN{ZELwv1- i>4xv=)QPI{9-zvbJ*ti&{6Mz^G+6Xi5(=#>a{mK%X;s4j diff --git a/developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure4.class b/developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure4.class deleted file mode 100644 index 062667b5356fd56352fe31e0ccddd1e098e372ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2019 zcma)6U31$+6g}%Wk)tZHNlGA4N&wTuc3KlCw8bgKF>UJNv`~jY`{GfgwWCJf^+>X3 z@&}mVhwxrtCS>{mkDcK+F${Ml#g!W|Wi+$ey?gK3`*H65>z`+T0Jw%n443PkW7>jm zd*f_rAb?Xkr)K_y?m5?L^;yvhv*BWb8%mSHK~b%xco))RAN zM(#e?f5NSx_PBIbX5btQhCk^hD1tlTYtubhw4k7F` z7}#TmnN3GH!58UXob{o!XJ7$~INu^3;|M({&jxrQ|CmT@2Gb9@K*z-kBmYfvA+0rBQ$24ttKMj;>dm!aiyW za;$4wT*C^(?7ozN9}wFZeoVgWh><+x)g2xjNc*lSY?u4RmXt)!S|XNq;5nj~luQ`z z9u0W%GFERU!-)-4>}@CDH3RSC10C<7n4iIil$S^$y@C@+F}Dn?Vr_vkQewzB0mJ#V zs5yN#_jxbCs!QC<9MvpTWaWTiN^>VlG8GW6T^XA*MoFr#ppIq<{EInH{65a3X(< zNE+L=W8}*eSQZ~qz>yzYWUc&IEg$3BLgr`W$|tz_^jF+!Rh}cSq$jxjsP!9eRgQ5t zg5M0T(+F^BJImw|>KVvS35 Ix`=oG1%W3ayZ`_I diff --git a/developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure5.class b/developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure5.class deleted file mode 100644 index 5d177fd8637b7781a4db85fc6eede32602ed9d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2115 zcma)7ZC4vb6n-X2S-M?F3Y1E%6*UEtKqG3cLW@G=O_yS!Qj0HphRq~wS!Uv9!#Vv4 z{t&;{H_Y*aUwe+f$>Z@(b{m3OPyI48x%WQz^|_lr|Ni|C0C(Up%q<5VuS&5V@Wx@@ zIp)DptKro3FQ?{IMbj0s>bSmYwgPe60Am=f2TGkhE&E*7%aurDAk8qVf_m9iRdL8$ z&2nrNv}EWVi}JdVBH*E@b`clIRd4iL5rSdzWoa;2y+8vO8OD=SXPBO`pYRhNrMrFb zM7ZJNexYAx;Swx{oUdH&JCe$9e10H&hO2gO#XF)V0wG1Q}NPkd65BPR@yt1H z#zu=4-p0I%GTvcGc~s*lRciM!_4*4=gaMb$nhK83_Kti^;ti8Ve23t9!tZvtyCp*2 z;UvQZHLkb0U6rQ#S?1B`43Kn?+{EC~b6xKUDdasYnYfFO7=|>tyB--ziStelZ($iL zx`h=BIb7B}U1gX_9Am~Z?AANb;-J{YpLC&m5N@qq|p$;3`X_&u-bk;$@@O7lTUTKyrShI_Qd z8?mjmDe3Fo>5?FIc2(+s1W(qZ0;tqo)e2m(=J^8iG@T46L!@&l{aFEWrXCyJ-(v)$ z^xrc;`Y~Lg^AY{}9BEvjd#qTR{SB|oEo3G#Mdw#so5(!+k>m_t(pe<0AoQ!aPPcx& zh8v{Quh;37>b!KkG)al;vG)pTv@TmJ{(@_#m~LaPjd!1sD22y#>STcDogm|pX*Wm~ z?{$JO+{R7P>2#;aULyu$f7(-&q7}(w^ghY8@Ao_U$u2%mel&id$WHOWztIEz=v)RL zVu3I^`U;_SIn%{cd_0o+fzoK>lV?9+%`QDhR!iHkAKO1;t#pd*$o*FYpsgAH3!?@$ qa*SI3AoiD|TW6DLV^14{+V?e`CP{UiK^ojQbZ1C1gm3AUg7FV~&?zSX diff --git a/developer/groovyc/AriadneGraph$_run_build_scripts_f_closure12.class b/developer/groovyc/AriadneGraph$_run_build_scripts_f_closure12.class deleted file mode 100644 index 00e782195670cd8204c6c5933ab8eb6b5d80bee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2054 zcmb7FYj4|B7=BKY)~V+JdX~|5_=aZ; z_ba+La`fKFvirJkde$)T^*!CRU4P{9l}i#B!~DQ=-J@gGHk^Ulie5>`GAy~?KsDVy z-#13S8f%fiz&hmW26wn;1iU}7m?Brn*cT%UhJ}9y!Js6~B+QVb6xa-BtJ*!|$WTXt zWviOy2hH8uj)F5#7>X4?FapbL*@o}8ojsSKuB9fx_iSzkmg`Wmv2K$=(slB%)nZ_~ z4AWOF#|o}9EXE;2a&GnRk!3Rik(3A&CCtmn;VeTg*tdL!Wi6T3zf^({%<1kZ;9lFI zL>!Ydl%5X6a7Gv2BP4{g@3suvX1I`ovzBJRn99kxsGY#GoI(3=XiIpRNDb*uWGdm6 zQ_@IZ!mE^Zxx8G?<8=n)@diV!diUx0Nl|3mjJR8rv4AR-VMqW1+sUJzrH;-JjcI_7 z2;pd8IqK16we9qe+YT|eXP8{VGQ&*Ibpt=30buwhNsQ$jxd&X`;=#V#-!z=Q&Hakz zx(B0SvZ^t%1pHHm+s8wmqTWvO9UF+^bgY0k6{vVq#zm|Yrg4c17b!68RR33-XvtyS z7*m))8uzGzxA9Ji7<`vuDxjnt8mh{G2c2+Ahyf$)eunea+9{`#SJaYuGKkgYN$p8D zghEQHiK{ZoxW=%OR;KZ?=!C0h?Kt3KovikaA(czQ2Mn`f&L$ygdnL;i=kj;>6s%%R z#)oJrm_uO(8Qfr~rUFSBdI=k}dd3+>E8|)+e3WGEzi$x*ZG0?a6Q4wmCwVE@!WHr2 zCW9=h5cQlGk|e9Ay6i9QNo({8{b`C4KBKm>!)8{njoUIh_?+glMU;zW;+lrNW6;N; zXY*}wFcdV);WtNzJ?_PlS?Uk-V9OZB&q~{&Js&c`X{Qx#IO5|$JA!hf8KQJL?#MIw zx+VM-*T#bvz4oy}MahAHAybq^m4M>6DB>AvO(CbPN#_^z^ggom1EhLm=^>u|o~{gc z=q!igX`I7z^aOJCJkHZQaeIMo8M?oSm*^C3?$Gwh(0`@=6BfF;$0&ERjn33#yw=T@ zDxGewbfNPQwMX=^#C_7spc{H3f9&Tl-nqzr60d^GB3>~^5U<2h)<{Q0S*$<6^-|_L z88_*BZZ~AfzYIy4sIeZ#=*)5r|=zPHNJ*-!U&?v&ir%ZpZ$L^e-~XonS{O i3v%w#DU(#h$rE8;hEf@`_=;{BNccL|c#EDISo#zE|2oA0 diff --git a/developer/groovyc/AriadneGraph$_run_build_scripts_f_closure13.class b/developer/groovyc/AriadneGraph$_run_build_scripts_f_closure13.class deleted file mode 100644 index d9301b88e037dc014c308e34289b039ddc97aa5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3900 zcmb_eYj+!072Vg8t+6tV9XV-mTZ*8jv1BJAeFnP;j@>kMQPL2l4o(3vlCG?Y$1}>z z$gO#mXK8s;%EP7QUCN^$!YlPMlrOyd0oDT6;veuQV6oVDW@L}!Nl4b>%iKHX-h1x3 z=j^l3dF?;zzXotGUKSWT>Y7Hwmd9PA-5RO79lKiVm{z0e)m^jgd(~#OZaH4Zl?U(4 zKnM&ixQ?^DQnCztp)?aNWsnjWcie?i-D${{(eX;rF6#5mC0RNyZRr}mY;2t9rK!gMKPXFk4{vX!*RcY?L~_X_d;R=TDw1%<0$xT_Ce8-J0V`fxYGU zgHFq)bfsOFlLCVyo^SYOea138Z`N))0>yITBW2T)b>DPsIwac5^OC*O9zGx`63a_%tFvI*rR77VS-Y_^Yt!bYQI{FKS)jk>IKJl-=>kv2O)~9e zXHk|;NWbMY9yIKRCB2cd<1BXC@z7L!*R&Vnk}U_%th8l(G1@*`h`lR1pxjb1eL1OP zA4apd9fg5D6zQ^XgFt2Ux&jotB7#)>)<~pd9Q$*0-vNQ1(SnAzC|`n@s2iRyuqW=5 zu9|Z??!;X=?z)@MOLF=~j)xDPWehU7m-!Q9Ukub4yj7srGHTM&Kuqmekp3yxX-n5% z5x70+_U-S|aTrH(#PZv=+z{TK!BK%i0vk+B@9Ykoro=hfa5Fdovzky@|r|E&*tG5780? zOT&BB6B+hi)D(p=(=;@4=u;?2w++9gVL{;F)!jBNUx;FPZGxK*EQYgd&?cLe04YQ!zwI!t~Jy|URf zOlrvgf35DaTXHUaG)MG(Od!jonCmtQsnG(lJTyXCCFl!SE{vew3k)-F;<>f4M3&Qd zAlf#xCA|V6E5OtER2CEXw7?CjMc6pY<}8sClP}WoS$s~R@$)(cu}f9^FA9t%;xeIM z$>2-GP1n@0+c_M+KD4%Q?G2EQFXJm&Jd3Y}iZ|Y+V--)Sh3DvD<<79uDuRupXiIIq ztSGZf+{9$k#tgo}Vrm5?T*tTYLKfe|w+XhH0EfA3z%g6(&CGbdn_UH; zT5&pVT|U56W#yXgwj$xOhl31QnpL(BslguAuK|Nu6-kayBZnbY>OQXT#vXpZ%fC}3 z{9cZ`i(})j;C1^a(!=Ru^%uBlIDPgfL0$hIzeQ>VPv4ANII7v}aVs^b*&8_P31;fP z6s38*G1M-eX9}=A5H}ac)=>i1aS!kuGU=C)POaiV@s~I>pMDh+^C@na0xG?)VtPK6 zyT3A@&OK0h1+(io37i!dm4bKGgHBn zT&D>fnn13#276VxD==pb-s;A4?z!Uaoy$}f$8wLY;{(7&agnY|;YEITAv-iB_UER= zg!mUuPKmqmeTwgZP7nSTd&TcCC4P@-@kh*yKQS?1W4iqrzY>4JZ^U2mPw_V~ApS0f z#Xq28mJd8X+>MzS#s|ZgarU7gW&%$zQau3ghfB_|4!`J4^Kf^O)m+g6A92>h;`3vU4^ib9|8B!bFdk%N)c<|a`1VMC RDjJPQE~9ZJl79pv{{@P!K6wBD diff --git a/developer/groovyc/AriadneGraph$_wellformed_q_closure1.class b/developer/groovyc/AriadneGraph$_wellformed_q_closure1.class deleted file mode 100644 index 202eee38a07314d2a57fc68dfd9deac6a7f3abbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1736 zcma)6TW{P%6#izrty9-Ywn+&DN*n05*-NMiw-Pp`B-=I(I1TNhNc3ej@lG~woSDTQ z2lXfLLwGMBg@^|vo{;!W72=HTZd_p`WNAEe=A7@`zB7OQ{oC&VZs9S*wY4bV11UBl zKH9JMzZYS+r=mkK=zrJuLlq~HShm0zW`~hdN6*}l%c0xNZY-Q(SW?l@_0>S^^CWh2 zttgQ?I27)NkRsw*48|5`399JxW@f=KSMHp_DXLpIPm*Go3=0kKDL>+FqJz-g;-gNp zaPA4+ac}_+L#-Zbt^>at@;Kg3H{!-c*<%_5-q2CB=$kl{v2e0hb60aAU^DyFiYjsiKf@HWH6Q|Y==q2SWORVv02 z4->JyM~!PdDZ=GSRP=Z7u8jp;W2gk0;ZmchmKTcQvX^s4M_k5+e5b4-khgHzMg`(kc=nZ$QX#p#3D?GZc%NaplpQ&@ zdwvv*^!hU`4Exsxd_*m>@Bzc5Va7NRhIVNO%AB+Nh@tsPRRejX z4unf)`)crj%RwmOdZtP(x^l{{GDQpbh{<6J>|g_TZQRELnx8I}+>C+pdAP&r4ciUH zH)dg&_5vv$CWpHs$|duUvzF}yaX>0-QYu3uC20gFiBbLmy&Ac$vnlDxN~x1B1ENTn|1-UA5gCWulq+NyfGy}96m{s~$=s(f^16NK^e@^=fyj0uR zBq`=xrZdKz!1WZZQew(KI+&JWeLfZMSmdMM|uS7TR=ctk=of#Ie{q z#_~+%M@+O%aO?TcSn=9_V%kVgaOYd^7p%08v7W&{Bm?5})Cbgq(Q5|3zCf%Ok#V#8tp diff --git a/developer/groovyc/AriadneGraph.class b/developer/groovyc/AriadneGraph.class deleted file mode 100644 index c06468059f95302f3f3132a3d2513bb56981a589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18824 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 k_D{|_#m>8GGVLs 0 ? file_fn[ 0..file_fn.lastIndexOf('.') - 1 ] : file_fn - def file_fn_ext = file_fn.lastIndexOf('.') > 0 ? file_fn[ file_fn.lastIndexOf('.') + 1..-1 ] : '' - - return [ - parent_dp: parent_dp - ,file_fn: file_fn - ,file_fn_base: file_fn_base - ,file_fn_ext: file_fn_ext + def file_fn_base = file_fn + def file_fn_ext = '' + + if (file_fn.lastIndexOf('.') > 0) { + file_fn_base = file_fn[0..file_fn.lastIndexOf('.') - 1] + if (file_fn.lastIndexOf('.') + 1 < file_fn.length()) { + file_fn_ext = file_fn[file_fn.lastIndexOf('.') + 1..-1] + } + } + + def ret_val = [ + dp : parent_dp, + fn : file_fn, + fn_base : file_fn_base, + fn_ext : file_fn_ext ] + if (debug) println("unpack_file_path::ret_val: ${ret_val}") + + return ret_val } static boolean file_exists_q( String node_label ){ @@ -50,8 +68,21 @@ class AriadneGraph { Node type checks and marking */ - static Set all_node_type_set = ['symbol' ,'path' ,'leaf' ,'generator'] as Set - static Set persistent_node_mark_set = ['cycle_member' ,'wellformed' ,'build_failed'] as Set + static Set all_node_type_set = [ + 'symbol' // label is a symbol + ,'path' // label is a path to a file, though it might not exist + ,'leaf' // label is a path to a file that has no dependencies + ,'generator' // label is a path, but node has no neighbors + ,'error' // typically created by the system node has a message property + ] as Set + + static Set persistent_node_mark_set = + [ + 'cycle_member' + ,'wellformed' + ,'build_failed' + ,'null_node' + ] as Set static boolean leaf_q( Map node ){ return node && node.type == 'leaf' @@ -86,6 +117,7 @@ class AriadneGraph { ,'bad_node_type' ,'neighbor_value_must_be_list' ,'neighbor_reference_must_be_string' + ,'neighbor_label_not_in_graph' ,'mark_property_value_must_be_set' ,'unregistered_mark' ,'missing_required_build_code' @@ -97,7 +129,7 @@ class AriadneGraph { def form_error_set = [] as Set if( !node ){ - form_error_set << 'no_node' + form_error_set << 'null_node' return form_error_set } @@ -144,21 +176,25 @@ class AriadneGraph { */ def mark_node_form(node ,verbose = true){ - println("mark_node_form::node: ${node}") + if(debug){ + if(node) + println("mark_node_form::node: ${node}") + else + println("mark_node_form given a null node") + } def form_errors = wellformed_q(node) - if( form_errors.isEmpty() ){ set_mark(node ,'wellformed'); return 'wellformed' } - + // at this point we know that form_errors is not empty + if(verbose){ - if(node.label && node.label.length() > 0){ + if(node && node.label && node.label.length() > 0) print("node ${neighbor_node.label} is malformed due to:") - } else { + else print("anonymous node is malformed due to:") - } form_errors.each { error -> print(" ${error}") } println("") } @@ -167,25 +203,36 @@ class AriadneGraph { } - /* - Given a path stack initialized with the path root ,descends to a leaf node - while looking for cycles. Marks nodes as 'cycle_member' if a cycle is - detected. Marks nodes as `wellformed` if `wellformed_q`. Returns a set of - tokens indicating the status: 'cycle_found' ,'defacto_leaf' ,and - 'exists_malformed'. + /* + Each node_label must be a string and not empty. - the de-fact leaf node test .. - // a 'de-facto' leaf node test .. subtleties here because we have not yet - // determined if the nodes we are wellformed. This is purposeful ,as - // this function does not know about the relationships between the - // possible error marks. + Subleties here because we have not yet determined if the nodes we are + wellformed (after all, that is what we are determining here). + Given a path stack initialized with the path root ,descends to a leaf node + while looking for cycles. Marks nodes as to their form. Returns a set of + tokens. + + If we want to attempt to build 'islands' of things that might be located on + the far side of cycles, then modify the cycle finder to return a list of + cycles (i.e. a list of lists), then use each of cycle definition (a list) as + the root nodes for further search. + + + */ + static Set markup_graph_f_descend_set = [ + 'empty_path_stack' + ,'cycle_found' + ,'undefined_node' + ,'exists_malformed' + ,'defacto_leaf' + ] as Set - */ def markup_graph_f_descend(path_stack ,boolean verbose = true){ def ret_value = [] as Set if( path_stack.isEmpty() ){ - println( "markup_graph_f_descend:: given null to descend from") + if(verbose) println( "markup_graph_f_descend:: given empty path_stack to descend from") + ret_value << 'empty_path_stack' return ret_value } def local_path = path_stack.collect{ it[0] } @@ -194,15 +241,15 @@ class AriadneGraph { do{ - // Check for a cycle in the local path + // Check for a cycle in the local path, if found marks cycle members if( local_path.size() > 1){ cycle_start_index = local_path[0..-2].findIndexOf{ it == local_node_label } if(cycle_start_index != -1){ // Cycle detected ret_value << 'cycle_found' if(verbose) print "markup_graph_f_descend:: dependency cycle found:" local_path[cycle_start_index..-1].each{ cycle_node_label -> + if(verbose) print " ${cycle_node_label}" def cycle_node = lookup(cycle_node_label) - if(verbose) print " ${cycle_node.label}" cycle_node.mark = cycle_node.mark ?: [] as Set // Initialize mark set if needed cycle_node.mark << 'cycle_member' } @@ -215,7 +262,13 @@ class AriadneGraph { } def local_node = lookup(local_node_label) - if( mark_node_form(local_node) == 'malformed' ) ret_value << 'exists_malformed' + if( !local_node ){ + ret_value << 'undefined_node' + return ret_value + } + if( mark_node_form(local_node) == 'malformed' ){ + ret_value << 'exists_malformed' + } if( local_node.neighbor.isEmpty() ){ ret_value << 'defacto_leaf' // might not be `type:leaf` return ret_value @@ -251,6 +304,7 @@ class AriadneGraph { do{ result = markup_graph_f_descend(path_stack ,verbose) if('cycle_found' in result) ret_value << 'cycle_exists' + if('undefined_node' in result) exists_malformed = true; if('exists_malformed' in result) exists_malformed = true; // increment the iterator to the next leftmost path @@ -275,22 +329,38 @@ class AriadneGraph { Graph traversal */ + // given a node label, looks it up on the dependency graph, returns the node or null Map lookup(String node_label ,boolean verbose = true){ - def lookup_node = this.node_map[node_label] - if(!lookup_node){ - if(verbose) println "lookup:: Node ${node_label} could not be found." - def match_result - for( func in this.node_f_list ){ - match_result = func( node_label ) - if( match_result.status == "matched" ){ - lookup_node = match_result - break - } + + if(!node_label){ + if(verbose) println("lookup:: given node_label is null or an empty string") + return null + } + + // try the map + def node = this.node_map[node_label] + if(node){ + node.label = node_label + if(verbose) println("lookup:: found from map: ${node}") + return node + } + // at this point node will be null + + // The map lookup failed, lets try the function recognizer list .. + def match_result + for( func in this.node_f_list ){ + match_result = func(node_label) + if( match_result.status == 'matched' ){ + node = match_result + break } } - lookup_node.label = node_label - if(verbose) println("lookup::node: ${lookup_node}") - return lookup_node + + if(verbose) + if(node) println("lookup:: found from recognizer function: ${node}") + else println("lookup:: failed to find label: ${node_label}") + + return node } // mark aware lookup function diff --git a/developer/groovyc/BuildGraph.groovy b/developer/groovyc/BuildGraph.groovy new file mode 100644 index 0000000..c68fa43 --- /dev/null +++ b/developer/groovyc/BuildGraph.groovy @@ -0,0 +1,58 @@ +class BuildGraph { + + // Function to load the graph class dynamically + static def include_a_class(String a_class_fp) { + def class_loader = BuildGraph.class.classLoader + def class_name = a_class_fp.replace('/', '.').replace('.class', '') + try { + return class_loader.loadClass(class_name) + } catch (Exception e) { + println "Error loading class '${class_name}': ${e.message}" + return null + } + } + + // Build function + static def build(String graph_definition_fp, List root_node_labels) { + + // Print summary of what we are doing + println "build:: Building targets for graph '${graph_definition_fp}.class'" + if (root_node_labels.isEmpty()) { + println "No build targets specified. Please provide root node labels to build." + System.exit(0) + } + println "Building targets: ${root_node_labels.join(', ')}" + + // Load the dependency graph class from arg[1] + def graph_definition_class = include_a_class(graph_definition_fp) + if (graph_definition_class) { + println "build:: loaded ${graph_definition_fp}.class" + } else { + println "build:: failed to load ${graph_definition_fp}.class" + System.exit(1) + } + + // Get the node_map and node_f_list from the graph class + def node_map = graph_definition_class.get_node_map() + def node_f_list = graph_definition_class.get_node_f_list() + println "node_map: ${node_map}" + println "node_f_list: ${node_f_list}" + + // Create an instance of AriadneGraph, and run the build scripts + def graph = new AriadneGraph(node_map, node_f_list) + graph.run_build_scripts_f(root_node_labels) + } + + // Entry point when run as a script + static void main(String[] args) { + if (args.length == 0) { + println "Usage: ./build [root_node_labels...]" + System.exit(1) + } + + // Get graph definition file and root node labels + def graph_definition_fp = args[0] + def root_node_labels = args.length > 1 ? args[1..-1] : [] + build(graph_definition_fp, root_node_labels) + } +} diff --git a/developer/javac/PaintItBlack.java b/developer/javac/PaintItBlack.java new file mode 100644 index 0000000..60f27b8 --- /dev/null +++ b/developer/javac/PaintItBlack.java @@ -0,0 +1,5 @@ +public class PaintItBlack { + public static void main(String[] args) { + System.out.println("Paint it black."); + } +} diff --git a/developer/jvm/Ariadne.jar b/developer/jvm/Ariadne.jar new file mode 100644 index 0000000000000000000000000000000000000000..c679924ded28a881847f31d45be0fab20301ed06 GIT binary patch literal 30833 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 literal 0 HcmV?d00001 diff --git a/developer/shell/build b/developer/shell/build new file mode 100755 index 0000000..7477f8e --- /dev/null +++ b/developer/shell/build @@ -0,0 +1,3 @@ +#!/bin/env bash + +java BuildGraph "$@" diff --git a/executor/env_base b/executable/env_base similarity index 100% rename from executor/env_base rename to executable/env_base diff --git a/executor/env_dev b/executable/env_dev similarity index 78% rename from executor/env_dev rename to executable/env_dev index cd66ee7..fa1076c 100644 --- a/executor/env_dev +++ b/executable/env_dev @@ -11,18 +11,15 @@ if [ -z "$ENV_BASE" ]; then source "${script_path}/env_base" fi -export PATH=\ -"$REPO_HOME"/developer/executor\ -:"$PATH" +export PATH="$REPO_HOME/developer/executable":"$PATH" # so the .gitignore files can be seen: alias ls="ls -a" -# Corrected line: cd "$REPO_HOME/developer" export ENV_DEV=true -source "$REPO_HOME"/developer/executor/env_build +source "$REPO_HOME"/developer/executable/env_build echo "${BASH_SOURCE[0]}" "complete" diff --git a/executor/env_pm b/executable/env_pm similarity index 100% rename from executor/env_pm rename to executable/env_pm diff --git a/executor/env_tester b/executable/env_tester similarity index 100% rename from executor/env_tester rename to executable/env_tester diff --git a/executor/version b/executable/version similarity index 100% rename from executor/version rename to executable/version diff --git a/developer/groovyc/AriadneGraph$_all_DAG_DF_closure9.class b/release_candidate/AriadneGraph$_all_DAG_DF_closure10.class similarity index 79% rename from developer/groovyc/AriadneGraph$_all_DAG_DF_closure9.class rename to release_candidate/AriadneGraph$_all_DAG_DF_closure10.class index 7be96edafa4690b30b15b89f4e232105e6ef439f..ed70dc4fa611621a96174e9870bf26d60283c008 100644 GIT binary patch delta 75 zcmaDM^je7b)W2Q(7#JAL8PXUTlqT{jFc}(5)Jqc+jZe(UiFa{yk9Tp4PtM6NE-gwm cG}yRu4kMF_4@BAK45ovujGH!Vao8~e0F*KpBLDyZ delta 72 zcmaDY^g@XD)W2Q(7#JAL8PXUT6esd3Fj`L3PZJf1Pt3`QcX4!&cX5kP&dDz>ElRcA ZxOxsFld=z3(dKNXgRG3Xn{_$t7y(+L7HI$g diff --git a/release_candidate/AriadneGraph$_all_DAG_DF_closure7.class b/release_candidate/AriadneGraph$_all_DAG_DF_closure7.class index 8857e4d2ef542d233efbb9075e1d99df44bea14b..f1873bbf7106819c7d7790414bc13b44ddf29529 100644 GIT binary patch delta 13 VcmZ1^xJYorVs^&alb5jn0{|p_1(^T< delta 13 VcmZ1^xJYorVs^&R$xGP(0RST(1ycY3 diff --git a/release_candidate/AriadneGraph$_all_DAG_DF_closure8.class b/release_candidate/AriadneGraph$_all_DAG_DF_closure8.class index 48d0c812bd5b8a6345ea84b90b1119384363e30f..89bfd7b777e3a578c82d7b0da019b1d74560181f 100644 GIT binary patch delta 13 VcmZ1`xJ+=va(2dblUK0+0{|sx1-t+N delta 13 VcmZ1`xJ+=va(2dy$t&3Z0RSWl1$F=c diff --git a/release_candidate/AriadneGraph$_all_DAG_DF_closure9.class b/release_candidate/AriadneGraph$_all_DAG_DF_closure9.class index 7be96edafa4690b30b15b89f4e232105e6ef439f..c6596467bfa7ef71fcc587378ecb5e877d26cba6 100644 GIT binary patch delta 14 VcmaDM^g?KZCI{o@%~~9Gi~uUs1g-!8 delta 14 VcmaDM^g?KZCI@5gW-SgoMgS==1ZV&N diff --git a/release_candidate/AriadneGraph$_good_dependency_q_closure10.class b/release_candidate/AriadneGraph$_good_dependency_q_closure10.class index b4b33ad54a674bcd01ef5440b1a7746db989baa7..ac3b2774ffe1e685de99f3880f7a0acc9fcdcbd1 100644 GIT binary patch delta 25 hcmca9bW>=8DWl;;vnEEvjXQ-H84Wj|VN3^6Cd>w`yoVXM7>_V0Fdk({V>~vwkmCga Dc_=8DWkzevnED^jXQ-H84Wg{VN3^6Cd>w`ymbs*jP(o(j13HFjE$2EIbHw& DY{m`0 diff --git a/release_candidate/AriadneGraph$_mark_node_form_closure3.class b/release_candidate/AriadneGraph$_mark_node_form_closure3.class index 9d962ba83baab71e2ade1a91da3062c1ffa511d7..3daa7a4033dcaab3fa02a0e097ec0c378e08ac04 100644 GIT binary patch delta 13 UcmeAW=n&Z8$Y5)KL diff --git a/release_candidate/AriadneGraph$_markup_graph_f_descend_closure4.class b/release_candidate/AriadneGraph$_markup_graph_f_descend_closure4.class index 062667b5356fd56352fe31e0ccddd1e098e372ac..4bd2cf52b73693f4926c2f8e46a91bc281f3ccd3 100644 GIT binary patch delta 13 VcmaFN|CoQnGd9L|lb^Hw0RS%E2J8R; delta 13 VcmaFN|CoQnGd9Nklb^Hw0RS!Y2E70P diff --git a/release_candidate/AriadneGraph$_markup_graph_f_descend_closure5.class b/release_candidate/AriadneGraph$_markup_graph_f_descend_closure5.class index 5d177fd8637b7781a4db85fc6eede32602ed9d85..cb560b7cc532b1b99d55167d688449c7725aa412 100644 GIT binary patch delta 14 VcmX>sa9Ci27(3&)&Eo7ji~uK21Ze;O delta 14 VcmX>sa9Ci27(3(f&Eo7ji~uGy1Udi! diff --git a/release_candidate/AriadneGraph$_markup_graph_f_descend_closure6.class b/release_candidate/AriadneGraph$_markup_graph_f_descend_closure6.class index 1b72f75f6fc6df17208e4f838dd7df6eb7457570..2e4ac452626a787fcd3807e67b7fb3df30751252 100644 GIT binary patch delta 1087 zcmY+D-E$LF7{-5Rvq`qwRMMqY3Mj3JY171jRZCk@1g(lKw1!&3cT%^dZJN|HEmV*i zQSbvl=ur{x9dEoqWojl4+B;^r^u`Ol@gH!;@x~c}@!gOcXLk2_&vVZEp65C5*}qzT zX=%85r}7if&6kR}ZZ+cH_MS0Rv;J8%`+_{E+ssYt9%75lW*$};?Hv~FK1sk^UNW2X z@5TnzssAx9-y7!9>7ak>=AE_(en#P+l_f=s-JT*t5tz&^ zKMcSP(9GMmlkr{`xa_9#Z~F8I|KiT5+$U@$0>XVQgfi+zgv z3AZ>@$j`ck;$nzl+8lhmtk@=&H|pQ~_o@B*Z+~~>6-I4FIG|{#+Lft0I zCKTJ{1lQ_BFd`Ku9sEq`qrofdUz5~KKA&~dxshBZe=5WrT{Z=Zy3rc3PO)gy!|OU{ z?R3uYhPT_<5MdhY#O#}T)rzaP^qKH_72qwc1lArk$O?v#0* zo|LaM>Ay~2%IEAzrcCGQAUCIver6;xB+ii+^!#?nNNyzc(Q8Xp!)4~bk+G`Q3f-Nn z)%r~MfH1Qn$z*|(5_>gvNi9P#5?$f6V|;}bEwgm>J4yqcH(2AbWiF%!zNgf=!uy^v zRW&9pyyq5cgPaR1K3L#ltzcNt6J?h9#9J*9pUc-4*4xOUk;_%qrhzXcG6+hSkiRp) ZHW_sgt>UvhSH+iVI8@`0)bIq+{{VP?*rEUc delta 1092 zcmXYwTW}L)6vuzx?k3r8Q(6`~PLZ)Kh-uT*AZlBqVku}vTP%iJB2Y~0_CnJnq-kvt zsdA}`7t{|#ygWMkz>M`WB@+kb%^5~z#y4Ml@x}4YcgFE-$isgBbJ_p@eCM3q-<$qz zs=M)D`A49e&lR1z#pwJdal)t%W^%ci`Mk|$Q<8=@&FyNd?lLbmMQC%lm-hM~QAKb% zyO5jl6vJ)0*@)|dfkJg>%gXU{mEisIy<>%HlGRcn2uYG{f{dGne>>KvDvApo%D)Bgb;@M8;e36%jGg&Iy;;l%PodkAmK32%UapP_A8ul=;c*CYWKR! zyyjPXJxl}ZYh*yD^{U;e&gwtyeXVcsro#$viJr`I&?}~QWzutVVczDrpLj)){W}xF|>iuYmbE$#vIMcDlyMAk` z(wb~?opiMvVx>Xx9_Ooq4T64QtAzI77E2a@v?@QGpv`(dsYD&>_*5)|5T6Mq1Utmr a!aWu2rl*2^RUE3uhpYaJJ_dy_L(l(d9@oPF diff --git a/developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure6.class b/release_candidate/AriadneGraph$_markup_graph_f_descend_closure7.class similarity index 86% rename from developer/groovyc/AriadneGraph$_markup_graph_f_descend_closure6.class rename to release_candidate/AriadneGraph$_markup_graph_f_descend_closure7.class index 1b72f75f6fc6df17208e4f838dd7df6eb7457570..11639291d824afb37622c77f405b9cc3a58c1908 100644 GIT binary patch delta 62 zcmew;`B8F$C8PO7t2RdSjR(6K8O=BQGIcOAnOjfpXHwn#hq)FcRK=>##`}wbi{Uqe R6T=^d3WmR%w{crD0sxg86k7lQ delta 62 zcmew;`B8F$C8OCyt2RcnjR(6K8O=8PGIcOAnORTnXHwn#hq)FcRK=>##(Rc=i{UJT R6T>-%3WoEWw{crD0sxDs6P^G7 diff --git a/release_candidate/AriadneGraph$_newer_than_all_closure11.class b/release_candidate/AriadneGraph$_newer_than_all_closure11.class index ecf40dde185556780504bde04e1ee4cd80a5950f..e895c0eda84e6e1bf33a0e1ab04e9b8c7cedecdf 100644 GIT binary patch delta 26 icmbOtIz@CtC@1fA25!b13>u6#87vrYZBF7eVgvwdG6#u7+87vs5Y);}dVgvwQ5(akw diff --git a/developer/groovyc/AriadneGraph$_newer_than_all_closure11.class b/release_candidate/AriadneGraph$_newer_than_all_closure12.class similarity index 88% rename from developer/groovyc/AriadneGraph$_newer_than_all_closure11.class rename to release_candidate/AriadneGraph$_newer_than_all_closure12.class index ecf40dde185556780504bde04e1ee4cd80a5950f..9a78dbfbbb9b9cd97dc650de797c4c3a5f84156f 100644 GIT binary patch delta 43 zcmbOtIz@DX5u?#W<9bG;jhkmMG8%36Vd7-xy~e=Jc%4Cm@dkqhO0fxy;A`E+&L>UeH diff --git a/release_candidate/AriadneGraph$_run_build_scripts_f_closure14.class b/release_candidate/AriadneGraph$_run_build_scripts_f_closure14.class index f0205aaaec7d0920d9c0cd173ffc530add47bfc4..35366046d9551f952f29a323884d4a5093e041a3 100644 GIT binary patch delta 14 VcmZ1?utZ=(3Of^%^5iu3eE=cl1Ze;O delta 14 VcmZ1?utZ=(3Of_y-N|X}`v4_@1tI_d diff --git a/developer/groovyc/AriadneGraph$_run_build_scripts_f_closure14.class b/release_candidate/AriadneGraph$_run_build_scripts_f_closure15.class similarity index 84% rename from developer/groovyc/AriadneGraph$_run_build_scripts_f_closure14.class rename to release_candidate/AriadneGraph$_run_build_scripts_f_closure15.class index f0205aaaec7d0920d9c0cd173ffc530add47bfc4..54f1db3c983f42e948ecfbe6025d6841b7a65214 100644 GIT binary patch delta 38 tcmZ1?utZ>jIiu-Bixx)HjeA)b8BI4IVsv2wQtT|T%uGy5lhfGu0RY<`3Wfjx delta 38 tcmZ1?utZ>jIitx$ixx(cjeA)b8BI1HVsv2wQtT|T%uI}TC#SLR0|4G-3p@Y- diff --git a/release_candidate/AriadneGraph$_wellformed_q_closure1.class b/release_candidate/AriadneGraph$_wellformed_q_closure1.class index 202eee38a07314d2a57fc68dfd9deac6a7f3abbb..e77462736b9450e7f95c96b3d29d8e3560e718bd 100644 GIT binary patch delta 13 VcmX@XdxCevZC1vqlkc#;0RSo61~C8t delta 13 VcmX@XdxCevZC1w8$#+=a001dF1`z-N diff --git a/release_candidate/AriadneGraph$_wellformed_q_closure2.class b/release_candidate/AriadneGraph$_wellformed_q_closure2.class index 3dc9e6d8567bc4e09e2db284814160069181c843..d029042246635e9754fcd99871133a10768f558f 100644 GIT binary patch delta 13 UcmaDV@Kj(!20P=N$(ihb04OO1rT_o{ delta 13 UcmaDV@Kj(!20LTT($Hlbl9yyOnTazKgs!fw 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 k_D{|_#m>8GGVLs 1 ? args[1..-1] : [] - build(graph_definition_fp, root_node_labels) diff --git a/tester/document/what_the_tests_do.txt b/tester/document/what_the_tests_do.txt new file mode 100644 index 0000000..792ac31 --- /dev/null +++ b/tester/document/what_the_tests_do.txt @@ -0,0 +1,17 @@ + +Normally I would test individual subroutines/methods, then +combinations. However, this code was copied over from a Gradle script. So +instead, the tests are graded in complexity. + +test0 - tests that the code will compile. The test itself consists +of an empty graph. This was also the first test to make use of the +directory structure and work flow. + +test1 - The test graph has a single symbolic node. The question is if +the build code will run. The build code prints a message, said to +be the title of the graph. + +test2 - The test graph consists of a single node abstraction function +that builds nodes on the fly given a recognized target input. + + diff --git a/tester/executor/make.sh b/tester/executor/make.sh index c5d47ac..4ecb729 100755 --- a/tester/executor/make.sh +++ b/tester/executor/make.sh @@ -5,5 +5,6 @@ if [ -z "$ENV_TESTER" ]; then env_error=true fi -cd "$REPO_HOME"/tester/test0 +set -x + groovyc TestGraph.groovy diff --git a/tester/test2/HelloWorld.java b/tester/test2/HelloWorld.java new file mode 100644 index 0000000..74d76d1 --- /dev/null +++ b/tester/test2/HelloWorld.java @@ -0,0 +1,5 @@ +public class HelloWorld{ + public static void main( String[] args ){ + System.out.println( "Hello, world!" ); + } +} diff --git a/tester/test2/TestGraph$_get_node_f_list_closure2.class b/tester/test2/TestGraph$_get_node_f_list_closure2.class new file mode 100644 index 0000000000000000000000000000000000000000..12489c0beb182435da3f573206ce5eae75d9829d GIT binary patch literal 1858 zcma)6TW{1x6#izjjT7T!w^^X27fN9vdr2^%7oeL^$d-hK4Yb_|30^F(cd{{Y#w&Yv zrTl?P{ULp)twbXp`dX>Ksj7O$c3dYh60$U&Idg8`Ip3MT|9$f(fLqvRxU$Vdxf$4_ z-KsU@(h~lFTRWELhSG98KO6`ArUu4P83w*TIWRq249#|YqhX3+$q$C6LuR}7I5ZQj zU@WA&&&^FPcwkFDNG;xDD5o*6$Lb6h-Wr@?HdWU!%TPLzCd1iUz5CLh*l})8`!Bg8 zTL#X+pjg#V+R}B}o*jlAvEwr|y15zi9gpl>Ul6)Px5c1Y7J1leGq4v7)2ps<wussSm95U8NAu&^ zeNIiNREes+h<=3Kj%YFalZ*{EUUhFuVl?OSG|cj$WT94)nlwX zL05*0|Ffs!KrmXO!_iu~y0Hk)pLrr#qOU56~LTr9W`)SK2ac(RwKoPvbm3pcBZ|hqyp@ zYWETC3bg+ipU|q@tkSta|CvVf4I02J+86L7(pEP2BA@4Doz&+Hn#yOnh$Sp1p4Lf6 zd0K3|#up2PU&!Sl?!5X9t#0!#l$7)k_n&uvN2~c7->EiPZ` literal 0 HcmV?d00001 diff --git a/tester/test2/TestGraph$_get_node_f_list_closure3.class b/tester/test2/TestGraph$_get_node_f_list_closure3.class new file mode 100644 index 0000000000000000000000000000000000000000..88475e852a7c2d6585fcd1280c95509594a44c9b GIT binary patch literal 1854 zcma)6ZExFD6n<_R>eh3c(2T)&8G~hOUfP*5U>j*S+OT$E=?0{l1YfKh=O*>)UPrbQ zseb^8AHw$m(x~=5l+&0uV|9khuMEyGpQ>w^XDFRXli^~m-hIZWJkIS&|CzAE zmVpZ}C{{HHdFa?}mj^*d4n2lOH#cK3bji-~B%w=mTMU|Ik%!$j1N)I-cHNOqc#mPZ zc0S^HN&TsTB~)}2agm`I?mGd)^=^vi)g`CMi3jf&3zqU4W2XED zUYolv!;PH$a*9O7RfV%$!H0ABV1`&xU|7wo&-8HYPDYM2r+3Vb92|8dB{$@@&~TO9 z^gS;OLgEp_PubXxoO%bs+!f)zH+ab9z!gEY>v;#0aVvwT7y6DIWhJK!_m0LQdzq+r zvXBx3g}>*7f(Y<2uIcy))zU1kQ*B}ehDWv6>OdyDgi_gPDa)2oTcWbn8T4p&T;3Pd zfJ&8U+KZ@1*m*=LqB$`&J4fji^}BqQ!WwQe%#oYKxN?f-k&r-sf;Al`K4n*>-ZdZ3@oBFj{?4AsO2V- zGhZ6k8H^Kz@pNuv!^a@&uRpK`?%}?U4SW?lPH`F7!m7HUN!C?wVh%FYPgV64>(0=X z;mZFl%2U*^Lo{TaRbR@l@Q6&UDAEgIUy~{K$gpFp3;PkwSZ;Ne5`73Xo3}Sp8V2zqm1SN(- zSyx>G%0HuwH;J`MP7f5VT{_*x41IvsXs-N$w|=E9!!E5?Bk?RQ;cYsBT)l(Kbf%SEhUHSx5Scv^0} zz^$diFXZwVcc1@;R=4>VN=kZ+%^$kIqt$$YuT>z1C$tg~7ym&;!$z6m0k#u=W%{cO nipO}QlvM$~rBx?slra_MyGW{I0pHWE01drF;|86s;KTm_I3N62 literal 0 HcmV?d00001 diff --git a/tester/test2/TestGraph$_java_to_class_closure1.class b/tester/test2/TestGraph$_java_to_class_closure1.class new file mode 100644 index 0000000000000000000000000000000000000000..8deb4f0b3fcddb75b7d70f73c79cdc6f0321c814 GIT binary patch literal 3090 zcma)8*>@9F9R6;aWRDrYTL&;hf~IzxDeqcmBRV`v-vi_(5P>zbtw^u2C3k z%w9AmjjZQn&Ad@8a&(F%S9WL+0;@+|$C;c?z7b1u&hk1VVS^+1ttpYYEG+@z^v257p3WS zwk$rN>5--bJcukMOy+bXkQ>V z(5PV#ZB*LKt#LdifH?LFv@~B>>{{hfz}*=Dyf1;Bc!D_~r=&@Q;@Drql7qnRYEDnm z%hIT2rzQ`idhLB4j^0L^N zcAW82p|ir+(6Wk?1&saE1zCl>w-UIJLB%a&d9qW-VH`=I6HnE}@HFuX2oy{UQnY6d zl?vryo$5G>t|T#GfoPWv%RBD4aU4^}dXhl(&~Z6sc>_kiMErV_OjMq&n$H7;(x`Mb zq$y!ik)6&7tZQCic}PTyPvLX|eK;e~Q7r~@O)F!%R>A9<_M~cSM@NhTW1-=!fNnYy z1;drcE|m%XuCBIF~>MEYg^2DWzf@FVN&-$uwn=8`U0IM}?9X$BT5^ zbS1lHpNe;5wX_Q(Q}V2Qid6LNWn`6xS12`SSb6sCIEDpkrRyqGM_3MA#zB0Rvo6lK zPC>ffw2msWv?) ziOdTs+~*}A(|9$3CcMTsL-pMFSJSi0d!!`YzY4_HNuEJtnIQJLV_%sRc-<`;yIlH|7Tn617__$&kt(AA7na!q;M zQo8E9=K5rCT|@^17G*DqAzB|%uN}adZyo1^iYVvnSdBGoL;TL+%eao?7u=1pC^XL7 zTie?2qG9);+J@TJ>~GlEP&?QVJrrw*somy=*x*m368MtiKGbsDhAnuMvs!KCpAQJf z?fgglm9j#;1>1Z(lyxkGQ0qU`sqSw4j-5l%duSS}Y5f%&?_hVP_8wA0HOY?5P&D~? z<}RL`#j`+P`(XPlP5^3p4yc*I^D`K{g(l7CP7W#h3z?zX+C!e(IH2L7z1 zF%^v@4Fz2UW-$STbTsKJ8npqD|6p<DIxxRP%B z3w7#r1|JNif5DZuJGc>uSMajAto#?NHC(M1_y{*cdG(x?HPIP-u86t9w;U5ZReIt~ m<6Hh|0xR$xR}m)B_ncc9k!QF&fP?;gJe*I4^JqBdaqxcysUbrE literal 0 HcmV?d00001 diff --git a/tester/test2/TestGraph$_java_to_class_f_closure1.class b/tester/test2/TestGraph$_java_to_class_f_closure1.class new file mode 100644 index 0000000000000000000000000000000000000000..ba07c8a8527fc0c552ce06dc4346075676787fb4 GIT binary patch literal 3098 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 literal 0 HcmV?d00001 diff --git a/tester/test2/TestGraph.groovy b/tester/test2/TestGraph.groovy new file mode 100644 index 0000000..5024152 --- /dev/null +++ b/tester/test2/TestGraph.groovy @@ -0,0 +1,70 @@ +import AriadneGraph + +class TestGraph { + + static def get_node_map(){ + return [:] + } + + // given label .class returns node to build .class from .java + static java_to_class( node_label ){ + println("java_to_class::") + + def target=AriadneGraph.unpack_file_path(node_label) + println("java_to_class_f:: given target: ${target}") + + // this function recognizes .class files: + if( !target.fn || target.fn_ext != 'class' ) return [status: 'no_match'] + println("java_to_class_f:: node_label ${node_label} matched") + + def class_fp = node_label + def java_fp = target.dp + target.fn_base + '.java' + + return [ + status: 'matched' + ,label: class_fp + ,type: 'path' + ,neighbor: [java_fp] // The corresponding .java file + ,build: { + def process="javac ${java_fp}".execute() + process.waitFor() + if( process.exitValue() == 0 ){ + return [status: 'success' ,output: class_fp] + } else { + return [status: 'failure' ,error: process.err.text] + } + } + ] + } + + static java_leaf( node_label ){ + println("java_to_leaf::") + + def target = AriadneGraph.unpack_file_path( node_label ) + println("java_to_class_f:: given target: ${target}") + + // This function recognizes .java files: + if( !target.fn || target.fn_ext != 'java' ) return [status: 'no_match'] + println("java_to_class_f:: node_label ${node_label} matched") + + def java_fp = node_label + + return [ + status: 'matched' + ,label: java_fp + ,type: 'leaf' + ,neighbor: [] // Leaf nodes have no dependencies + ] + } + + // Static method to define the function list + static def get_node_f_list(){ + return ( + [ + { node_label -> java_to_class(node_label) } + ,{ node_label -> java_leaf(node_label) } + ] + ) + } + +} diff --git a/tester/test2/env_test b/tester/test2/env_test new file mode 100644 index 0000000..78c20df --- /dev/null +++ b/tester/test2/env_test @@ -0,0 +1,11 @@ + +if [ -z "$ENV_TESTER" ]; then + echo "env_test0:: script can only be run in the tester environment" + env_error=true +fi + +export CLASSPATH=\ +"$REPO_HOME"/release_candidate\ +:"$REPO_HOME"/tester/test2\ +:$CLASSPATH + diff --git a/tester/test2/test.sh b/tester/test2/test.sh new file mode 100755 index 0000000..6cd9b04 --- /dev/null +++ b/tester/test2/test.sh @@ -0,0 +1,11 @@ +#!/bin/env bash + +# smoke test, and yes, there was a lot of smoke +set -x + +source env_test +echo $CLASSPATH +build TestGraph HelloWorld.class + +echo "test complete" + -- 2.20.1