Tuesday, 20 September 2011

ABI

The ability to pass information between compilers- at compile-time- provides a unique opportunity to rectify the ABI issues present in Standard C++.

Name mangling: Export by ordinal, and associate regular names with their ordinal.
Exception handling: I believe this can be done by exporting the try/catch/throw functionality at run-time. Failing that, I was thinking that the process could be exported at compile-time- like, "This is how I implemented throw, and this is how to implement catch.". Bonus if you've got a platform-specific extant mechanism like SEH.
RTTI: I'm really planning on just having `type_info` as a virtual interface. Then you can pass the values at compile-time, like, typeid(int).name() returns "AMAGAD WTF IMPLEMENTATION IS THIS". As long as your virtual functions are compatible, that'll be good to go.

Calling conventions, structure layouts, and such- feel free to describe in detail how to pass parameters and that baloney.

As such, I believe that all I'd have to do is Standardise the means of this communication, and I'd be golden.

No comments:

Post a Comment