Rebase to e33e3c1 - #385
Conversation
The `values_impl::IntegerValue` type introduced a rather unnecessary wrapper for integer values, creating to conversions back and force to `Value`. Moreover, the newtype wrapper `Value` for `ValueImpl` was unnecessary as well and created overhead because it cannot be eliminated by the compiler when applied in iterators (as in `values.into_iter().map(Value).collect()`). Both have been removed.
This enables intermediate tools to use `$` in identifiers to separate from user identifiers, e.g. names for public struct functions. This is only supported from bytecode version 9 onwards. Co-authored-by: Teng Zhang <rahxephon89@163.com>
…__`. (aptos-labs#17854) * [compiler & language] Support builtin constant `__COMPILE_FOR_TESTING__`. Allow code to branch over a compile time constant `__COMPILE_FOR_TESTING__`. The non-reachable branch will be optimized (or at least turned into dead code.) The name is under discussion. We should make the right decision here since any future compile time constants should be following this naming convention. I see compile constants as an equivalent to Rust attributes, at least if it comes to conditional compilation. This falls into the categorie of builtin constants which we already have for the spec llanguage. At the same time, we would enable `MAX_U64` et. all as builtin constants in the language. Builtin constants can be shadowed by the user, so no harm to existing move programs would be implied. * Fully support MIN/MAX for all integer types. Also move unit test out of framework, because it may not compile with older compilers.
Co-authored-by: Igor <igor-aptos@users.noreply.github.com>
Pushed to one node and let it run overnight. Seems like compactions can keep up.
…os-labs#17867) * OrderBook use of iterators and utilities * don't use iterators
…s-compile + echo-aware)
…s), keep Movement governed-gas/treasury + test helpers, dedup merged test fns
…ting match arms (merge artifact)
47317bf to
8a43dbb
Compare
# Resolve consensus conflicts from the e33 rebase ## Summary Resolves the `consensus/` merge conflicts left after merging upstream [e33e3c1](e33e3c1) into [m1](https://github.com/movementlabsxyz/aptos-core/tree/m1). ## Commits | Commit | Change | |--------|--------| | [2c78c02](2c78c02) | Drop the old execution pipeline superseded by e33's new pipeline ([6bb63f6](6bb63f6)) — delete `execution_pipeline.rs`, `set_execution_result`, `mark_successful_pre_commit_for_test` (see below). | | [4d0e30b](4d0e30b) | Parallel proposal verify — adopt e33's `rayon::join` payload+signature verification ([877e6bb](877e6bb)), keep Movement's `size_limits` guard ([eb20f39](eb20f39), #326) | | [08e5e7e](08e5e7e587) | Preserve the `set_randomness` deadlock guard ([04d582b](04d582b), #322). | | [5652f63](5652f63) | Add upstream's `StateComputer::new_epoch` params — `consensus_onchain_config` ([1ba9a45](1ba9a45)), `persisted_auxiliary_info_version` ([69acc1f](69acc1f), aptos-labs#16927), `network_sender` ([9ecf4a6](9ecf4a6)). | | [e0ff529](e0ff529) | Drop the unused `new_pipeline_enabled` param from `TExecutionClient::start_epoch` — no readers after e33 removed the retry logic that consumed it ([d3f4ac3](d3f4ac3)). | | [102927e](102927e) | Build `network_sender` in `ExecutionProxyClient::start_epoch` — e33 ([9ecf4a6](9ecf4a6)) relocated its construction out of `spawn_decoupled_execution` so one instance feeds both `spawn_decoupled_execution` and `new_epoch`. | | [5010f3a](5010f3a) | Drop the redundant `order_vote_enabled` param from `StateComputer::new_epoch` — `PipelineBuilder` now re-derives it from `consensus_onchain_config` ([d966675](d966675), aptos-labs#13023). | | [e38419e](e38419e) | Thread Movement's `virtual_genesis_block_id` through `new_epoch` / `start_epoch` ([6210a73](6210a73)). | | [8b275c5](8b275c5) | Drop obsolete test-only scaffolding e33 removed ([29fadb1](29fadb1)) — `EmptyStateComputer` + `test_commit_sync_race` use the removed `StateComputer::commit`, and `state_computer_tests.rs` is orphaned. | | [1a63e85](1a63e85c89) | Fix two compile errors surfaced by `cargo check` — import `HashValue` in `state_computer.rs`, and thread `size_limits` through the e33-added `OptProposalMsg::verify` path so it enforces #326's batch-size guard ([eb20f39](eb20f39)). | ## Old execution pipeline removal [ExecutionPipeline](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/execution_pipeline.rs#L58) was the old decoupled-execution engine — its API was [spawn()](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/execution_pipeline.rs#L63) (start the background execution task) and [queue()](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/execution_pipeline.rs#L93) (submit an ordered block). Its sole owner was [ExecutionProxy](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/state_computer.rs#L76), which on m1 held an [execution_pipeline: ExecutionPipeline](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/state_computer.rs#L84) field and spawned it in [new()](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/state_computer.rs#L90). Blocks queued into it ran execution and produced a [PipelineExecutionResult](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L325), pushed onto the block via [set_execution_result](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L324). That whole chain — [ExecutionPipeline](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/execution_pipeline.rs#L58) → [PipelineExecutionResult](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L325) → [set_execution_result](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L324) — was one engine-and-result-delivery unit. e33's new pipeline ([6bb63f6](6bb63f6)) rewrote [ExecutionProxy](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/state_computer.rs#L76) to drop the [execution_pipeline](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/state_computer.rs#L84) field entirely: execution now runs as per-block `Shared` [TaskFuture](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L70)s wired by [pipeline_builder](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/pipeline/pipeline_builder.rs#L104), and [pre_commit_fut](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L89) is a [TaskFuture](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L70) with no `.lock()`. So the old unit's only consumer stopped using it, upstream removed the machinery in [29fadb1](29fadb1), and nothing on the merged branch references [ExecutionPipeline](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/execution_pipeline.rs#L58), its [spawn](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/execution_pipeline.rs#L63)/[queue](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/src/execution_pipeline.rs#L93), [PipelineExecutionResult](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L325), or [set_execution_result](https://github.com/movementlabsxyz/aptos-core/blob/e85169336ab9d30cd217ec9d666ebcf60469f470/consensus/consensus-types/src/pipelined_block.rs#L324). ## Verification All `consensus/` conflict markers resolved. `cargo check -p aptos-consensus` passes (one pre-existing unrelated warning: unused `time_service` in `NetworkSender`).
- thread traversal_context through initialize_governed_gas_pool to match exec_function's updated 7-arg signature - pass the dealer public key to DefaultDKG::generate_transcript in the rand network_messages test - switch that test from the removed WeightedConfig name to the concrete WeightedConfigBlstrs alias
… ReplayNetworkSelection variants
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Found 11 test failures on Blacksmith runners: Failures
|
…r output (format-only, #365 logic unchanged)
|
@rubujubi does Movement support orderless / nonce transactions? This PR exposes them in the CLI via |
|
A couple things to flag in the SDK:
but there doesn't appear to be a setter for either field. They're hardcoded false in new(), never mutated, and the fields are private so no other crate can set them. The factory's only with_* methods are gas/expiration/chain-id. So the It's not a bug, more like dead weight, just wanted to check that upstream didn't add a builder setter (e.g. a with_payload_v2_format(...)) that maybe didn't get carried through the rebase? Not sure if a factory setter dropped in the merge, or are these fields intentionally inert for now?
No callers currently, so it's latent, but figured I'd flag for awareness. |
Thanks, Movement does not support it yet. I think it is fine to leave it here since currently |
seanyoung
left a comment
There was a problem hiding this comment.
I've gone through the merge conflicts and they all look good to me.
The governed gas pool merge moves things around but everything is still there. I will double check once the governed gas pool is ready for merging.
I have to say it painstaking work, I did my best but I hope I did not miss anything.
|
validated through ephemeral mainnet. The chain is health. let's go ahead and land it. |
Description
Downstream Aptos pre license change commits from last fork f7a17a6 (on movement) to e33e3c1 (on upstream) onto movement m1.
This PR is created by rebasing onto e33e3c1, and solve the merge conflicts. Mechanical conflicts as explained in the below section has been directly fixed in the merge commit.
Mechanical conflicts — rename/delete resolutions
.github/{workflows,actions}rename/delete.bak(archived); upstream deleted them → kept Movement's.bakaptos-rosettaremovalgit rm) + agit rm -r crates/aptos-rosettasweep to catch any upstream re-addsmy_first_dappexample manifestsTotal: 28 rename/delete conflicts