From f8107f40c4d91349a8495abf98e6ef1a1015005e Mon Sep 17 00:00:00 2001 From: Elizabeth Gilbert Date: Tue, 5 Nov 2024 14:21:32 -0500 Subject: [PATCH 1/2] Restructure where the libraries live to prep for adding new language features --- src/common/instr.rs | 12 ++++++------ src/emitter/module_emitter.rs | 4 ++-- src/emitter/rewriting/visiting_emitter.rs | 4 ++-- src/emitter/utils.rs | 2 +- src/generator/wizard/mod.rs | 2 +- src/{ => lang_features}/libraries/actions.rs | 6 +++--- .../libraries/core/io/io_adapter.rs | 2 +- src/{ => lang_features}/libraries/core/io/mod.rs | 4 ++-- .../libraries/core/maps/map_adapter.rs | 2 +- src/{ => lang_features}/libraries/core/maps/mod.rs | 4 ++-- src/{ => lang_features}/libraries/core/mod.rs | 0 .../libraries/linking/import_lib.rs | 2 +- src/{ => lang_features}/libraries/linking/mod.rs | 0 src/{ => lang_features}/libraries/mod.rs | 0 src/lang_features/mod.rs | 1 + src/lib.rs | 2 +- src/main.rs | 2 +- src/verifier/types.rs | 2 +- 18 files changed, 26 insertions(+), 25 deletions(-) rename src/{ => lang_features}/libraries/actions.rs (81%) rename src/{ => lang_features}/libraries/core/io/io_adapter.rs (98%) rename src/{ => lang_features}/libraries/core/io/mod.rs (96%) rename src/{ => lang_features}/libraries/core/maps/map_adapter.rs (99%) rename src/{ => lang_features}/libraries/core/maps/mod.rs (97%) rename src/{ => lang_features}/libraries/core/mod.rs (100%) rename src/{ => lang_features}/libraries/linking/import_lib.rs (97%) rename src/{ => lang_features}/libraries/linking/mod.rs (100%) rename src/{ => lang_features}/libraries/mod.rs (100%) create mode 100644 src/lang_features/mod.rs diff --git a/src/common/instr.rs b/src/common/instr.rs index 6ebf34be..0dc7e589 100644 --- a/src/common/instr.rs +++ b/src/common/instr.rs @@ -8,11 +8,11 @@ use crate::generator::rewriting::init_generator::InitGenerator; use crate::generator::rewriting::instr_generator::InstrGenerator; use crate::generator::rewriting::simple_ast::{build_simple_ast, SimpleAST}; use crate::generator::wizard::metadata_collector::WizardProbeMetadataCollector; -use crate::libraries::core::io::io_adapter::IOAdapter; -use crate::libraries::core::io::IOPackage; -use crate::libraries::core::maps::map_adapter::MapLibAdapter; -use crate::libraries::core::maps::MapLibPackage; -use crate::libraries::core::LibPackage; +use crate::lang_features::libraries::core::io::io_adapter::IOAdapter; +use crate::lang_features::libraries::core::io::IOPackage; +use crate::lang_features::libraries::core::maps::map_adapter::MapLibAdapter; +use crate::lang_features::libraries::core::maps::MapLibPackage; +use crate::lang_features::libraries::core::LibPackage; use crate::parser::types::{Whamm, WhammVisitor}; use crate::parser::whamm_parser::parse_script; use crate::verifier::types::SymbolTable; @@ -165,7 +165,7 @@ pub fn run( let mut map_package = MapLibPackage::default(); let mut io_package = IOPackage::default(); let mut core_packages: Vec<&mut dyn LibPackage> = vec![&mut map_package, &mut io_package]; - crate::libraries::actions::link_core_lib( + crate::lang_features::libraries::actions::link_core_lib( &config.library_strategy, &whamm, target_wasm, diff --git a/src/emitter/module_emitter.rs b/src/emitter/module_emitter.rs index 19cbcb0b..6f4aed8e 100644 --- a/src/emitter/module_emitter.rs +++ b/src/emitter/module_emitter.rs @@ -3,8 +3,8 @@ use crate::emitter::report_var_metadata::{Metadata, ReportVarMetadata}; use crate::emitter::rewriting::rules::Arg; use crate::emitter::utils::{emit_body, emit_expr, emit_stmt, whamm_type_to_wasm_global}; use crate::emitter::Emitter; -use crate::libraries::core::io::io_adapter::IOAdapter; -use crate::libraries::core::maps::map_adapter::MapLibAdapter; +use crate::lang_features::libraries::core::io::io_adapter::IOAdapter; +use crate::lang_features::libraries::core::maps::map_adapter::MapLibAdapter; use crate::parser::types::{Block, DataType, Definition, Expr, Fn, FnId, Statement, Value}; use crate::verifier::types::{Record, SymbolTable, VarAddr}; use log::debug; diff --git a/src/emitter/rewriting/visiting_emitter.rs b/src/emitter/rewriting/visiting_emitter.rs index a2d5b885..20e24a83 100644 --- a/src/emitter/rewriting/visiting_emitter.rs +++ b/src/emitter/rewriting/visiting_emitter.rs @@ -3,7 +3,7 @@ use crate::emitter::module_emitter::MemoryTracker; use crate::emitter::report_var_metadata::ReportVarMetadata; use crate::emitter::rewriting::rules::wasm::OpcodeEvent; use crate::emitter::rewriting::rules::{Arg, LocInfo, ProbeRule, Provider, WhammProvider}; -use crate::libraries::core::maps::map_adapter::MapLibAdapter; +use crate::lang_features::libraries::core::maps::map_adapter::MapLibAdapter; use std::collections::HashMap; use crate::emitter::utils::{ @@ -11,7 +11,7 @@ use crate::emitter::utils::{ }; use crate::emitter::Emitter; use crate::generator::folding::ExprFolder; -use crate::libraries::core::io::io_adapter::IOAdapter; +use crate::lang_features::libraries::core::io::io_adapter::IOAdapter; use crate::parser; use crate::parser::rules::UNKNOWN_IMMS; use crate::parser::types::{Block, DataType, Definition, Expr, RulePart, Statement, Value}; diff --git a/src/emitter/utils.rs b/src/emitter/utils.rs index cd4d067b..b2ae374d 100644 --- a/src/emitter/utils.rs +++ b/src/emitter/utils.rs @@ -3,7 +3,7 @@ use crate::common::error::ErrorGen; use crate::emitter::module_emitter::MemoryTracker; use crate::emitter::report_var_metadata::ReportVarMetadata; use crate::generator::folding::ExprFolder; -use crate::libraries::core::maps::map_adapter::MapLibAdapter; +use crate::lang_features::libraries::core::maps::map_adapter::MapLibAdapter; use crate::parser::types::{ BinOp, Block, DataType, Definition, Expr, Location, Statement, UnOp, Value, }; diff --git a/src/generator/wizard/mod.rs b/src/generator/wizard/mod.rs index 09404cf1..5578994d 100644 --- a/src/generator/wizard/mod.rs +++ b/src/generator/wizard/mod.rs @@ -8,7 +8,7 @@ use crate::emitter::report_var_metadata::{BytecodeLoc, LocationData}; use crate::emitter::utils::{whamm_type_to_wasm_global, whamm_type_to_wasm_type}; use crate::generator::wizard::ast::{WizardProbe, WizardScript}; use crate::generator::GeneratingVisitor; -use crate::libraries::core::io::io_adapter::IOAdapter; +use crate::lang_features::libraries::core::io::io_adapter::IOAdapter; use crate::parser::types::{Block, DataType, Definition, FnId, Statement, Value, WhammVisitorMut}; use crate::verifier::types::{Record, VarAddr}; use log::trace; diff --git a/src/libraries/actions.rs b/src/lang_features/libraries/actions.rs similarity index 81% rename from src/libraries/actions.rs rename to src/lang_features/libraries/actions.rs index 865bb08e..8a53a5fa 100644 --- a/src/libraries/actions.rs +++ b/src/lang_features/libraries/actions.rs @@ -1,6 +1,6 @@ use crate::common::error::ErrorGen; use crate::common::instr::LibraryLinkStrategy; -use crate::libraries::core::LibPackage; +use crate::lang_features::libraries::core::LibPackage; use crate::parser::types::Whamm; use orca_wasm::Module; @@ -14,7 +14,7 @@ pub fn link_core_lib( ) { match method { LibraryLinkStrategy::Imported => { - crate::libraries::linking::import_lib::link_core_lib( + crate::lang_features::libraries::linking::import_lib::link_core_lib( ast, app_wasm, core_wasm_path, @@ -37,7 +37,7 @@ pub fn link_user_lib( ) { match method { LibraryLinkStrategy::Imported => { - crate::libraries::linking::import_lib::link_user_lib(ast, app_wasm, lib_wasm, err); + crate::lang_features::libraries::linking::import_lib::link_user_lib(ast, app_wasm, lib_wasm, err); } LibraryLinkStrategy::Merged => { unimplemented!("Have not implemented support for merging user library code."); diff --git a/src/libraries/core/io/io_adapter.rs b/src/lang_features/libraries/core/io/io_adapter.rs similarity index 98% rename from src/libraries/core/io/io_adapter.rs rename to src/lang_features/libraries/core/io/io_adapter.rs index 3a48c549..80f93788 100644 --- a/src/libraries/core/io/io_adapter.rs +++ b/src/lang_features/libraries/core/io/io_adapter.rs @@ -1,5 +1,5 @@ use crate::common::error::ErrorGen; -use crate::libraries::core::LibAdapter; +use crate::lang_features::libraries::core::LibAdapter; use orca_wasm::ir::id::FunctionID; use orca_wasm::module_builder::AddLocal; use orca_wasm::opcode::MacroOpcode; diff --git a/src/libraries/core/io/mod.rs b/src/lang_features/libraries/core/io/mod.rs similarity index 96% rename from src/libraries/core/io/mod.rs rename to src/lang_features/libraries/core/io/mod.rs index b5af6f29..42bb0e77 100644 --- a/src/libraries/core/io/mod.rs +++ b/src/lang_features/libraries/core/io/mod.rs @@ -1,7 +1,7 @@ pub mod io_adapter; -use crate::libraries::core::io::io_adapter::IOAdapter; -use crate::libraries::core::{LibAdapter, LibPackage}; +use crate::lang_features::libraries::core::io::io_adapter::IOAdapter; +use crate::lang_features::libraries::core::{LibAdapter, LibPackage}; use crate::parser::rules::{Event, Package, Probe, Provider}; use crate::parser::types::{ BinOp, Block, DataType, Expr, Script, Statement, UnOp, Value, Whamm, WhammVisitor, diff --git a/src/libraries/core/maps/map_adapter.rs b/src/lang_features/libraries/core/maps/map_adapter.rs similarity index 99% rename from src/libraries/core/maps/map_adapter.rs rename to src/lang_features/libraries/core/maps/map_adapter.rs index 0eaacc69..20c9bcb4 100644 --- a/src/libraries/core/maps/map_adapter.rs +++ b/src/lang_features/libraries/core/maps/map_adapter.rs @@ -1,6 +1,6 @@ use crate::common::error::ErrorGen; use crate::emitter::report_var_metadata::{LocationData, Metadata, ReportVarMetadata}; -use crate::libraries::core::LibAdapter; +use crate::lang_features::libraries::core::LibAdapter; use crate::parser::types::DataType; use orca_wasm::ir::id::{FunctionID, GlobalID}; use orca_wasm::ir::types::BlockType as OrcaBlockType; diff --git a/src/libraries/core/maps/mod.rs b/src/lang_features/libraries/core/maps/mod.rs similarity index 97% rename from src/libraries/core/maps/mod.rs rename to src/lang_features/libraries/core/maps/mod.rs index 16c87253..f6fc4158 100644 --- a/src/libraries/core/maps/mod.rs +++ b/src/lang_features/libraries/core/maps/mod.rs @@ -1,7 +1,7 @@ pub mod map_adapter; -use crate::libraries::core::maps::map_adapter::MapLibAdapter; -use crate::libraries::core::{LibAdapter, LibPackage}; +use crate::lang_features::libraries::core::maps::map_adapter::MapLibAdapter; +use crate::lang_features::libraries::core::{LibAdapter, LibPackage}; use crate::parser::rules::{Event, Package, Probe, Provider}; use crate::parser::types::{ BinOp, Block, DataType, Expr, Script, Statement, UnOp, Value, Whamm, WhammVisitor, diff --git a/src/libraries/core/mod.rs b/src/lang_features/libraries/core/mod.rs similarity index 100% rename from src/libraries/core/mod.rs rename to src/lang_features/libraries/core/mod.rs diff --git a/src/libraries/linking/import_lib.rs b/src/lang_features/libraries/linking/import_lib.rs similarity index 97% rename from src/libraries/linking/import_lib.rs rename to src/lang_features/libraries/linking/import_lib.rs index a3362be3..6910af0c 100644 --- a/src/libraries/linking/import_lib.rs +++ b/src/lang_features/libraries/linking/import_lib.rs @@ -1,5 +1,5 @@ use crate::common::error::ErrorGen; -use crate::libraries::core::{LibPackage, WHAMM_CORE_LIB_NAME}; +use crate::lang_features::libraries::core::{LibPackage, WHAMM_CORE_LIB_NAME}; use crate::parser::types::Whamm; use log::trace; use orca_wasm::ir::id::FunctionID; diff --git a/src/libraries/linking/mod.rs b/src/lang_features/libraries/linking/mod.rs similarity index 100% rename from src/libraries/linking/mod.rs rename to src/lang_features/libraries/linking/mod.rs diff --git a/src/libraries/mod.rs b/src/lang_features/libraries/mod.rs similarity index 100% rename from src/libraries/mod.rs rename to src/lang_features/libraries/mod.rs diff --git a/src/lang_features/mod.rs b/src/lang_features/mod.rs new file mode 100644 index 00000000..d6197e4a --- /dev/null +++ b/src/lang_features/mod.rs @@ -0,0 +1 @@ +pub mod libraries; \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index fc61a938..d8b60bae 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,7 @@ pub mod common; pub mod emitter; pub mod generator; -pub mod libraries; +pub mod lang_features; pub mod parser; pub mod verifier; pub mod wast; diff --git a/src/main.rs b/src/main.rs index 3d89dafa..35beda4e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ mod cli; pub mod common; pub mod emitter; pub mod generator; -pub mod libraries; +pub mod lang_features; pub mod parser; pub mod verifier; mod wast; diff --git a/src/verifier/types.rs b/src/verifier/types.rs index 89ecca33..6b07dc4b 100644 --- a/src/verifier/types.rs +++ b/src/verifier/types.rs @@ -1,5 +1,5 @@ use crate::common::error::ErrorGen; -use crate::libraries::core::WHAMM_CORE_LIB_NAME; +use crate::lang_features::libraries::core::WHAMM_CORE_LIB_NAME; use crate::parser::types::{DataType, Definition, FnId, Location, ProbeRule, Value}; use pest::error::LineColLocation; use std::collections::HashMap; From e048f6062c9f5f1a079075ec4de5f9f3da168c53 Mon Sep 17 00:00:00 2001 From: Elizabeth Gilbert Date: Tue, 5 Nov 2024 14:22:43 -0500 Subject: [PATCH 2/2] fmt --- src/lang_features/libraries/actions.rs | 4 +++- src/lang_features/mod.rs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lang_features/libraries/actions.rs b/src/lang_features/libraries/actions.rs index 8a53a5fa..8e1f5600 100644 --- a/src/lang_features/libraries/actions.rs +++ b/src/lang_features/libraries/actions.rs @@ -37,7 +37,9 @@ pub fn link_user_lib( ) { match method { LibraryLinkStrategy::Imported => { - crate::lang_features::libraries::linking::import_lib::link_user_lib(ast, app_wasm, lib_wasm, err); + crate::lang_features::libraries::linking::import_lib::link_user_lib( + ast, app_wasm, lib_wasm, err, + ); } LibraryLinkStrategy::Merged => { unimplemented!("Have not implemented support for merging user library code."); diff --git a/src/lang_features/mod.rs b/src/lang_features/mod.rs index d6197e4a..16c44b60 100644 --- a/src/lang_features/mod.rs +++ b/src/lang_features/mod.rs @@ -1 +1 @@ -pub mod libraries; \ No newline at end of file +pub mod libraries;