From 297752fb0a2aeb75a8880d5d4b7feeebcf3f97fc Mon Sep 17 00:00:00 2001 From: felipegchi Date: Thu, 1 Dec 2022 11:17:45 -0300 Subject: [PATCH] chore: bench for gen-checker --- crates/kind-checker/src/compiler/mod.rs | 1 + crates/kind-tests/benches/pure.rs | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/crates/kind-checker/src/compiler/mod.rs b/crates/kind-checker/src/compiler/mod.rs index fc2a6602..cba47aa5 100644 --- a/crates/kind-checker/src/compiler/mod.rs +++ b/crates/kind-checker/src/compiler/mod.rs @@ -4,6 +4,7 @@ use self::tags::EvalTag; use self::tags::{operator_to_constructor, TermTag}; + use hvm::syntax::Term; use kind_span::Range; use kind_tree::desugared::{self, Book, Expr}; diff --git a/crates/kind-tests/benches/pure.rs b/crates/kind-tests/benches/pure.rs index e1f8aaf2..d1670c0e 100644 --- a/crates/kind-tests/benches/pure.rs +++ b/crates/kind-tests/benches/pure.rs @@ -175,3 +175,27 @@ fn bench_exp_pure_to_hvm(b: &mut Bencher) { }).fold(0, |n, _| n + 1) }) } + + + +#[bench] +fn bench_exp_pure_gen_checker(b: &mut Bencher) { + + let paths = exp_paths(); + + let books: Vec<_> = paths.iter().map(|x| { + let mut session = new_session(); + let mut book = resolution::parse_and_store_book(&mut session, &PathBuf::from(x)).unwrap(); + let result = resolution::check_unbound_top_level(&mut session, &mut book); + let book = desugar::desugar_book(session.diagnostic_sender.clone(), &book).unwrap(); + assert!(result.is_ok()); + + (session, book) + }).collect(); + + b.iter(move || { + books.iter().map(move |(_, book)| { + kind_checker::gen_checker(book, book.names.keys().cloned().collect()) + }).fold(0, |n, _| n + 1) + }) +}