r/ada • u/data_in_void • 1d ago
New Release [ANN] adacovex v1.69.0: WIP compiler-like proof diagnostics
What is adacovex
Is an Ada/SPARK formal verification and compliance toolkit
Zero dependency CLI (for published alire.toml), developer dependencies are gnatprove and the usual bunch of system dependencies.
SBOM generation (CycloneDX/SPDX), supporting a decent number of languages with plans to add more support
gnatprove/source code parsing, tells you about tests/proof coverage as well as DO-178C / ISO 26262 / IEC 62304
Web dashboard, HTTP server and bundled offline manual
caching on unchanged code
tldr, tealdeer, man page support
Status badges and stuff
GitHub: https://github.com/bladeacer/adacovex
Docs: https://adacovex.readthedocs.io/en/latest/
Other Screenshots
Yeah there is a lot of them 😅
About the update(s)
Wow it's been almost a month since I last posted on adacovex, here is what went into the time.
The TOML configuration file now comes with an adacovex init helper, this just provides you with the default configuration file you can use to override default flag values/toggle options.
There is also a WIP implementation for compiler-like proof diagnostics. Lets you contextualise gnatprove outputs with suggested fixes, relevant line and details on the errors. Inspired by what gnatprove can already do as well as compiler diagnostics/error messages as seen in Rust/Go and other ecosystems. Better support and documentation for this will come in future updates.
I am also working to improve contextual help text so it feels more cohesive.
Future Plans
Performance, as well as technical debt like the lack of proof coverage will come after critical fixes like making our SBOM less rudimentary. IMO there is a lot I can learn from syft, the gold standard of SBOM tooling.
There are some good first issues on GitHub I will be looking to create. Feel free to create new ones for bugs, proposed features, polish or edge cases I might have missed out on. I believe I have implemented most of what I set out to do pre 2.0.0. The remaining work is polishing up "tooling ergonomics" as well as addressing technical debt and performance.
I am also thinking of creating a Matrix room/Discord server for adacovex if there is any interest. Do let me know :D
Post-script
As usual the alire release will come later. I also posted about this earlier in the forum.
To think that this started off as a silly idea of mine for improving developer experience for a language I still have a long way to go in. Thank you all for the support all this time ^_^