add timing info to example parsing output

a_star_module
Torsten Schmits 2021-12-27 16:13:11 +07:00
parent 812426ddba
commit e0da97b2a1
2 changed files with 31 additions and 26 deletions

@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -e
name=$1
root=$(dirname $(dirname $(realpath "$0")))
cd $root
repo=examples/$name
known_failures=$(cat "script/known-failures-$name.txt")
examples_to_parse=$(
for example in $(find "$repo" -name '*.hs'); do
if [[ ! $known_failures == *$example* ]]; then
echo $example
fi
done
)
start=$(date '+%s.%N')
echo $examples_to_parse | xargs -n 2000 tree-sitter parse -q
end=$(date '+%s.%N')
skipped=$( echo $known_failures | wc -w )
parsed=$( echo $examples_to_parse | wc -w )
total=$((parsed+skipped))
percent=$(bc -l <<< "100*$parsed/$total")
duration=$(bc -l <<< "$end - $start")
printf "Successfully parsed %.2f%% of '$name' in %.2fs (%d of %d files)\n" $percent $duration $parsed $total

@ -20,31 +20,6 @@ function clone_repo {
popd
}
# parse_examples NAME
function parse_examples {
name=$1
repo=examples/$name
known_failures=$(cat "script/known-failures-$name.txt")
examples_to_parse=$(
for example in $(find "$repo" -name '*.hs'); do
if [[ ! $known_failures == *$example* ]]; then
echo $example
fi
done
)
echo $examples_to_parse | xargs -n 2000 tree-sitter parse -q
skipped=$( echo $known_failures | wc -w )
parsed=$( echo $examples_to_parse | wc -w )
total=$((parsed+skipped))
percent=$(bc -l <<< "100*$parsed/$total")
printf "Successfully parsed %.2f%% of $repo (%d of %d files)\n" $percent $parsed $total
}
clone_repo joshvera effects 08f5f36f2600362685af593f4b327e933b60bf97
clone_repo PostgRest postgrest f80cfbf165f951a062b3cbedac4556019905ca49
clone_repo GaloisInc ivory 3d00324ad1c113c7e70957ff6a6d636d271d0fc4
@ -53,5 +28,5 @@ clone_repo github semantic b162132339622fe1e80e243f630fe092d5c0cbe1
clone_repo haskell haskell-language-server d397ef491ef1689d43028f4d3d01a42118292235
for name in effects postgrest ivory polysemy semantic haskell-language-server; do
parse_examples $name
script/parse-example $name
done