I've been reading the Clang documentation for migrating header libraries to modules, and I took note of the so-called 'ABI-breaking' style.
We already use a similar 'is in module' macro (VULKAN_HPP_CXX_MODULE) to enable import std instead of standard library headers. I would like to extend that to have #define EXPORT export (naturally guarded behind #if defined(...) etc) as detailed in the above documentation. I then hope to simplify the module interface file, as well as completely simplify the generation of the module interface file itself, which currently takes quite a different path to the header generation. This will also probably remove spurious using statements for operator<=> etc.
Naturally this means the generation of the module interface file, as well as its actual contents would change by a lot, and hence I would like some input on this. I don't expect the consumer-facing experience to change.
I've been reading the Clang documentation for migrating header libraries to modules, and I took note of the so-called 'ABI-breaking' style.
We already use a similar 'is in module' macro (
VULKAN_HPP_CXX_MODULE) to enableimport stdinstead of standard library headers. I would like to extend that to have#define EXPORT export(naturally guarded behind#if defined(...)etc) as detailed in the above documentation. I then hope to simplify the module interface file, as well as completely simplify the generation of the module interface file itself, which currently takes quite a different path to the header generation. This will also probably remove spurioususingstatements foroperator<=>etc.Naturally this means the generation of the module interface file, as well as its actual contents would change by a lot, and hence I would like some input on this. I don't expect the consumer-facing experience to change.