riscv-perf-model
riscv-perf-model copied to clipboard
Move Mavis forward; use Boost::json
Moved to almost the tip of Mavis. The head of Mavis requires c++23 features (@bdutro) which we might not be ready for yet.
Started to deprecate the use of nlohmann::json and moved to Boost::json. Can't remove it completely as FSL still uses it and we're pointing to a mirror (for now). Put that header in deprecated directory for now.
Also cleaned up some header file allocations to improve compile time.
Mavis should compile cleanly with C++20 unless you're using a Clang version older than 16 (this branch has a preliminary fix for that: https://github.com/sparcians/mavis/tree/dev/bdutro/clang-15-std-views-fix).
I think you need to bump the minimum Boost version to 1.78.
@bdutro I moved mavis to the latest for Olympia on my local box and get this compile issue with gcc v13.
/home/knutel/play/riscv-perf-model/mavis/mavis/ExtensionManager.hpp: In member function 'auto mavis::extension_manager::ExtensionMap::getFilteredView_(bool) const':
/home/knutel/play/riscv-perf-model/mavis/mavis/ExtensionManager.hpp:543:25: error: 'std::views' has not been declared
543 | return std::views::filter(enabled_extensions_, [include_meta](const auto & ext_pair)
@klingaard you need to change this line to enable C++20 support: https://github.com/riscv-software-src/riscv-perf-model/pull/280/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20aR2
I think you need to bump the minimum Boost version to 1.78.
Thanks, @bdutro for giving some guidance here! After attending RVI 2025 this year, I heard a few complaints about olympia's conda requirements. I've decided to remove that constraint now that we have some stability on Ubuntu distro solutions in GitHub CI.
Will be pushing a new PR that tears this down. :crossed_fingers:
Trying an experiment -- I rebased this branch onto #281 to see if I can get it pass
@arupc @arupc-vmicro please approve