fix(benchops): avoid panic by supporting recursive store timing
Benchops has been broken since we fixed a gnovm issue in https://github.com/gnolang/gno/pull/4376.
That change (https://github.com/ltzmaxwell/gno/blob/9aea6d5a7117ac775d5d2fb22decb44733d93e72/gnovm/pkg/gnolang/store.go#L492-L495) caused loadObjectSafe() function to call itself recursively: loadObjectSafe -> fillPackage -> GetBlock -> GetObject -> GetObjectSafe -> loadObjectSafe.
Since benchops storage did not support recursive calls, the tool was panicking.
This PR:
- Fixes the panic by adding support for recursive store calls in benchops storage. https://github.com/gnolang/gno/commit/9372dc35015e743b505caa6e2d109f9af0ace3fd
- Adds a GitHub Actions workflow that runs benchops on every PR to prevent future regressions and upload results as artifacts. https://github.com/gnolang/gno/commit/ee7d735d307f7059c8f4450039cb2286d2d9360d
- Applies minor documentation fixes. https://github.com/gnolang/gno/commit/28a4240fef000e0faf143bc2a9b38ff49908192e https://github.com/gnolang/gno/commit/9f96bd4960180f27ede3f947b262e873d0a08488
🛠 PR Checks Summary
🔴 Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff
Manual Checks (for Reviewers):
- [ ] IGNORE the bot requirements for this PR (force green CI check)
Read More
🤖 This bot helps streamline PR reviews by verifying automated checks and providing guidance for contributors and reviewers.
✅ Automated Checks (for Contributors):
🟢 Maintainers must be able to edit this pull request (more info) 🔴 Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff
☑️ Contributor Actions:
- Fix any issues flagged by automated checks.
- Follow the Contributor Checklist to ensure your PR is ready for review.
- Add new tests, or document why they are unnecessary.
- Provide clear examples/screenshots, if necessary.
- Update documentation, if required.
- Ensure no breaking changes, or include
BREAKING CHANGEnotes. - Link related issues/PRs, where applicable.
☑️ Reviewer Actions:
- Complete manual checks for the PR, including the guidelines and additional checks if applicable.
📚 Resources:
Debug
Automated Checks
Maintainers must be able to edit this pull request (more info)
If
🟢 Condition met └── 🟢 And ├── 🟢 The base branch matches this pattern: ^master$ └── 🟢 The pull request was created from a fork (head branch repo: aeddi/gno)Then
🟢 Requirement satisfied └── 🟢 Maintainer can modify this pull requestChanges to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff
If
🟢 Condition met └── 🟢 And ├── 🟢 The base branch matches this pattern: ^master$ └── 🟢 A changed file matches this pattern: ^docs/ (filename: docs/builders/deploy-packages.md)Then
🔴 Requirement not satisfied └── 🔴 And ├── 🟢 Or │ ├── 🟢 Pull request author is a member of the team: tech-staff │ └── 🔴 At least 1 user(s) of the team tech-staff reviewed pull request(with state "APPROVED") └── 🔴 Or ├── 🔴 Pull request author is a member of the team: devrels └── 🔴 At least 1 user(s) of the team devrels reviewed pull request(with state "APPROVED")Manual Checks
**IGNORE** the bot requirements for this PR (force green CI check)
If
🟢 Condition met └── 🟢 On every pull requestCan be checked by
- Any user with comment edit permission
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:loudspeaker: Thoughts on this report? Let us know!