-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Support lists for ObjC and ObjC++ standards #13642
base: master
Are you sure you want to change the base?
Conversation
I have tested this with Clang and with GCC, but only far enough with GCC to get to the point it fails because my GCC build doesn't have ObjC[++] support. |
cce0240
to
f8d86c3
Compare
Should there be a test for that, to ensure every compiler supports the same syntax for |
f8d86c3
to
5a1175a
Compare
It was worth writing the tests, I found some issues that weren't being caught by our existing tests. |
5a1175a
to
76b2563
Compare
Also in the latest version, use mixins for the Apple version overrides |
76b2563
to
d4bcdc8
Compare
xref #13713: it'd be good to produce a future-feature warning if ObjC is used with a list of standards. Otherwise projects might be surprised e.g. if they use Objective C on macOS, don't CI on macOS with older Meson, and switch to |
b05ecce
to
acb45fe
Compare
@bgilbert given that this series is already up to 13 patches and is fixing tons of issues with ObjC, I'd prefer to handle that separately, but I assigned that to myself and I'll have a look it at. |
e4810f9
to
bed8bee
Compare
bed8bee
to
7b81d1c
Compare
fd40f7b
to
ad9ca0d
Compare
When used as a class decorator VSCode can no longer see that BasePlatformTest is a TestCase. I hate having to adapt the code to the tools, but it's really annoying to not have completion and syntax highlighting.
ad9ca0d
to
92b11f7
Compare
We'll want to use this for ObjC as well, so we'll make it public and put it in a public place.
This means that the two compilers will update together, and that ObjC has the list behavior that C does.
…mpiler We'll want to use this for the ObjC++ compiler too.
So we can re-use it for the ObjC code
So we can re-use it in the ObjC++ standards
To avoid duplication between C and ObjC
Check clang-cl as well as cl, and clang as well as gcc.
This tests ObjC and ObjC++ both with and without C enabled. I did this because I ran into issues where ObjC only worked when C was enabled, and then a later bug where C was disabled, due to the fact that C and ObjC both use `c_std` and not `objc_std`.
Since this is optional, we should not accept that GCC is a valid ObjC or G++ is a valid ObjC++ Compiler unless we've tested that they can actually do a basic compile. This requires fixing a number of tests that have broken assumptions. In some cases I've split tests where issues with one language would hide the other. It would be great if we had a competent test framework that allowed subtests to skip, unfortunately we have python's unittest instead. Because of that we can't avoid extra tests by use of subtests.
92b11f7
to
9899199
Compare
Also, share the implementations between the C and ObjC, and C++ and OjbC++ instance of both Clang and GNU compilers, so that we update once, and only once for each compiler.
Mostly this just ends up moving code around.
Fixes: #13639