On Wednesday, 11 October 2023 at 13:36:16 UTC, Paul wrote:
On Wednesday, 11 October 2023 at 12:54:53 UTC, user1234 wrote:
`extern(C)` on module level functions affect the mangling and
the calling convention.
- Mangling is used by the linker to link symbols between
objects.
- Calling convention affects the compiler backend in how code
is generated for a CALL instruction.
So C doesn't use name mangling
I see what you mean. I just consider no mangling as a kind of
mangling, that is "just the symbol name".
and extern (C) in a D prog would turn off D mangling thereby
allowing C and D object files to be linked together?
I didn't know C and D had different calling conventions...i.e.
different ABI's?
They are mostly similar but according to
https://dlang.org/spec/abi.html#function_calling_conventions
there are differences.