0.0.1 - Initial Release

Rating: No reviews yet
Downloads: 0
Updated: Jul 27, 2009 by tgiphil
Dev status: Planning Help Icon

Available Downloads

There are no downloads associated with this release.

Release Notes

Release 0.0.1 - Alpha

This page illustrates the release plan for the MOSA Compiler. Since the compiler is not just a single component a lot of the features described here involve additions, modifications and fixes to multiple components. The table does not indicate any priorities.

General Features
  • A Test Case Libary providing tests for all features described.
  • A command line compiler, capable of emitting Win32 executable PE files.
  • Documentation for all compiler stages on the wiki and guidelines
Command line compiler
  • The compiler must be able to turn a single input assembly into a native Win32 PE file
  • The compiler must obey an architecture selection switch on the command line
  • The compiler must report errors in an understandable format
Intermediate Language

The MOSA compiler should understand the following subset of IL:
  • Arithmetic instructions: add, sub, mul, div, div.un, rem, rem.un, neg.
  • Bit operations: and, or, not, xor
  • Shift instructions: shl, shr, shr.un
  • Branch instructions: beq, bge, bge.un, bgt, bgt.un, ble, ble.un, blt, blt.un, bne.un, br, brtrue, brfalse, switch
  • Miscellaneous instructions: break, nop
  • Method call instructions: call, ret
  • Comparison instructions: ceq, cgt, cgt.un, clt, clt.un
  • Load instructions: ldarg, ldc, ldloc, ldnull, pop, ldsfld, ldsflda, ldind
  • Store instructions: starg, stloc, stind, stsfld
  • Conversion instructions: conv.
Together these instructions represent 51 instructions of 106 IL instructions, giving us a ratio of 48 per cent completeness.
  • The processed CIL instructions must be validated according to the spec and non-compliant assemblies must be rejected
Operand data types

This release of the MOSA compiler must support operation on I1, I2, I4, I8, U1, U2, U4, U8, R4, R8 and boolean datatypes. Any additional types are not required. Especially there's no support for value types or reference types.

Optimization stages

The initial release of the MOSA compiler shall provide the following optimizing compilation stages: