Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade spdlog dependency to 1.12 #283

Merged
merged 2 commits into from
Oct 23, 2024
Merged

Upgrade spdlog dependency to 1.12 #283

merged 2 commits into from
Oct 23, 2024

Conversation

etremel
Copy link
Contributor

@etremel etremel commented Oct 17, 2024

The spdlog library introduced some non-backward-compatible changes between version 1.9.2 (packaged with Ubuntu 22.04) and version 1.12 (packaged with Ubuntu 24.04). Specifically, standard library containers are only log-printable if the new header <spdlog/fmt/ranges.h> is included, and user-defined types are only log-printable if they explicitly specialize fmt::formatter<T> -- including <spdlog/fmt/ostr.h> and defining an operator<< for your type, as done in spdlog 1.9.2, is no longer sufficient.

I updated the code to compile against spdlog 1.12, and updated CMakeLists to specify spdlog 1.12 as the new minimum required version, because the header <spdlog/fmt/ranges.h> doesn't exist in spdlog 1.9.2. Since this changes Derecho's required dependencies, it should go into a new version of Derecho, hopefully 2.4.1.

The spdlog library introduced some non-backward-compatible changes
between version 1.9.2 (packaged with Ubuntu 22.04) and version 1.12
(packaged with Ubuntu 24.04). Specifically, standard library containers
are only log-printable if the new header <spdlog/fmt/ranges.h> is
included, and user-defined types are only log-printable if they
explicitly specialize fmt::formatter<T> (including <spdlog/fmt/ostr.h>
is no longer sufficient).
@etremel
Copy link
Contributor Author

etremel commented Oct 18, 2024

Note: The "build check" on GitHub seems to have failed because the GitHub test servers are still using Ubuntu 22.04 when build.yml specifies "ubuntu-latest" (even though 24.04 is now the latest LTS version). I ran regression tests on Fractus, where I could manually install spdlog 1.12, and confirmed that this branch compiles and runs with bandwidth_test and typed_bandwidth_test.

@etremel etremel merged commit 01dd310 into master Oct 23, 2024
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant