Originally posted by carewolf
View Post
C is ONLY the SOURCE CODE and should have zero part in the binary output. C stops at static libraries with "external linkage" and says absolutely nothing about the dynamic loading of libraries or symbols. In fact symbols could not even exist in the compiled output.
C's namespaces applies to the source code ONLY. C++ namespaces and name mangling aren't even defined by the C++ standard, so their exports with name mangling is even MORE proof that the compiler is free to do as it pleases here just to "be compatible with C-style function exports" (since C++ was supposed to be compatible with C linkers initially).
Just stop. Or show some fucking proof for your bullshit. You made the claim, you prove it.
ELF is pathetic because it exposes the source code internal workings to the binary. Clearly it wasn't even designed with an open mind, just scrapped together by C code (since C was used to write Unix back in the day) like almost all shitty projects with zero design and just "code first, design never" mantra. What if there's a language which doesn't even HAVE function names? Why should the binary format be tailored to a specific language or source code? That's just fucking retarded.
Binary format must be as generic as possible so that you can even build it by hand in assembly without relying on exposing C-like function names or whatever other source code internals.
Comment