1 Global
1.1 Abstract
Ironseed is a general-purpose crossplatform binary version-compatible programming language, also an answer to Microsoft's COM technology but without limitations of later. It uses late symbol linkage to avoid vtable id crashes instead of MS's method "Just do not edit code and it's vtable ids won't change". Among other highlights there are signals and (planned) templates and cross-platform bytecode compileable to native.
1.2 How does compiler work?
At this moment, compiler works in three ways: as ironseed-to-ironc mode, as ironc-to-C mode and as ironseed-to-ironc-to-C mode. /In future, it is planned to make also ironseed-to-bytecode and bytecode-to-asm modes./
1) In ironseed-to-ironc mode, compiler takes ironseed sources and (optionaly but almost inevitably) ironseed headers and creates an ironc output.
2) In ironc-to-C mode compiler ought to know what data units available (e.g. class names and types, methods, functions) so it parses ironseed headers and converts ironc source to plain C.
3) ironseed-to-ironc-to-C mode just runs first than second mode with exception that no headers needed for ironc-to-C mode since data is already parsed and all language units are known at the moment of ironc source generation.