[Feature] Allow use of evaluate_function for nested program calls in CallStack::PackageRun
#2287
Labels
does not block mainnet
For when we make decisions that this will not block mainnet.
🚀 Feature
We currently call
execute_function
for every nested call in a program, which can be quite costly. We avoid this inCallStack::CheckDeployment
by only executing the top level request, we may be able to avoid it inCallStack::PackageRun
by usingevaluate_function
.You can test this by running
cargo test --features timer package::clean::tests::test_clean_with_import -- --nocapture
. You will see some obstacles. When always usingexecute_function
, we explicitly load new registers for the new nested call:However, when using
evaluate_function
for nested calls, we do not properly propagate the program information:See this PR for more background: https://github.com/AleoHQ/snarkVM/pull/2285
This is low priority because package_run is only run client-side or on our CI.
The text was updated successfully, but these errors were encountered: