Adds a basic identifier completion benchmark so that bugs like the one in #6794 are caught earlier.
407 lines
9.7 KiB
YAML
407 lines
9.7 KiB
YAML
- attributes:
|
|
description: stdlib
|
|
tags: [slow]
|
|
time: &time
|
|
#runner: time
|
|
# alternative config: use `perf stat` for extended properties
|
|
runner: perf_stat
|
|
perf_stat:
|
|
properties:
|
|
[
|
|
"wall-clock",
|
|
"task-clock",
|
|
"instructions",
|
|
"branches",
|
|
"branch-misses",
|
|
]
|
|
rusage_properties: ["maxrss"]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c 'set -eo pipefail; touch ../../src/Init/Prelude.lean; make LEAN_OPTS="-Dprofiler=true -Dprofiler.threshold=9999" -C ${BUILD:-../../build/release}/stage2 --output-sync -j$(nproc) 2>&1 | ./accumulate_profile.py'
|
|
max_runs: 2
|
|
parse_output: true
|
|
# initialize stage2 cmake + warmup
|
|
build_config:
|
|
cmd: |
|
|
bash -c 'make -C ${BUILD:-../../build/release} stage2 -j$(nproc)'
|
|
- attributes:
|
|
description: stdlib size
|
|
tags: [deterministic, fast]
|
|
run_config:
|
|
cwd: ../../
|
|
cmd: |
|
|
set -euxo pipefail
|
|
echo -n 'lines: '
|
|
find src -name '*.lean' -print0 | wc -l --files0-from=- | tail -1 | cut -d' ' -f 1
|
|
echo -n 'bytes .olean: '
|
|
find ${BUILD:-build/release}/stage2/lib/lean -name '*.olean' -print0 | wc -c --files0-from=- | tail -1 | cut -d' ' -f 1
|
|
echo -n 'lines C: '
|
|
find ${BUILD:-build/release}/stage2/lib/temp -name '*.c' -print0 | wc -l --files0-from=- | tail -1 | cut -d' ' -f 1
|
|
echo -n 'lines C++: '
|
|
find src \( -name '*.h' -o -name '*.cpp' \) -print0 | wc -l --files0-from=- | tail -1 | cut -d' ' -f 1
|
|
echo -n 'max dynamic symbols: '
|
|
find ${BUILD:-build/release}/stage2/lib/lean -name '*.a' -exec bash -c 'nm {} | grep " T " | wc -l' \; | sort --reverse --numeric-sort | head -n1
|
|
max_runs: 1
|
|
runner: output
|
|
- attributes:
|
|
description: libleanshared.so
|
|
tags: [deterministic, fast]
|
|
run_config:
|
|
cmd: |
|
|
set -eu
|
|
echo -n 'binary size: '
|
|
wc -c ${BUILD:-../../build/release}/stage2/lib/lean/libleanshared.so | cut -d' ' -f 1
|
|
max_runs: 1
|
|
runner: output
|
|
- attributes:
|
|
description: Init.Prelude async
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean ../../src/Init/Prelude.lean -DElab.async=true
|
|
- attributes:
|
|
description: Init.Data.List.Sublist async
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean ../../src/Init/Data/List/Sublist.lean -DElab.async=true
|
|
- attributes:
|
|
description: import Lean
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean ../../src/Lean.lean
|
|
- attributes:
|
|
description: tests/compiler
|
|
tags: [deterministic, slow]
|
|
run_config:
|
|
cwd: ../compiler/
|
|
cmd: |
|
|
set -eu
|
|
printf 'sum binary sizes: '
|
|
for f in *.lean; do ../bench/compile.sh $f; printf '%s\0' "$f.out"; done | wc -c --files0-from=- | tail -1 | cut -d' ' -f 1
|
|
max_runs: 1
|
|
runner: output
|
|
- attributes:
|
|
description: tests/bench/ interpreted
|
|
tags: [slow]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c '
|
|
set -euxo pipefail
|
|
ulimit -s unlimited
|
|
for f in *.args; do
|
|
lean --run ${f%.args} $(cat $f)
|
|
done
|
|
'
|
|
max_runs: 5
|
|
- attributes:
|
|
description: binarytrees
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./binarytrees.lean.out 21
|
|
build_config:
|
|
cmd: ./compile.sh binarytrees.lean
|
|
- attributes:
|
|
description: binarytrees.st
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./binarytrees.st.lean.out 21
|
|
build_config:
|
|
cmd: ./compile.sh binarytrees.st.lean
|
|
- attributes:
|
|
description: const_fold
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: bash -c "ulimit -s unlimited && ./const_fold.lean.out 23"
|
|
build_config:
|
|
cmd: ./compile.sh const_fold.lean
|
|
- attributes:
|
|
description: deriv
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./deriv.lean.out 10
|
|
build_config:
|
|
cmd: ./compile.sh deriv.lean
|
|
- attributes:
|
|
description: lake build clean
|
|
tags: [slow]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
cd inundation
|
|
lake -flakefile-clean.lean clean
|
|
lake -flakefile-clean.lean build
|
|
"
|
|
build_config:
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
cd inundation
|
|
cp lakefile.lean lakefile-clean.lean
|
|
lake -flakefile-clean.lean -Ktest=Clean run mkBuild
|
|
lake -flakefile-clean.lean build
|
|
"
|
|
- attributes:
|
|
description: lake build no-op
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
lake -dinundation -flakefile-nop.lean build
|
|
"
|
|
build_config:
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
cd inundation
|
|
cp lakefile.lean lakefile-nop.lean
|
|
lake -flakefile-nop.lean -Ktest=Nop run mkBuild
|
|
lake -flakefile-nop.lean build
|
|
"
|
|
- attributes:
|
|
description: lake config elab
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
lake -dinundation -flakefile-rc.lean -R run nop
|
|
"
|
|
build_config:
|
|
cmd: cp inundation/lakefile.lean inundation/lakefile-rc.lean
|
|
- attributes:
|
|
description: lake config import
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
lake -dinundation run nop
|
|
"
|
|
build_config:
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
lake -dinundation run nop
|
|
"
|
|
- attributes:
|
|
description: lake config tree
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
lake -dinundation/test/tree run nop
|
|
"
|
|
build_config:
|
|
cmd: |
|
|
lake -dinundation run mkTree
|
|
lake -dinundation/test/tree update
|
|
- attributes:
|
|
description: lake env
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
lake -dinundation env true
|
|
"
|
|
build_config:
|
|
cmd: lake -dinundation env true
|
|
- attributes:
|
|
description: lake startup
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: |
|
|
bash -c "
|
|
set -ex
|
|
ulimit -s unlimited
|
|
lake self-check
|
|
"
|
|
- attributes:
|
|
description: language server startup
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean -Dlinter.all=false --run server_startup.lean
|
|
- attributes:
|
|
description: ilean roundtrip
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./ilean_roundtrip.lean.out 200000
|
|
parse_output: true
|
|
build_config:
|
|
cmd: ./compile.sh ilean_roundtrip.lean
|
|
- attributes:
|
|
description: identifier auto-completion
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean -Dlinter.all=false --run identifier_completion_runner.lean
|
|
parse_output: true
|
|
- attributes:
|
|
description: liasolver
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./liasolver.lean.out ex-50-50-1.leq
|
|
build_config:
|
|
cmd: ./compile.sh liasolver.lean
|
|
- attributes:
|
|
description: parser
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./parser.lean.out ../../src/Init/Prelude.lean 50
|
|
build_config:
|
|
cmd: ./compile.sh parser.lean
|
|
- attributes:
|
|
description: qsort
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./qsort.lean.out 400
|
|
build_config:
|
|
cmd: ./compile.sh qsort.lean
|
|
- attributes:
|
|
description: rbmap
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./rbmap.lean.out 2000000
|
|
build_config:
|
|
cmd: ./compile.sh rbmap.lean
|
|
- attributes:
|
|
description: rbmap_1
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./rbmap_checkpoint.lean.out 2000000 1
|
|
build_config:
|
|
cmd: ./compile.sh rbmap_checkpoint.lean
|
|
- attributes:
|
|
description: rbmap_10
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./rbmap_checkpoint.lean.out 2000000 10
|
|
build_config:
|
|
cmd: ./compile.sh rbmap_checkpoint.lean
|
|
- attributes:
|
|
description: rbmap_fbip
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./rbmap_fbip.lean.out 2000000
|
|
build_config:
|
|
cmd: ./compile.sh rbmap_fbip.lean
|
|
- attributes:
|
|
description: rbmap_library
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./rbmap_library.lean.out 2000000
|
|
build_config:
|
|
cmd: ./compile.sh rbmap_library.lean
|
|
- attributes:
|
|
description: reduceMatch
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean reduceMatch.lean
|
|
- attributes:
|
|
description: simp_arith1
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean simp_arith1.lean
|
|
- attributes:
|
|
description: nat_repr
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./nat_repr.lean.out 5000
|
|
build_config:
|
|
cmd: ./compile.sh nat_repr.lean
|
|
- attributes:
|
|
description: unionfind
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: ./unionfind.lean.out 3000000
|
|
build_config:
|
|
cmd: ./compile.sh unionfind.lean
|
|
- attributes:
|
|
description: workspaceSymbols
|
|
tags: [fast, suite]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean workspaceSymbols.lean
|
|
- attributes:
|
|
description: bv_decide_realworld
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean bv_decide_realworld.lean
|
|
- attributes:
|
|
description: bv_decide_mul
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean bv_decide_mul.lean
|
|
- attributes:
|
|
description: bv_decide_mod
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean bv_decide_mod.lean
|
|
- attributes:
|
|
description: bv_decide_inequality.lean
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean bv_decide_inequality.lean
|
|
- attributes:
|
|
description: big_do
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean big_do.lean
|
|
- attributes:
|
|
description: big_omega.lean
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean big_omega.lean
|
|
- attributes:
|
|
description: big_omega.lean MT
|
|
tags: [fast]
|
|
run_config:
|
|
<<: *time
|
|
cmd: lean big_omega.lean -Dinternal.cmdlineSnapshots=false
|