This is a quick note for early-stage development.
- Support abstract-interpretation style for experssion?
Please ensure the following commands pass if you have changed the code:
cargo check --all
cargo test --all --all-features
cargo +nightly fmt -- --check
cargo clippy --all --all-targets --all-features -- -D warnings
- The
debug-backend
anddebug-frontend
will be used by other projects like Foundry. Therefore, it is crucial to avoid introducing any circular dependencies. The following crates are safe to use:foundry-block-explorers
foundry-compiler
foundry-evm
andfoundry-common
: theoretically safe to use, but it is recommended not to use them indebug-backend
.
- The
anvil
dependency is safe to use as it does not depend on any debugger crates (recommended to use only in theedb
crate). - The
utils
crate is intended for functions that should either be used by other projects like Foundry or generally by all EDB crates. Functions used exclusively by a single EDB crate should be placed within that crate. - Error message does not need to start with a capital letter.
- Tracing messages should be in lowercase.
- Migrate the Foundry Debugger into EDB.
- Redesign the UI to support complex user input.
- Support command history.
- Support compilation cache
- Move the dependency declarations to the top of
cargo.toml
. - Rewrite the subject contract, to add
public
to all storage variables and functions. - Rewrite the subject contract, to enforce a storage update for each local variable update.
- Debug session layout dump.
- When source code is not available on
Etherscan
, we should go forBlockscout
. - Make compilation multi-threaded.
- feat: A new feature for the user.
- fix: A bug fix.
- docs: Documentation only changes.
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc).
- refactor: A code change that neither fixes a bug nor adds a feature.
- perf: A code change that improves performance.
- test: Adding missing tests or correcting existing tests.
- chore: Changes to the build process or auxiliary tools and libraries such as documentation generation.
- ci: Changes to CI configuration files and scripts (e.g., GitHub Actions, CircleCI).
- build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm).
- revert: Reverts a previous commit.