and more here:
I’m sure both components have some responsibility, just curious how much the intermediate form gives the compiler author “for free”.
If you want to see what this looks like, look at the .mm files here:
If you want a specific file to look at with good examples of how this works, here's one:
Basically what you're looking for is being able to make Obj-C calls (e.g. [[ChildView alloc] initWithFrame:r geckoChild:this]) from within what is otherwise normal C++, and vice-versa.
For the most part you can keep things as regular C++ and then just mix in some ObjC APIs when needed without splitting out your files and targets.
It’s extra useful because macOS provides a lot of really great utility libraries like dealing with media or networking, which means you can greatly reduce your dependency count on Apple platforms.
I try and take the approach of reducing dependencies in favour of platform native APIs where possible when making multi platform code, and this is great for that.
Of course it means you have different details on each platform, but I find it much more pleasant than having to keep building dependencies, and dealing with all the corresponding issues like security, size or dealing with platform specific acceleration.
We need more developers like you!
Doesn't it just use objc/runtime.h and if anything is missing you can just add your custom api calls?
And just not to be a random dude in the Internet, here are the NeXT documents straight out of 1993, page 173.
Page 31 on "Developing business applications with OpenStep"
Finally, from the language authors themselves, chapter 15, Objective-C++ (1989-1990)
"The Origins of Objective-C at PPI/Stepstone and Its Evolution at NeXT"
I don't think it's about what tier is supported in rustc, as that's compiled by LLVM in that case.
I'm in no way a compiler expert, but from what I understood, they specifically want to avoid mixing GCC and LLVM: https://github.com/Rust-GCC/gccrs/wiki/Frequently-Asked-Ques...
The rust team don't seem to understand anything about production software, quality assurance and maintenance. Hopefully competing with a more organised compiler with TLS support that is not crippled will put some pressure on them.