As you might know, compilation of cosmos is a two-phase thing. First we compile to an .asm file, which is then compiled to a binary file by NAsm. We decided to go this path (last year) to let us get forward easily, and not being hindered by implementing an assembler for the complex assembler scheme of Intel x86.
As you can see on our Milestones, we plan to replace NAsm by our own assembler implementation. Yesterday, I finally completed that implementation. We are not yet switching to it by default, as it is somewhat slower (NAsm compilation takes about 5 seconds on my machine, our internal assembler about 30 minutes). I know, a bit of an understatement..Good thing of our assembler is, that we have it fully covered by automated tests (1834 tests, to be exact). This means that the coming time, we'll be improving the code, and hopefully our implementation will get as fast as NAsm compilation.
If you're interested in the binary emission, or any other aspect of Cosmos, please drop by at our mailinglist (cosmos-dev at Yahoo Groups), or our Skype public chat (Cosmos-Dev).
By Matthijs ter Woord