Problem
SVM-related conformance code is growing within the conformance module of the solana-svm crate. Not all of it is related to the solana-svm crate itself, but rather the "SVM" domain.
We should give this stuff its own crate.
Proposed Solution
Extract svm/conformance into its own crate - solana-svm-conformance.
- This new crate should be a resident of the
dev-bins workspace.
- This new crate will require
crate-type = ["lib", "cdylib"] in its manifest.
- This new crate should be entirely gated under
#![cfg(feature = "agave-unstable-api")] like most other Agave crates.
- This new crate should still gate everything protobuf/prost/FFI behind a crate feature, but it should be named
ffi instead of conformance, exactly as solana-svm was doing with its conformance feature.
solana-svm will have no need for its conformance crate feature so it can be removed.
solana-svm APIs like process_message may have to be made pub under dev-context-only-utils.
- Consumers like
programs/sbf will need updating.
Part of #12378
Problem
SVM-related conformance code is growing within the
conformancemodule of thesolana-svmcrate. Not all of it is related to thesolana-svmcrate itself, but rather the "SVM" domain.We should give this stuff its own crate.
Proposed Solution
Extract
svm/conformanceinto its own crate -solana-svm-conformance.dev-binsworkspace.crate-type = ["lib", "cdylib"]in its manifest.#![cfg(feature = "agave-unstable-api")]like most other Agave crates.ffiinstead ofconformance, exactly assolana-svmwas doing with itsconformancefeature.solana-svmwill have no need for itsconformancecrate feature so it can be removed.solana-svmAPIs likeprocess_messagemay have to be madepubunderdev-context-only-utils.programs/sbfwill need updating.Part of #12378