API prefix is only prepended to function declarations not file names#403
Merged
evaleev merged 5 commits intoevaleev:v2.13.xfrom Feb 24, 2026
Merged
Conversation
a8ca1a0 to
2c6dc3c
Compare
2c6dc3c to
7a4540a
Compare
evaleev
approved these changes
Feb 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I need the API prefix feature to create a namespaced version of libint, but it is broken in the current version.
Here I identified two problems:
dg.ccthe API prefix is prepended twice to the "_prereq" functions, which in turn creates a faulty include path for them.GenericContract.hare unprefixed, but the libint compiler generates code that includes them with the prefix.I fixed the first problem by applying the API prefix only at the very last step, i.e. when declaring or defining a function, and I fixed the second problem by removing the API prefix from file names, as they are not exported into the final build anyways.
Additionally, in some parts of the C++ API the unprefixed versions of function names were used, which I fixed as well; see
engine.h, engine.impl.h, initialize.hPlease let me know, if there are any issues with these changes.