Closed xermicus closed 1 month ago
bot fmt
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7457393 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 3-00b383a4-2df6-4f13-884d-24631d5a4793
to cancel this command or bot cancel
to cancel all commands in this pull request.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7457393 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7457393/artifacts/download.
bot fmt
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7494314 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 12-0aadee30-72f5-4b03-bfcf-f143be07c04f
to cancel this command or bot cancel
to cancel all commands in this pull request.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7494314 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7494314/artifacts/download.
Your editor seems to be adding ; to return statements. It adds some noise and rustfmt doesn't seem to care. Can you disable?
Yeah I reverted them to remove the noise. The formatter just gets invoked on save - I guess those were a recent addition and the CI hasn't updated the toolchain for a while
/cmd --help
The /cmd benchmarks do not work, yet. Cause it uses the omni bencher. Use the bench bot for now like this: https://github.com/paritytech/polkadot-sdk/pull/5845#issuecomment-2387186013
bot bench substrate-pallet --pallet=pallet_revive
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507078 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 14-da218fe6-fbe0-4ff0-a3cc-45b201e6d2f7
to cancel this command or bot cancel
to cancel all commands in this pull request.
The /cmd benchmarks do not work, yet. Cause it uses the omni bencher. Use the bench bot for now like this: #5845 (comment)
Ah, was unsure of the status, thanks!
bot fmt
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507172 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 15-3dc65ad4-f628-47a7-bc82-81af52413e55
to cancel this command or bot cancel
to cancel all commands in this pull request.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507172 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507172/artifacts/download.
bot bench substrate-pallet --pallet=pallet_revive
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507745 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 16-27b31215-eab9-4429-b2ae-e96fe080a203
to cancel this command or bot cancel
to cancel all commands in this pull request.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507078 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507078/artifacts/download.
bot bench substrate-pallet --pallet=pallet_revive
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508035 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 17-5dece634-fb55-44a2-b477-897c58349b96
to cancel this command or bot cancel
to cancel all commands in this pull request.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507745 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7507745/artifacts/download.
bot fmt
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508500 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 18-21acba8f-a66a-4c54-92b2-f2a8479866bf
to cancel this command or bot cancel
to cancel all commands in this pull request.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/fmt/fmt.sh"
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508500 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508500/artifacts/download.
bot bench substrate-pallet --pallet=pallet_revive
@xermicus https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508687 was started for your command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
. Check out https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/pipelines?page=1&scope=all&username=group_605_bot to know what else is being executed currently.
Comment bot cancel 19-50a5cc30-d1c8-42cf-9b44-b433235831ab
to cancel this command or bot cancel
to cancel all commands in this pull request.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508035 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508035/artifacts/download.
@xermicus Command "$PIPELINE_SCRIPTS_DIR/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --features=riscv --pallet=pallet_revive
has finished. Result: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508687 has finished. If any artifacts were generated, you can download them from https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7508687/artifacts/download.
This PR introduces the concept of immutable storage data, used for Solidity immutable variables.
This is a minimal implementation. Immutable data is attached to a contract; to keep
ContractInfo
fixed in size, we only store the length there, and store the immutable data in a dedicated storage map instead. Which comes at the cost of requiring an additional storage read (costly) for contracts using this feature.We discussed more optimal solutions not requiring any additional storage accesses internally, but they turned out to be non-trivial to implement. Another optimization benefiting multiple calls to the same contract in a single call stack would be to cache the immutable data in
Stack
. However, this potential creates a DOS vulnerability (the attack vector is to call into as many contracts in a single stack as possible, where they all have maximum immutable data to fill the cache as efficiently as possible). So this either has to be guaranteed to be a non-issue by limits, or, more likely, to have some logic to bound the cache. Eventually, we should think about introducing the concept of warm and cold storage reads (akin to EVM). Since immutable variables are commonly used in contracts, this change is blocking our initial launch and we should only optimize it properly in follow-ups.This PR also disables the
set_code_hash
API (which isn't usable for Solidity contracts without pre-compiles anyways). With immutable storage attached to contracts, we now want to run the constructor of the new code hash to collect the immutable data duringset_code_hash
. This will be implemented in a follow up PR.