Repository navigation
Conversation
aaronj0
force-pushed
the
stdlib-reliability
branch
from
September 28, 2026 11:29
f1e1b22 to
efda1bc
Compare
aaronj0
force-pushed
the
stdlib-reliability
branch
from
September 28, 2026 13:07
efda1bc to
729a44a
Compare
This branch has not been deployed
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.
This can be split into multiple patches but I am opening it as a single on so that it can be reviewed together.
Fail honestly on an old libstdc++ instead of crashing the process. A manylinux wheel installed on alma8, JIT-compiled code that used std::filesystem crashed the process at its first call, and a missing header produced a generic "Failed to parse the given C++ code" with the real diagnostic lost. The crash came from libcppjit.so exporting its statically linked libstdc++_nonshared copies, which the JIT resolved against instead of the host runtime. This change hides those exports, captures the compiler's real stderr into the Python exceptions, and makes a call whose wrapper cannot be JIT-compiled raise for every return type instead of returning an empty value.
Validation:
test21_failing_cppcodefailed, which now passes and more tests have been added.The goal is to ensure current distributions of cppjit do not crash unreasonably on diverse environments where older stdlib implementation are found.