celerity / celerity-runtime

High-level C++ for Accelerator Clusters
https://celerity.github.io
MIT License
139 stars 18 forks source link

Replace utils::match with `matchbox` library #245

Closed fknorr closed 6 months ago

fknorr commented 7 months ago

matchbox is a standalone library that emerged from our utils::match function. It provides additional functionality like being reference-transparent and also matching on std::optional and on inheritance hierarchies.

celerity-master only uses match in a few places, but the instruction-graph branch will do so much more extensively (see e.g. instruction_graph.h and print_graph.cc).

Nevertheless I've decided to make a separate up-front PR for this because adding a third-party dependency is kind of a big deal (even if that dependency is maintained by me) and I do not want this to disappear beneath more visible code changes in the upcoming IDAG PRs.

Since matchbox is a single-header library, I've decided to install it like CTPL and not use FetchContent (also because matchbox currently cannot do installs).

github-actions[bot] commented 7 months ago

Check-perf-impact results: (4c65f1399a47e0eb1340f63004745b17)

:question: No new benchmark data submitted. :question:
Please re-run the microbenchmarks and include the results if your commit could potentially affect performance.