#!/usr/bin/env bash # Regenerates every file in output/ using the same commands used to produce the ones # committed here. Requires JDK 25 on PATH/JAVA_HOME. set -euo pipefail cd "$(dirname "$0")/.." mvn -q package echo "--- 01: IncrementBenchmark thread-count sweep (takes a few minutes) ---" { echo '$ java -jar target/benchmarks.jar IncrementBenchmark -t -rf text' for t in 1 2 4 8 16 32 64; do echo "=== threads=$t ===" java -jar target/benchmarks.jar "IncrementBenchmark" -t "$t" -rf text -rff /tmp/jmh-atomics-$t.txt cat "/tmp/jmh-atomics-$t.txt" echo "" done } > output/01-increment-benchmark-sweep.txt echo "--- 02: ABA problem demo ---" { echo '$ java -cp target/classes com.ankurm.atomics.AbaProblemDemo' echo "" } > output/02-aba-problem-demo.txt java -cp target/classes com.ankurm.atomics.AbaProblemDemo >> output/02-aba-problem-demo.txt 2>&1 echo "--- 03: VarHandle access modes demo ---" { echo '$ java -cp target/classes com.ankurm.atomics.VarHandleAccessModesDemo' echo "" } > output/03-varhandle-access-modes.txt java -cp target/classes com.ankurm.atomics.VarHandleAccessModesDemo >> output/03-varhandle-access-modes.txt 2>&1 echo "--- 04: correctness tests ---" mvn -q test cp target/surefire-reports/com.ankurm.atomics.CounterCorrectnessTest.txt output/04-counter-correctness.txt