You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently rmm has some usage of the fmt library. While fmt is convenient, it causes us significant headaches due to the need to keep our fmt dependency in sync with conda-forge, and because fmt's support for header-only usage makes it very easy to accidentally leak its symbols into public DSO symbol tables (which can cause serious runtime issues if multiple libraries do this with incompatible symbols, e.g. with wheels). Most of RAPIDS's fmt usage comes transitively via spdlog, so not exposing spdlog symbols in public APIs (see rapidsai/build-planning#104) is sufficient to remove a public fmt dependency, but rmm is a special case because it also has direct usage of fmt. Fortunately, fmt can be replaced relatively easily with std::snprintf in the short term, and with std::format in the future when we upgrade to building with C++20. We should replace all existing use cases of fmt so that we can remove our public reliance on the library.
The text was updated successfully, but these errors were encountered:
Currently rmm has some usage of the fmt library. While fmt is convenient, it causes us significant headaches due to the need to keep our fmt dependency in sync with conda-forge, and because fmt's support for header-only usage makes it very easy to accidentally leak its symbols into public DSO symbol tables (which can cause serious runtime issues if multiple libraries do this with incompatible symbols, e.g. with wheels). Most of RAPIDS's fmt usage comes transitively via spdlog, so not exposing spdlog symbols in public APIs (see rapidsai/build-planning#104) is sufficient to remove a public fmt dependency, but rmm is a special case because it also has direct usage of fmt. Fortunately, fmt can be replaced relatively easily with
std::snprintf
in the short term, and with std::format in the future when we upgrade to building with C++20. We should replace all existing use cases of fmt so that we can remove our public reliance on the library.The text was updated successfully, but these errors were encountered: