diff --git a/examples/scala/Makefile b/examples/scala/Makefile index f98b9625..eb013236 100644 --- a/examples/scala/Makefile +++ b/examples/scala/Makefile @@ -30,7 +30,7 @@ AST_TREE_SCALAGEN = simple.scala tiny.scala grammar.scala \ EVALUATOR_EXAMPLES = classic-binding first follow nullable test-coll \ test-use-coll test-cycle test-fields use-global broad-fiber-cycle \ below-fiber-cycle below-single-fiber-cycle local-fiber-cycle nested-cycles \ - farrow-lv farrow-ubd farrow-ubd-fiber nested-ubd nested-ubd-fiber + farrow-lv farrow-ubd farrow-ubd-fiber nested-ubd nested-ubd-fiber simple-snc SCALAGEN = ${AST_TREE_SCALAGEN} \ $(foreach example,${EVALUATOR_EXAMPLES},$(example).scala $(example).static.scala) @@ -64,6 +64,7 @@ all : ${OUT}/below_fiber_cycle_implicit.class ${OUT}/BelowFiberCycleDriver.class all : ${OUT}/below_single_fiber_cycle_implicit.class ${OUT}/BelowSingleFiberCycleDriver.class all : ${OUT}/local_fiber_cycle_implicit.class ${OUT}/LocalFiberCycleDriver.class all : ${OUT}/test_fields_implicit.class ${OUT}/TestFieldsDriver.class +all : ${OUT}/simple_snc_implicit.class ${OUT}/SimpleSncDriver.class .PHONY: run @@ -350,6 +351,15 @@ ${OUT}/LocalFiberCycleDriver.class : ${OUT}/local_fiber_cycle_implicit.class ${O ${OUT}/LocalFiberCycleDriver.class : local-fiber-cycle-driver.scala ${SCALAC} ${SCALACFLAGS} $< +${OUT}/simple-snc.class: simple-snc${IMPL_SUFFIX} ${OUT}/simple_implicit.class + ${SCALAC} ${SCALACFLAGS} $< + +.PHONY: ${OUT}/simple_snc_implicit.class +${OUT}/simple_snc_implicit.class : ${OUT}/simple-snc.class ${OUT}/simple_implicit.class ; + +${OUT}/SimpleSncDriver.class: ${OUT}/simple_snc_implicit.class ${OUT}/SimpleParser.class + ${SCALAC} ${SCALACFLAGS} simple-snc-driver.scala + .PHONY: %.run %.run : ${OUT}/%.class diff --git a/examples/scala/README b/examples/scala/README index fa66cd23..34b9869c 100644 --- a/examples/scala/README +++ b/examples/scala/README @@ -16,3 +16,4 @@ make EVALUATOR=STATIC NestedCyclesDriver.run make EVALUATOR=STATIC ARGS="nested-ubd.program" NestedUbdDriver.run make EVALUATOR=STATIC ARGS="nested-ubd.program" NestedUbdFiberDriver.run make EVALUATOR=STATIC ARGS="tiny.program" TestFieldsDriver.run +make EVALUATOR=DYNAMIC ARGS="simple.program" SimpleSncDriver.run diff --git a/examples/scala/compare-evaluators.sh b/examples/scala/compare-evaluators.sh index de1940b0..8fca754a 100755 --- a/examples/scala/compare-evaluators.sh +++ b/examples/scala/compare-evaluators.sh @@ -3,7 +3,7 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" -EVALUATORS=(DYNAMIC STATIC) +DEFAULT_EVALUATORS="DYNAMIC,STATIC" extract_results() { sed -n '/^Results:$/,$p' @@ -27,8 +27,9 @@ run_with_evaluator() { run_driver() { local driver="$1" - shift - local args="$*" + local args="$2" + local -a evals + IFS=',' read -ra evals <<< "$3" local pass=true local build_failed=false local tmpdir @@ -37,7 +38,7 @@ run_driver() { echo "--- $driver ${args:+(${args})} ---" local built_evaluators=() - for eval in "${EVALUATORS[@]}"; do + for eval in "${evals[@]}"; do echo " running $eval ..." if ! run_with_evaluator "$eval" "$driver" "$args" "$tmpdir/$eval"; then echo " FAIL: $eval build failed" @@ -59,9 +60,13 @@ run_driver() { local n=${#built_evaluators[@]} if [ $n -lt 2 ]; then - echo " FAIL: fewer than 2 evaluators built successfully" + if [ $n -eq 1 ]; then + echo " OK: ${built_evaluators[0]} ran successfully" + else + echo " FAIL: no evaluators ran successfully" + fi rm -rf "$tmpdir" - return 1 + return $(( n == 0 )) fi for ((i=0; i