Skip to content

Commit

Permalink
Add initial debugging instrumentation to tree_heap
Browse files Browse the repository at this point in the history
Closes: #1684
Approved by: cbarrettfb
  • Loading branch information
Clark Barrett authored and bors-libra committed Nov 8, 2019
1 parent b1cbb9a commit cdfb300
Show file tree
Hide file tree
Showing 5 changed files with 209 additions and 58 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions language/stackless-bytecode/tree_heap/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ functional_tests = { path = "../../functional_tests", version = "0.1.0" }
bytecode-verifier = { path = "../../bytecode-verifier", version = "0.1.0" }
vm = { path = "../../vm", version = "0.1.0" }
libra-types = { path = "../../../types", version = "0.1.0" }
bytecode-source-map = { path = "../../compiler/bytecode-source-map", version = "0.1.0" }
ir-to-bytecode = { path = "../../compiler/ir-to-bytecode", version = "0.1.0" }
stackless-bytecode-generator = { path = "../generator", version = "0.1.0"}
stdlib = { path = "../../stdlib", version = "0.1.0" }
Expand Down
19 changes: 12 additions & 7 deletions language/stackless-bytecode/tree_heap/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
// Copyright (c) The Libra Core Contributors
// SPDX-License-Identifier: Apache-2.0

use bytecode_source_map::source_map::SourceMap;
use bytecode_verifier::VerifiedModule;
use ir_to_bytecode::{compiler::compile_module, parser::parse_module};
use ir_to_bytecode::{compiler::compile_module, parser::ast::Loc, parser::parse_module};
use libra_types::account_address::AccountAddress;
use std::{
env,
fs::{self, File},
io::prelude::*,
};
use stdlib::{stdlib_modules, stdlib_source_map};
use tree_heap::translator::BoogieTranslator;

fn compile_files(file_names: Vec<String>) -> Vec<VerifiedModule> {
let mut verified_modules = vec![];
// mod translator;
fn compile_files(file_names: Vec<String>) -> (Vec<VerifiedModule>, SourceMap<Loc>) {
let mut verified_modules = stdlib_modules().to_vec();
let mut source_maps = stdlib_source_map().to_vec();
let files_len = file_names.len();
let dep_files = &file_names[0..files_len];
let address = AccountAddress::default();
for file_name in dep_files {
let code = fs::read_to_string(file_name).unwrap();
let module = parse_module(&code).unwrap();
let (compiled_module, _) =
let (compiled_module, source_map) =
compile_module(address, module, &verified_modules).expect("module failed to compile");
let verified_module_res = VerifiedModule::new(compiled_module);

Expand All @@ -29,18 +33,19 @@ fn compile_files(file_names: Vec<String>) -> Vec<VerifiedModule> {
}
Ok(verified_module) => {
verified_modules.push(verified_module);
source_maps.push(source_map);
}
}
}
verified_modules
(verified_modules, source_maps)
}

fn main() {
let args: Vec<String> = env::args().collect();
let file_names = &args[1..];
// read files and compile into compiled modules
let modules = compile_files(file_names.to_vec());
let mut ts = BoogieTranslator::new(&modules);
let (modules, source_maps) = compile_files(file_names.to_vec());
let mut ts = BoogieTranslator::new(&modules, &source_maps);
let mut res = String::new();

// handwritten boogie code
Expand Down

0 comments on commit cdfb300

Please sign in to comment.