Skip to content

Conversation

@dcbaker
Copy link
Member

@dcbaker dcbaker commented Oct 6, 2025

This time, without regressions, hopefully.

The goal here remains the same, get more robust checking for all compiler classes with less code per class. I've folding up review from the previous attempt (which I don't think GitHub will let me reopen), as well as additional changes.

One of the things I discovered after reverting the last attempt is that transpiled languages aren't being tested at all, only the actual compiler is being tested, without the output from the transpiler. So in the Vala cases this means that C gets called with the C implementation's code, and then we call it good. This obviously isn't good, this is bad. For Vala this is a pretty straightforward fix. For Cython this is proving more difficult, especially for me who doesn't have a lot of experience with compiled Python modules.

This is marked as draft as there's still issues here to be solved, particularly around Cython. This also doesn't have the code that adds checking for Assembly.

@dcbaker dcbaker force-pushed the submit/refactor-sanity-checking-v2 branch 3 times, most recently from a94afa8 to aeb38ad Compare October 6, 2025 21:31
The goal is to reduce code duplication, and allow each language to
implement as little as possible to get good checking. The main
motivation is that half of the checks are fragile, as they add the work
directory to the paths of the generated files they want to use. This
works when run inside mesonmain because we always have an absolute build
directory, but when put into run_project_tests.py it doesn't work
because that gives a relative build directory.

Additionally, this fixes the implementation of sanity checking for
transpiled langauges like Vala and Cython, which previously didn't test
the output of their compilers at all, but re-ran the C compiler test for
itself.
@dcbaker dcbaker force-pushed the submit/refactor-sanity-checking-v2 branch from aeb38ad to 3c7ea15 Compare October 6, 2025 21:43
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