| ▲ | sirwhinesalot 8 hours ago | |
> Swift 6.3 introduces the @c attribute, which lets you expose Swift functions and enums to C code in your project. Annotating a function or enum with @c prompts Swift to include a corresponding declaration in the generated C header that you can include in your C/C++ files Why did this take so long to be added? Such strange priorities. Adding an entire C++ compiler for C++ interoperability before adding... C exports. Bizarre. | ||
| ▲ | hrmtst93837 8 hours ago | parent | next [-] | |
C++ interop got attention because it helps Apple absorb low-level codebases that already moved past pure C. Exporting Swift to plain C mostly means more DIY FFI spaghetti. Once enums, ownership rules, and nullability cross that boundary, the generated header stops looking like a neat bridge and starts looking like one more place for ABI bugs to hide. Closures make it weirder fast, because now your error handling and calling conventions can drift just enough to produce the kind of bug that wastes a whole afernoon. | ||
| ▲ | saagarjha 8 hours ago | parent | prev | next [-] | |
They had it earlier, as an underscored attribute. | ||
| ▲ | dagmx 4 hours ago | parent | prev | next [-] | |
You already had ObjC export so it was arguably low priority given the crossover | ||
| ▲ | asimovDev 6 hours ago | parent | prev [-] | |
it's been there for a while as an experimental feature. I used it in a project | ||