Clean up expression sizes, which seems to fix stack blowouts.
This commit is contained in:
@@ -120,20 +120,18 @@ proptest::proptest! {
|
||||
#[test]
|
||||
fn static_backend(program in Program::arbitrary()) {
|
||||
use crate::eval::PrimOpError;
|
||||
use pretty::DocAllocator;
|
||||
let allocator = pretty::Arena::new();
|
||||
let result = allocator.text("-------------")
|
||||
.append(allocator.line())
|
||||
.append(program.pretty(&allocator))
|
||||
.append(allocator.line());
|
||||
result.render_raw(70, &mut pretty::IoWrite::new(std::io::stdout()))
|
||||
.expect("rendering works");
|
||||
// use pretty::DocAllocator;
|
||||
// let allocator = pretty::Arena::new();
|
||||
// let result = allocator.text("-------------")
|
||||
// .append(allocator.line())
|
||||
// .append(program.pretty(&allocator))
|
||||
// .append(allocator.line());
|
||||
// result.render_raw(70, &mut pretty::IoWrite::new(std::io::stdout()))
|
||||
// .expect("rendering works");
|
||||
|
||||
|
||||
eprintln!("BEFORE EVAL");
|
||||
let ir_evaluator = crate::ir::Evaluator::default();
|
||||
let basic_result = ir_evaluator.eval(program.clone()).map(|(_,o)| o);
|
||||
eprintln!("AFTER EVAL");
|
||||
|
||||
// windows `printf` is going to terminate lines with "\r\n", so we need to adjust
|
||||
// our test result here.
|
||||
@@ -150,7 +148,6 @@ proptest::proptest! {
|
||||
//result.render_raw(70, &mut pretty::IoWrite::new(std::io::stdout()))
|
||||
// .expect("rendering works");
|
||||
|
||||
eprintln!("BEFORE OM EVAL");
|
||||
let compiled_result = Backend::<ObjectModule>::eval(program);
|
||||
proptest::prop_assert_eq!(basic_result, compiled_result);
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ impl<M: Module> Backend<M> {
|
||||
false,
|
||||
)?;
|
||||
tracing::info!(name = %top_level_name, "defining top-level data structure");
|
||||
self.module.define_data(data_id, fields.blank_data())?;
|
||||
self.module.define_data(data_id, &fields.blank_data())?;
|
||||
let pointer = self.module.target_config().pointer_type();
|
||||
self.defined_symbols
|
||||
.insert(top_level_name, (data_id, pointer));
|
||||
|
||||
Reference in New Issue
Block a user