This PR sets up the new integrated test/bench suite. It then migrates all benchmarks and some related tests to the new suite. There's also some documentation and some linting. For now, a lot of the old tests are left alone so this PR doesn't become even larger than it already is. Eventually, all tests should be migrated to the new suite though so there isn't a confusing mix of two systems.
459 lines
15 KiB
Text
459 lines
15 KiB
Text
/-!
|
|
This benchmark exercises
|
|
* general elaboration, likely from many nested lambdas
|
|
* code generation, ditto
|
|
-/
|
|
|
|
set_option maxRecDepth 10000
|
|
|
|
def addALot (x: Nat) : StateM Nat Nat := do
|
|
set x
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
modifyGet (λ y => ((), y + x))
|
|
let y <- get
|
|
pure y
|
|
|
|
#eval StateT.run' (addALot 2) 0
|