Repository navigation
perf: protected interface destructors; bump numerical-toolbox to 63c9b91 - #30
Merged
Merged
Conversation
Picks up NT53–NT65 (now shipped upstream), the NT66 SE(2) spec, and upstream's protected, non-virtual interface destructors. The roadmap note about the pin is updated to match. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mmp77ieEy16GxJL8KsLsVx
Same change as numerical-toolbox-cpp#361. NewtonEulerBody and EulerLagrangeDynamics declared `virtual ~I() = default`. That puts a deleting destructor in every implementation's vtable, which links operator delete, and with it malloc/free, into heap-free firmware. Nothing in the library, the tests or the simulator destroys an object through these interfaces, so both now have a protected, non-virtual destructor. Deleting through an interface pointer becomes a compile error. The rule is updated in AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, the C++ instructions and the reviewer agent. The roadmap specs that declare new interfaces (JacobianProvider, InverseDynamicsModel, InertialRegressor, PathGeometry, JointLimits) follow it too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mmp77ieEy16GxJL8KsLsVx
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Max errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|---|
| ✅ ACTION | actionlint | 7 | 0 | 0 | 0.7s | ||
| ✅ CPP | clang-format | 35 | 0 | 0 | 0 | 0.72s | |
| ✅ CPP | cppcheck | 35 | 0 | 0 | 1.21s | ||
| ✅ DOCKERFILE | hadolint | 1 | 0 | 0 | 0.68s | ||
| ✅ JSON | jsonlint | 8 | 0 | 0 | 0.11s | ||
| ✅ JSON | prettier | 8 | 2 | 0 | 0 | 0.45s | |
| markdownlint | 149 | 0 | 1 | 0 | 2.35s | ||
| ✅ MARKDOWN | markdown-table-formatter | 149 | 0 | 0 | 0 | 0.23s | |
| lychee | 183 | 1 | 0 | 2.37s | |||
| ✅ YAML | prettier | 12 | 0 | 0 | 0 | 0.54s | |
| ✅ YAML | yamllint | 12 | 0 | 0 | 0.69s |
Detailed Issues
⚠️ SPELL / lychee - 1 error
📝 Summary
---------------------
🔍 Total..........134
🔗 Unique..........68
✅ Successful.....123
⏳ Timeouts.........0
🔀 Redirected.......5
👻 Excluded.........9
❓ Unknown..........0
🚫 Errors...........1
⛔ Unsupported......1
Errors in .github/workflows/static-analysis.yml
[403] https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$ (at 37:21) | Rejected status code: 403 Forbidden
Hint: Followed 5 redirects. You might want to consider replacing redirecting URLs with the resolved URLs. Use verbose mode (`-v`/`-vv`) to see redirection details.
Hint: You can configure accepted/rejected response codes with `-a` or `--accept`
⚠️ MARKDOWN / markdownlint - 1 error
.github/instructions/robotics-cpp.instructions.md:59:401 error MD013/line-length Line length [Expected: 400; Actual: 615]
Notices
REPOSITORY_GITLEAKS, REPOSITORY_KICS. See Removed linters to find their replacements.
See detailed reports in MegaLinter artifacts
Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)
- Documentation: Custom Flavors
- Command:
npx mega-linter-runner@10.1.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,CPP_CPPCHECK,CPP_CLANG_FORMAT,DOCKERFILE_HADOLINT,JSON_JSONLINT,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,SPELL_LYCHEE,YAML_PRETTIER,YAML_YAMLLINT

Show us your support by starring ⭐ the repository
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Two follow-ups to the wheeled-robot roadmap work.
build: bump numerical-toolbox
adfc10d→63c9b91perf: make interface destructors protected and non-virtual
dynamics::NewtonEulerBodyanddynamics::EulerLagrangeDynamics.operator delete(andmalloc/free) into heap-free firmware.AGENTS.md,CLAUDE.md,.github/copilot-instructions.md,.github/instructions/robotics-cpp.instructions.mdand.github/agents/reviewer.agent.md.JacobianProvider,InverseDynamicsModel,InertialRegressor,PathGeometryandJointLimits.Local check
cmake --preset host-single-Debug && cmake --build … && ctest: build clean with warnings as errors, 2/2 test suites pass.mathheaders, and of those onlyMath.hppchanged in this range, by additions only.Generated by Claude Code