Sync changes from Agave master (Feb 23)#12
Sync changes from Agave master (Feb 23)#12mircea-c wants to merge 29 commits intoanza-xyz:masterfrom
Conversation
* Bumps solana-sbpf to v0.14.1 * Uses sbpf_version.stack_frame_gaps() flag for MemoryRegion::new_writable_gapped(). * Rekeys enable_sbpf_v3_deployment_and_execution. * Shifts the tests guest address space up to avoid the difference in access_violation_err between EbpfError::StackAccessViolation and EbpfError::AccessViolation.
…(#10155) sbpf-debugger: control the debug port through the invocation context.
* Create transaction.rs * Update toml files * Do not build everything for sbf * Sort toml file
* Fix function * Add unit test
* SIMD-0464: Vote Account Initialize V2 * do not disable legacy instruction
* refactor: remove reloading bool argument thread Large majority of invocations of program loading have `reloading` set to `false`. The only non-test use where reloading is used is in deployment, where an inlined call to `reload` makes more sense anyhow. Presence of this argument/option was making the code much more difficult to grok for me, so I went ahead and removed the argument in most places. It can be added back on a case-by-case basis as needed in the future, though due to the soundness requirements, I believe calling `reload` directly will always make more sense anyway. * ledger-tool
… transaction context (#10524) * Switch unsafe cell * Use into_inter
These are detected by the `clippy::redundant_clone` lint which I hope to deny by default in near future. ref. anza-xyz/agave#10121
* svm: add metrics feature * svm: mask out `execute_timings` when `metrics` is enabled
* sbpf-debugger: pass debug_metadata to sbpf Take advantage of the recent merge at solana-sbpf (anza-xyz/sbpf#80) where VM creators could pass debug metadata that can later be visible to the debugger client. * Remove index_in_trace from debug_metadata. With (anza-xyz/agave#10557) the order of the instruction trace would change. It's possible to bring it back with a follow-up PR if necessary.
Split changes for reordering instruction trace
* transaction_processor: improve comments * inline `load_program_from_bytes` * reinline variable
Create configure_instruction_at_index
Rename payer
Revert "refactor: non-functional program-runtime changes for clarity (#10510)" This reverts commit ad004b758407ff95b68c33a904862fc01d0c246a.
This reverts commit 5db07ad5ed356a69b7d00c4d7be2c148c2119937. Type annotation added to address type inference failure with some nightly versions of rustc.
…#10694) * Renames serialize_parameters_unaligned => serialize_parameters_for_abiv0. * Renames serialize_parameters_aligned => serialize_parameters_for_abiv1. * Adds more comments.
* Fix and improve tests * Split test * Merge macros * Fix lint
…rams Bumps the agave pin to the last cherry-picked commit. Adds patch entries for solana-bpf-loader-program and solana-loader-v4-program to use SVM's local copies, fixing a signature mismatch caused by the metrics feature (#10529) adding #[cfg]-gated params that agave's copies don't handle.
5557a1e to
e2f09f5
Compare
solana-rent 3.1.0 deprecated lamports_per_byte_year (renamed to lamports_per_byte in v4), exemption_threshold, and burn_percent. Suppress warnings in test-only code until the workspace bumps to solana-rent 4.x.
1beb279 to
c6563a6
Compare
buffalojoec
left a comment
There was a problem hiding this comment.
Mind adding more SVM commits through anza-xyz/agave#10679?
ff942a5 to
7850b17
Compare
7850b17 to
e3fd0ac
Compare
|
@buffalojoec I added all the commits that were merged until today: anza-xyz/agave#10197 and anza-xyz/agave#10748. As for anza-xyz/agave#10679, |
There was a problem hiding this comment.
I think we might be missing anza-xyz/agave#10398 from the history.
It's older than this range, but I just happened to spot it in my review.
|
Done. Added anza-xyz/agave#10398 |
Do we care about the ordering? |
1def558 to
346606b
Compare
Well, I clearly didn't think about it 😆 I rewrote the commits to be in the right order. |
buffalojoec
left a comment
There was a problem hiding this comment.
Sorry @mircea-c but this is a lot to review and I'm not 100% sure the best way to ensure we haven't a) missed any commits from Agave or b) included all changes from each commit that touched all files in SVM. Plus, the PR is interleaved with CI and other patch-fixes, making this a pretty big beast.
Can we break this up?
|
I don't think human review is the right way to go about this in the first place. Could we figure out what's the command to verify that the tree here and tree in agave are the same? Perhaps doesn't really matter if the history is fully preserved, although |
100% agree. I'll see if I can put a script together that can do this and I'll open a PR. |
2598e5c to
fb2fdd4
Compare
|
I put together some tooling to programmatically keep Agave in sync with SVM, as well as proposed a new workflow. |
Syncs 19 commits from Agave master that touched SVM-owned files, plus maintenance commits.
Cherry-picks
Agave commits cherry-picked into SVM-owned paths (ordered oldest to newest):
svm/,program-runtime/,transaction-context/,programs/system/,programs/bpf_loader/,programs/loader-v4/,programs/compute-budget/programs/system/andrustfmt.tomlto Rust 2024 styleSVM maintenance
cc74332e59(last cherry-picked commit)[patch]entries forsolana-bpf-loader-programandsolana-loader-v4-programso thatsolana-builtins(agave git dep) uses SVM's local copies. Required because #10529 added#[cfg(feature = "metrics")]-gated parameters toprogram-runtime's deploy API that agave's copies don't handle.#[allow(deprecated)]in the system program test mockup forRent::lamports_per_byte_year, deprecated insolana-rent 3.1.0and renamed tolamports_per_bytein v4.