From 4bfe59770f99e6148fed468d4c67b64fd44d1a50 Mon Sep 17 00:00:00 2001 From: Greg Nazario Date: Thu, 9 Mar 2023 14:12:31 -0800 Subject: [PATCH] [package] Allow bytecode version to be set from input (#919) (#967) Right now, the bytecode version can only be set by environment variable, which is a bit messy. This ensures that the input can be set from other ways than just the environment variable. --- language/move-analyzer/src/symbols.rs | 2 +- language/move-command-line-common/src/env.rs | 14 +- language/tools/move-cli/src/base/test.rs | 2 +- .../tools/move-cli/src/experimental/cli.rs | 2 +- language/tools/move-cli/src/sandbox/cli.rs | 13 +- .../move-cli/src/sandbox/commands/publish.rs | 3 +- .../move-cli/src/sandbox/commands/run.rs | 4 +- .../src/sandbox/utils/package_context.rs | 8 +- .../src/compilation/build_plan.rs | 20 +- .../src/compilation/compiled_package.rs | 22 +- language/tools/move-package/src/lib.rs | 10 +- .../tools/move-package/tests/test_runner.rs | 2 +- .../compilation/basic_no_deps/Move.exp | 1 + .../basic_no_deps_address_assigned/Move.exp | 1 + .../Move.exp | 1 + .../basic_no_deps_test_mode/Move.exp | 1 + .../Move.exp | 1 + .../diamond_problem_no_conflict/Move.exp | 1 + .../compilation/multiple_deps_rename/Move.exp | 1 + .../multiple_deps_rename_one/Move.exp | 1 + .../test_sources/compilation/one_dep/Move.exp | 1 + .../one_dep_assigned_address/Move.exp | 1 + .../compilation/one_dep_renamed/Move.exp | 1 + .../compilation/one_dep_with_scripts/Move.exp | 1 + .../compilation/test_symlinks/Move.exp | 1 + .../dep_dev_dep_diamond/Move.resolved | 305 ++++++++++++++++++ .../nested_deps_git_local/Move.resolved | 205 ++++++++++++ .../invalid_identifier_package_name/Move.exp | 1 + .../parsing/minimal_manifest/Move.exp | 1 + .../resolution/basic_no_deps/Move.exp | 1 + .../basic_no_deps_address_assigned/Move.exp | 1 + .../Move.exp | 1 + .../resolution/dep_good_digest/Move.exp | 1 + .../Move.exp | 1 + .../diamond_problem_no_conflict/Move.exp | 1 + .../resolution/multiple_deps_rename/Move.exp | 1 + .../test_sources/resolution/one_dep/Move.exp | 1 + .../one_dep_assigned_address/Move.exp | 1 + .../one_dep_multiple_of_same_name/Move.exp | 1 + .../one_dep_reassigned_address/Move.exp | 1 + .../Move.exp | 1 + 41 files changed, 610 insertions(+), 29 deletions(-) create mode 100644 language/tools/move-package/tests/test_sources/dep_dev_dep_diamond/Move.resolved create mode 100644 language/tools/move-package/tests/test_sources/nested_deps_git_local/Move.resolved diff --git a/language/move-analyzer/src/symbols.rs b/language/move-analyzer/src/symbols.rs index d8e22d4fd2..970549ef70 100644 --- a/language/move-analyzer/src/symbols.rs +++ b/language/move-analyzer/src/symbols.rs @@ -647,7 +647,7 @@ impl Symbolicator { let build_plan = BuildPlan::create(resolution_graph)?; let mut typed_ast = None; let mut diagnostics = None; - build_plan.compile_with_driver(&mut std::io::sink(), |compiler| { + build_plan.compile_with_driver(&mut std::io::sink(), None, |compiler| { let (files, compilation_result) = compiler.run::()?; let (_, compiler) = match compilation_result { Ok(v) => v, diff --git a/language/move-command-line-common/src/env.rs b/language/move-command-line-common/src/env.rs index ac247159c8..f4a433a16b 100644 --- a/language/move-command-line-common/src/env.rs +++ b/language/move-command-line-common/src/env.rs @@ -10,10 +10,16 @@ const BYTECODE_VERSION_ENV_VAR: &str = "MOVE_BYTECODE_VERSION"; /// Get the bytecode version from the environment variable. // TODO: This should be configurable via toml and command line flags. See also #129. -pub fn get_bytecode_version_from_env() -> Option { - std::env::var(BYTECODE_VERSION_ENV_VAR) - .ok() - .and_then(|s| s.parse::().ok()) +pub fn get_bytecode_version_from_env(from_input: Option) -> Option { + // This allows for bytecode version to come from command line flags and + // other input locations, falls back to bytecode version if not provided + if from_input.is_some() { + from_input + } else { + std::env::var(BYTECODE_VERSION_ENV_VAR) + .ok() + .and_then(|s| s.parse::().ok()) + } } pub fn read_env_var(v: &str) -> String { diff --git a/language/tools/move-cli/src/base/test.rs b/language/tools/move-cli/src/base/test.rs index 901590752f..04a694f14f 100644 --- a/language/tools/move-cli/src/base/test.rs +++ b/language/tools/move-cli/src/base/test.rs @@ -199,7 +199,7 @@ pub fn run_move_unit_tests( // Move package system, to first grab the compilation env, construct the test plan from it, and // then save it, before resuming the rest of the compilation and returning the results and // control back to the Move package system. - build_plan.compile_with_driver(writer, |compiler| { + build_plan.compile_with_driver(writer, None, |compiler| { let (files, comments_and_compiler_res) = compiler.run::().unwrap(); let (_, compiler) = diagnostics::unwrap_or_report_diagnostics(&files, comments_and_compiler_res); diff --git a/language/tools/move-cli/src/experimental/cli.rs b/language/tools/move-cli/src/experimental/cli.rs index f5a3864108..2cfd0ffa10 100644 --- a/language/tools/move-cli/src/experimental/cli.rs +++ b/language/tools/move-cli/src/experimental/cli.rs @@ -100,7 +100,7 @@ impl ExperimentalCommand { concretize, } => { let state = PackageContext::new(&move_args.package_path, &move_args.build_config)? - .prepare_state(storage_dir)?; + .prepare_state(None, storage_dir)?; experimental::commands::analyze_read_write_set( &state, module_file, diff --git a/language/tools/move-cli/src/sandbox/cli.rs b/language/tools/move-cli/src/sandbox/cli.rs index b9bec2b639..2ceea12c88 100644 --- a/language/tools/move-cli/src/sandbox/cli.rs +++ b/language/tools/move-cli/src/sandbox/cli.rs @@ -203,6 +203,7 @@ impl SandboxCommand { move_args: &Move, storage_dir: &Path, ) -> Result<()> { + let bytecode_version = None; match self { SandboxCommand::Publish { no_republish, @@ -213,12 +214,13 @@ impl SandboxCommand { } => { let context = PackageContext::new(&move_args.package_path, &move_args.build_config)?; - let state = context.prepare_state(storage_dir)?; + let state = context.prepare_state(bytecode_version, storage_dir)?; sandbox::commands::publish( natives, cost_table, &state, context.package(), + bytecode_version, *no_republish, *ignore_breaking_changes, *with_deps, @@ -238,7 +240,7 @@ impl SandboxCommand { } => { let context = PackageContext::new(&move_args.package_path, &move_args.build_config)?; - let state = context.prepare_state(storage_dir)?; + let state = context.prepare_state(bytecode_version, storage_dir)?; sandbox::commands::run( natives, cost_table, @@ -251,6 +253,7 @@ impl SandboxCommand { args, type_args.to_vec(), *gas_budget, + bytecode_version, *dry_run, move_args.verbose, ) @@ -269,7 +272,7 @@ impl SandboxCommand { ), SandboxCommand::View { file } => { let state = PackageContext::new(&move_args.package_path, &move_args.build_config)? - .prepare_state(storage_dir)?; + .prepare_state(bytecode_version, storage_dir)?; sandbox::commands::view(&state, file) } SandboxCommand::Clean {} => { @@ -295,12 +298,12 @@ impl SandboxCommand { } SandboxCommand::Doctor {} => { let state = PackageContext::new(&move_args.package_path, &move_args.build_config)? - .prepare_state(storage_dir)?; + .prepare_state(bytecode_version, storage_dir)?; sandbox::commands::doctor(&state) } SandboxCommand::Generate { cmd } => { let state = PackageContext::new(&move_args.package_path, &move_args.build_config)? - .prepare_state(storage_dir)?; + .prepare_state(bytecode_version, storage_dir)?; handle_generate_commands(cmd, &state) } } diff --git a/language/tools/move-cli/src/sandbox/commands/publish.rs b/language/tools/move-cli/src/sandbox/commands/publish.rs index 9d8fee606f..63d1a35c08 100644 --- a/language/tools/move-cli/src/sandbox/commands/publish.rs +++ b/language/tools/move-cli/src/sandbox/commands/publish.rs @@ -22,6 +22,7 @@ pub fn publish( cost_table: &CostTable, state: &OnDiskStateView, package: &CompiledPackage, + bytecode_version: Option, no_republish: bool, ignore_breaking_changes: bool, with_deps: bool, @@ -81,7 +82,7 @@ pub fn publish( } } - let bytecode_version = get_bytecode_version_from_env(); + let bytecode_version = get_bytecode_version_from_env(bytecode_version); // use the the publish_module API from the VM if we do not allow breaking changes if !ignore_breaking_changes { diff --git a/language/tools/move-cli/src/sandbox/commands/run.rs b/language/tools/move-cli/src/sandbox/commands/run.rs index 17d0d07937..1df48da348 100644 --- a/language/tools/move-cli/src/sandbox/commands/run.rs +++ b/language/tools/move-cli/src/sandbox/commands/run.rs @@ -25,6 +25,7 @@ use move_vm_runtime::move_vm::MoveVM; use move_vm_test_utils::gas_schedule::CostTable; use std::{fs, path::Path}; +#[allow(clippy::too_many_arguments)] pub fn run( natives: impl IntoIterator, cost_table: &CostTable, @@ -37,13 +38,14 @@ pub fn run( txn_args: &[TransactionArgument], vm_type_args: Vec, gas_budget: Option, + bytecode_version: Option, dry_run: bool, verbose: bool, ) -> Result<()> { if !script_path.exists() { bail!("Script file {:?} does not exist", script_path) }; - let bytecode_version = get_bytecode_version_from_env(); + let bytecode_version = get_bytecode_version_from_env(bytecode_version); let bytecode = if is_bytecode_file(script_path) { assert!( diff --git a/language/tools/move-cli/src/sandbox/utils/package_context.rs b/language/tools/move-cli/src/sandbox/utils/package_context.rs index 47a57efd7f..98e0c72c1b 100644 --- a/language/tools/move-cli/src/sandbox/utils/package_context.rs +++ b/language/tools/move-cli/src/sandbox/utils/package_context.rs @@ -34,8 +34,12 @@ impl PackageContext { /// NOTE: this is the only way to get a state view in Move CLI, and thus, this function needs /// to be run before every command that needs a state view, i.e., `publish`, `run`, /// `view`, and `doctor`. - pub fn prepare_state(&self, storage_dir: &Path) -> Result { - let bytecode_version = get_bytecode_version_from_env(); + pub fn prepare_state( + &self, + bytecode_version: Option, + storage_dir: &Path, + ) -> Result { + let bytecode_version = get_bytecode_version_from_env(bytecode_version); let state = OnDiskStateView::create(self.build_dir.as_path(), storage_dir)?; // preload the storage with library modules (if such modules do not exist yet) diff --git a/language/tools/move-package/src/compilation/build_plan.rs b/language/tools/move-package/src/compilation/build_plan.rs index e347f0821c..816c55fe0f 100644 --- a/language/tools/move-package/src/compilation/build_plan.rs +++ b/language/tools/move-package/src/compilation/build_plan.rs @@ -103,13 +103,23 @@ impl BuildPlan { } /// Compilation results in the process exit upon warning/failure - pub fn compile(&self, writer: &mut W) -> Result { - self.compile_with_driver(writer, |compiler| compiler.build_and_report()) + pub fn compile( + &self, + bytecode_version: Option, + writer: &mut W, + ) -> Result { + self.compile_with_driver(writer, bytecode_version, |compiler| { + compiler.build_and_report() + }) } /// Compilation process does not exit even if warnings/failures are encountered - pub fn compile_no_exit(&self, writer: &mut W) -> Result { - self.compile_with_driver(writer, |compiler| { + pub fn compile_no_exit( + &self, + bytecode_version: Option, + writer: &mut W, + ) -> Result { + self.compile_with_driver(writer, bytecode_version, |compiler| { let (files, units_res) = compiler.build()?; match units_res { Ok((units, warning_diags)) => { @@ -131,6 +141,7 @@ impl BuildPlan { pub fn compile_with_driver( &self, writer: &mut W, + bytecode_version: Option, mut compiler_driver: impl FnMut( Compiler, ) @@ -176,6 +187,7 @@ impl BuildPlan { &project_root, root_package.clone(), transitive_dependencies, + bytecode_version, &self.resolution_graph, &mut compiler_driver, )?; diff --git a/language/tools/move-package/src/compilation/compiled_package.rs b/language/tools/move-package/src/compilation/compiled_package.rs index e81a66477a..72a9370b30 100644 --- a/language/tools/move-package/src/compilation/compiled_package.rs +++ b/language/tools/move-package/src/compilation/compiled_package.rs @@ -324,6 +324,7 @@ impl OnDiskCompiledPackage { &self, package_name: Symbol, compiled_unit: &CompiledUnitWithSource, + bytecode_version: Option, ) -> Result<()> { let root_package = self.package.compiled_package_info.package_name; assert!(self.root_path.ends_with(root_package.as_str())); @@ -349,7 +350,7 @@ impl OnDiskCompiledPackage { .with_extension(MOVE_COMPILED_EXTENSION), compiled_unit .unit - .serialize(get_bytecode_version_from_env()) + .serialize(get_bytecode_version_from_env(bytecode_version)) .as_slice(), )?; self.save_under( @@ -538,6 +539,7 @@ impl CompiledPackage { /* address mapping */ &ResolvedTable, /* whether source is available */ bool, )>, + bytecode_version: Option, resolution_graph: &ResolvedGraph, mut compiler_driver: impl FnMut( Compiler, @@ -618,6 +620,7 @@ impl CompiledPackage { deps_compiled_units.push((package_name, unit)) } } + let bytecode_version = get_bytecode_version_from_env(bytecode_version); let mut compiled_docs = None; let mut compiled_abis = None; @@ -642,7 +645,7 @@ impl CompiledPackage { if resolution_graph.build_options.generate_abis { compiled_abis = Some(Self::build_abis( - get_bytecode_version_from_env(), + bytecode_version, &model, &root_compiled_units, )); @@ -662,7 +665,10 @@ impl CompiledPackage { compiled_abis, }; - compiled_package.save_to_disk(project_root.join(CompiledPackageLayout::Root.path()))?; + compiled_package.save_to_disk( + project_root.join(CompiledPackageLayout::Root.path()), + bytecode_version, + )?; Ok(compiled_package) } @@ -722,7 +728,11 @@ impl CompiledPackage { Ok(()) } - pub(crate) fn save_to_disk(&self, under_path: PathBuf) -> Result { + pub(crate) fn save_to_disk( + &self, + under_path: PathBuf, + bytecode_version: Option, + ) -> Result { self.check_filepaths_ok()?; assert!(under_path.ends_with(CompiledPackageLayout::Root.path())); let root_package = self.compiled_package_info.package_name; @@ -749,10 +759,10 @@ impl CompiledPackage { std::fs::create_dir_all(&on_disk_package.root_path)?; for compiled_unit in &self.root_compiled_units { - on_disk_package.save_compiled_unit(root_package, compiled_unit)?; + on_disk_package.save_compiled_unit(root_package, compiled_unit, bytecode_version)?; } for (dep_name, compiled_unit) in &self.deps_compiled_units { - on_disk_package.save_compiled_unit(*dep_name, compiled_unit)?; + on_disk_package.save_compiled_unit(*dep_name, compiled_unit, bytecode_version)?; } if let Some(docs) = &self.compiled_docs { diff --git a/language/tools/move-package/src/lib.rs b/language/tools/move-package/src/lib.rs index 012684d89e..470d14ce18 100644 --- a/language/tools/move-package/src/lib.rs +++ b/language/tools/move-package/src/lib.rs @@ -134,6 +134,10 @@ pub struct BuildConfig { /// Skip fetching latest git dependencies #[clap(long = "skip-fetch-latest-git-deps", global = true)] pub skip_fetch_latest_git_deps: bool, + + /// Bytecode version to compile move code + #[clap(long = "bytecode-version", global = true)] + pub bytecode_version: Option, } #[derive(Debug, Clone, Eq, PartialEq, PartialOrd)] @@ -149,9 +153,10 @@ impl BuildConfig { /// Compile the package at `path` or the containing Move package. Exit process on warning or /// failure. pub fn compile_package(self, path: &Path, writer: &mut W) -> Result { + let bytecode_version = self.bytecode_version; let resolved_graph = self.resolution_graph_for_package(path, writer)?; let mutx = PackageLock::lock(); - let ret = BuildPlan::create(resolved_graph)?.compile(writer); + let ret = BuildPlan::create(resolved_graph)?.compile(bytecode_version, writer); mutx.unlock(); ret } @@ -163,9 +168,10 @@ impl BuildConfig { path: &Path, writer: &mut W, ) -> Result { + let bytecode_version = self.bytecode_version; let resolved_graph = self.resolution_graph_for_package(path, writer)?; let mutx = PackageLock::lock(); - let ret = BuildPlan::create(resolved_graph)?.compile_no_exit(writer); + let ret = BuildPlan::create(resolved_graph)?.compile_no_exit(bytecode_version, writer); mutx.unlock(); ret } diff --git a/language/tools/move-package/tests/test_runner.rs b/language/tools/move-package/tests/test_runner.rs index 67f7728c9a..a66a016b16 100644 --- a/language/tools/move-package/tests/test_runner.rs +++ b/language/tools/move-package/tests/test_runner.rs @@ -72,7 +72,7 @@ pub fn run_test(path: &Path) -> datatest_stable::Result<()> { .into()) } (true, _) => match BuildPlan::create(resolved_package) - .and_then(|bp| bp.compile(&mut Vec::new())) + .and_then(|bp| bp.compile(None, &mut Vec::new())) { Ok(mut pkg) => { pkg.compiled_package_info.source_digest = diff --git a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps/Move.exp b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps/Move.exp index 1722fc807b..cb5253d174 100644 --- a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps/Move.exp @@ -17,5 +17,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_assigned/Move.exp b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_assigned/Move.exp index c000418d5e..8a742e9909 100644 --- a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_assigned/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_assigned/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp index 661d318a28..d75118bee5 100644 --- a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_test_mode/Move.exp b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_test_mode/Move.exp index b4be3ab9f3..1f3aa80f74 100644 --- a/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_test_mode/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/basic_no_deps_test_mode/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/diamond_problem_backflow_resolution/Move.exp b/language/tools/move-package/tests/test_sources/compilation/diamond_problem_backflow_resolution/Move.exp index edeeaa45ca..a95d185cd4 100644 --- a/language/tools/move-package/tests/test_sources/compilation/diamond_problem_backflow_resolution/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/diamond_problem_backflow_resolution/Move.exp @@ -20,5 +20,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/diamond_problem_no_conflict/Move.exp b/language/tools/move-package/tests/test_sources/compilation/diamond_problem_no_conflict/Move.exp index edeeaa45ca..a95d185cd4 100644 --- a/language/tools/move-package/tests/test_sources/compilation/diamond_problem_no_conflict/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/diamond_problem_no_conflict/Move.exp @@ -20,5 +20,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename/Move.exp b/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename/Move.exp index 3ddf5572bf..edc8f28a60 100644 --- a/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename/Move.exp @@ -21,5 +21,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename_one/Move.exp b/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename_one/Move.exp index 9250da1cd6..6df30ab6c0 100644 --- a/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename_one/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/multiple_deps_rename_one/Move.exp @@ -21,5 +21,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/one_dep/Move.exp b/language/tools/move-package/tests/test_sources/compilation/one_dep/Move.exp index 4c9731e1f0..760887326b 100644 --- a/language/tools/move-package/tests/test_sources/compilation/one_dep/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/one_dep/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/one_dep_assigned_address/Move.exp b/language/tools/move-package/tests/test_sources/compilation/one_dep_assigned_address/Move.exp index ad6c5c7190..b523113cb5 100644 --- a/language/tools/move-package/tests/test_sources/compilation/one_dep_assigned_address/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/one_dep_assigned_address/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/one_dep_renamed/Move.exp b/language/tools/move-package/tests/test_sources/compilation/one_dep_renamed/Move.exp index 4c9731e1f0..760887326b 100644 --- a/language/tools/move-package/tests/test_sources/compilation/one_dep_renamed/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/one_dep_renamed/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/one_dep_with_scripts/Move.exp b/language/tools/move-package/tests/test_sources/compilation/one_dep_with_scripts/Move.exp index 4c9731e1f0..760887326b 100644 --- a/language/tools/move-package/tests/test_sources/compilation/one_dep_with_scripts/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/one_dep_with_scripts/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/compilation/test_symlinks/Move.exp b/language/tools/move-package/tests/test_sources/compilation/test_symlinks/Move.exp index c000418d5e..8a742e9909 100644 --- a/language/tools/move-package/tests/test_sources/compilation/test_symlinks/Move.exp +++ b/language/tools/move-package/tests/test_sources/compilation/test_symlinks/Move.exp @@ -19,5 +19,6 @@ CompiledPackageInfo { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, } diff --git a/language/tools/move-package/tests/test_sources/dep_dev_dep_diamond/Move.resolved b/language/tools/move-package/tests/test_sources/dep_dev_dep_diamond/Move.resolved new file mode 100644 index 0000000000..a03f88d78e --- /dev/null +++ b/language/tools/move-package/tests/test_sources/dep_dev_dep_diamond/Move.resolved @@ -0,0 +1,305 @@ +ResolutionGraph { + root_package_path: "tests/test_sources/dep_dev_dep_diamond", + build_options: BuildConfig { + dev_mode: true, + test_mode: false, + generate_docs: false, + generate_abis: false, + install_dir: Some( + "ELIDED_FOR_TEST", + ), + force_recompilation: false, + lock_file: Some( + "ELIDED_FOR_TEST", + ), + additional_named_addresses: {}, + architecture: None, + fetch_deps_only: false, + skip_fetch_latest_git_deps: false, + bytecode_version: None, + }, + root_package: SourceManifest { + package: PackageInfo { + name: "Root", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: None, + dev_address_assignments: None, + build: None, + dependencies: { + "A": Dependency { + kind: Local( + "./deps_only/A", + ), + subst: None, + version: None, + digest: None, + }, + "C": Dependency { + kind: Local( + "./deps_only/C", + ), + subst: None, + version: None, + digest: None, + }, + }, + dev_dependencies: { + "B": Dependency { + kind: Local( + "./deps_only/B", + ), + subst: None, + version: None, + digest: None, + }, + }, + }, + graph: { + "Root": [ + ( + "A", + Outgoing, + ), + ( + "C", + Outgoing, + ), + ( + "B", + Outgoing, + ), + ], + "A": [ + ( + "Root", + Incoming, + ), + ( + "B", + Outgoing, + ), + ( + "D", + Outgoing, + ), + ], + "B": [ + ( + "A", + Incoming, + ), + ( + "C", + Outgoing, + ), + ( + "Root", + Incoming, + ), + ], + "C": [ + ( + "B", + Incoming, + ), + ( + "Root", + Incoming, + ), + ], + "D": [ + ( + "A", + Incoming, + ), + ], + }, + package_table: { + "A": ResolutionPackage { + resolution_graph_index: "A", + source_package: SourceManifest { + package: PackageInfo { + name: "A", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: None, + dev_address_assignments: None, + build: None, + dependencies: { + "B": Dependency { + kind: Local( + "../B", + ), + subst: None, + version: None, + digest: None, + }, + }, + dev_dependencies: { + "D": Dependency { + kind: Local( + "../D", + ), + subst: None, + version: None, + digest: None, + }, + }, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: {}, + source_digest: "ELIDED_FOR_TEST", + }, + "B": ResolutionPackage { + resolution_graph_index: "B", + source_package: SourceManifest { + package: PackageInfo { + name: "B", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: None, + dev_address_assignments: None, + build: None, + dependencies: {}, + dev_dependencies: { + "C": Dependency { + kind: Local( + "../C", + ), + subst: None, + version: None, + digest: None, + }, + }, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: {}, + source_digest: "ELIDED_FOR_TEST", + }, + "C": ResolutionPackage { + resolution_graph_index: "C", + source_package: SourceManifest { + package: PackageInfo { + name: "C", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: None, + dev_address_assignments: None, + build: None, + dependencies: {}, + dev_dependencies: {}, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: {}, + source_digest: "ELIDED_FOR_TEST", + }, + "D": ResolutionPackage { + resolution_graph_index: "D", + source_package: SourceManifest { + package: PackageInfo { + name: "D", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: None, + dev_address_assignments: None, + build: None, + dependencies: {}, + dev_dependencies: {}, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: {}, + source_digest: "ELIDED_FOR_TEST", + }, + "Root": ResolutionPackage { + resolution_graph_index: "Root", + source_package: SourceManifest { + package: PackageInfo { + name: "Root", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: None, + dev_address_assignments: None, + build: None, + dependencies: { + "A": Dependency { + kind: Local( + "./deps_only/A", + ), + subst: None, + version: None, + digest: None, + }, + "C": Dependency { + kind: Local( + "./deps_only/C", + ), + subst: None, + version: None, + digest: None, + }, + }, + dev_dependencies: { + "B": Dependency { + kind: Local( + "./deps_only/B", + ), + subst: None, + version: None, + digest: None, + }, + }, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: {}, + source_digest: "ELIDED_FOR_TEST", + }, + }, +} diff --git a/language/tools/move-package/tests/test_sources/nested_deps_git_local/Move.resolved b/language/tools/move-package/tests/test_sources/nested_deps_git_local/Move.resolved new file mode 100644 index 0000000000..f3650404d0 --- /dev/null +++ b/language/tools/move-package/tests/test_sources/nested_deps_git_local/Move.resolved @@ -0,0 +1,205 @@ +ResolutionGraph { + root_package_path: "tests/test_sources/nested_deps_git_local", + build_options: BuildConfig { + dev_mode: true, + test_mode: false, + generate_docs: false, + generate_abis: false, + install_dir: Some( + "ELIDED_FOR_TEST", + ), + force_recompilation: false, + lock_file: Some( + "ELIDED_FOR_TEST", + ), + additional_named_addresses: {}, + architecture: None, + fetch_deps_only: false, + skip_fetch_latest_git_deps: false, + bytecode_version: None, + }, + root_package: SourceManifest { + package: PackageInfo { + name: "NestedDeps", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: Some( + { + "std": Some( + 00000000000000000000000000000001, + ), + }, + ), + dev_address_assignments: None, + build: None, + dependencies: { + "MoveNursery": Dependency { + kind: Git( + GitInfo { + git_url: "https://github.com/move-language/move", + git_rev: "781c844", + subdir: "language/move-stdlib/nursery", + }, + ), + subst: None, + version: None, + digest: None, + }, + }, + dev_dependencies: {}, + }, + graph: { + "NestedDeps": [ + ( + "MoveNursery", + Outgoing, + ), + ], + "MoveNursery": [ + ( + "NestedDeps", + Incoming, + ), + ( + "MoveStdlib", + Outgoing, + ), + ], + "MoveStdlib": [ + ( + "MoveNursery", + Incoming, + ), + ], + }, + package_table: { + "MoveNursery": ResolutionPackage { + resolution_graph_index: "MoveNursery", + source_package: SourceManifest { + package: PackageInfo { + name: "MoveNursery", + version: ( + 1, + 5, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: None, + dev_address_assignments: Some( + { + "std": 00000000000000000000000000000001, + }, + ), + build: None, + dependencies: { + "MoveStdlib": Dependency { + kind: Local( + "..", + ), + subst: None, + version: None, + digest: None, + }, + }, + dev_dependencies: {}, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: { + "std": 00000000000000000000000000000001, + }, + source_digest: "ELIDED_FOR_TEST", + }, + "MoveStdlib": ResolutionPackage { + resolution_graph_index: "MoveStdlib", + source_package: SourceManifest { + package: PackageInfo { + name: "MoveStdlib", + version: ( + 1, + 5, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: Some( + { + "std": None, + }, + ), + dev_address_assignments: Some( + { + "std": 00000000000000000000000000000001, + }, + ), + build: None, + dependencies: {}, + dev_dependencies: {}, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: { + "std": 00000000000000000000000000000001, + }, + source_digest: "ELIDED_FOR_TEST", + }, + "NestedDeps": ResolutionPackage { + resolution_graph_index: "NestedDeps", + source_package: SourceManifest { + package: PackageInfo { + name: "NestedDeps", + version: ( + 0, + 0, + 0, + ), + authors: [], + license: None, + custom_properties: {}, + }, + addresses: Some( + { + "std": Some( + 00000000000000000000000000000001, + ), + }, + ), + dev_address_assignments: None, + build: None, + dependencies: { + "MoveNursery": Dependency { + kind: Git( + GitInfo { + git_url: "https://github.com/move-language/move", + git_rev: "781c844", + subdir: "language/move-stdlib/nursery", + }, + ), + subst: None, + version: None, + digest: None, + }, + }, + dev_dependencies: {}, + }, + package_path: "ELIDED_FOR_TEST", + renaming: {}, + resolution_table: { + "std": 00000000000000000000000000000001, + }, + source_digest: "ELIDED_FOR_TEST", + }, + }, +} diff --git a/language/tools/move-package/tests/test_sources/parsing/invalid_identifier_package_name/Move.exp b/language/tools/move-package/tests/test_sources/parsing/invalid_identifier_package_name/Move.exp index bd137f194d..21da7cb042 100644 --- a/language/tools/move-package/tests/test_sources/parsing/invalid_identifier_package_name/Move.exp +++ b/language/tools/move-package/tests/test_sources/parsing/invalid_identifier_package_name/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/parsing/minimal_manifest/Move.exp b/language/tools/move-package/tests/test_sources/parsing/minimal_manifest/Move.exp index dc8b7e4951..902cee9609 100644 --- a/language/tools/move-package/tests/test_sources/parsing/minimal_manifest/Move.exp +++ b/language/tools/move-package/tests/test_sources/parsing/minimal_manifest/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/basic_no_deps/Move.exp b/language/tools/move-package/tests/test_sources/resolution/basic_no_deps/Move.exp index 5d27cc1fe4..79e181224f 100644 --- a/language/tools/move-package/tests/test_sources/resolution/basic_no_deps/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/basic_no_deps/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_assigned/Move.exp b/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_assigned/Move.exp index c534947764..942d77ad1c 100644 --- a/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_assigned/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_assigned/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp b/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp index 02ca66b3a1..616019eb23 100644 --- a/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/basic_no_deps_address_not_assigned_with_dev_assignment/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/dep_good_digest/Move.exp b/language/tools/move-package/tests/test_sources/resolution/dep_good_digest/Move.exp index c8adbaa752..3b642722d4 100644 --- a/language/tools/move-package/tests/test_sources/resolution/dep_good_digest/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/dep_good_digest/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/diamond_problem_backflow_resolution/Move.exp b/language/tools/move-package/tests/test_sources/resolution/diamond_problem_backflow_resolution/Move.exp index e7f2e139ac..2d50cf873b 100644 --- a/language/tools/move-package/tests/test_sources/resolution/diamond_problem_backflow_resolution/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/diamond_problem_backflow_resolution/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/diamond_problem_no_conflict/Move.exp b/language/tools/move-package/tests/test_sources/resolution/diamond_problem_no_conflict/Move.exp index 19d5e0a453..4d75a83ce6 100644 --- a/language/tools/move-package/tests/test_sources/resolution/diamond_problem_no_conflict/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/diamond_problem_no_conflict/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/multiple_deps_rename/Move.exp b/language/tools/move-package/tests/test_sources/resolution/multiple_deps_rename/Move.exp index bea1ff066b..82a34b7bf2 100644 --- a/language/tools/move-package/tests/test_sources/resolution/multiple_deps_rename/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/multiple_deps_rename/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/one_dep/Move.exp b/language/tools/move-package/tests/test_sources/resolution/one_dep/Move.exp index 0f2d399fea..e73e8ee1fa 100644 --- a/language/tools/move-package/tests/test_sources/resolution/one_dep/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/one_dep/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/one_dep_assigned_address/Move.exp b/language/tools/move-package/tests/test_sources/resolution/one_dep_assigned_address/Move.exp index 38d5123c49..7d0f996974 100644 --- a/language/tools/move-package/tests/test_sources/resolution/one_dep_assigned_address/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/one_dep_assigned_address/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/one_dep_multiple_of_same_name/Move.exp b/language/tools/move-package/tests/test_sources/resolution/one_dep_multiple_of_same_name/Move.exp index 75f7ac92bf..c91b3436a9 100644 --- a/language/tools/move-package/tests/test_sources/resolution/one_dep_multiple_of_same_name/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/one_dep_multiple_of_same_name/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/one_dep_reassigned_address/Move.exp b/language/tools/move-package/tests/test_sources/resolution/one_dep_reassigned_address/Move.exp index af1f30c513..d1f78a44b5 100644 --- a/language/tools/move-package/tests/test_sources/resolution/one_dep_reassigned_address/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/one_dep_reassigned_address/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo { diff --git a/language/tools/move-package/tests/test_sources/resolution/one_dep_unification_across_local_renamings/Move.exp b/language/tools/move-package/tests/test_sources/resolution/one_dep_unification_across_local_renamings/Move.exp index 5d2dc898c0..3495da8e38 100644 --- a/language/tools/move-package/tests/test_sources/resolution/one_dep_unification_across_local_renamings/Move.exp +++ b/language/tools/move-package/tests/test_sources/resolution/one_dep_unification_across_local_renamings/Move.exp @@ -13,6 +13,7 @@ ResolutionGraph { architecture: None, fetch_deps_only: false, skip_fetch_latest_git_deps: false, + bytecode_version: None, }, root_package: SourceManifest { package: PackageInfo {