-
Notifications
You must be signed in to change notification settings - Fork 86
Compiler
Atom Compiler works on top of other available C# compiler like .NET or Mono. Core work like parsing language and converting it to corresponding CIL is done by these 3rd party compilers. Customer compiler built by us work on emitted CIL and generate target platform specific native assembly code. This assembly file is assembled by NAsm and Object code is generated which then linked to other libraries to produce final ELF image of kernel.
Atom compiler handles a small subset of the C#/IL functionality and the rest of the functions are plugged. That means, that they are implemented using that subset of the library that works with the compiler, and the original function calls are then replaced with the plugs.
The original .NET framework is not available, only the plugged subset of the framework.
Plugs are resolved at compile time and should be present in input assemblies. Plugs are in itself divided into two parts.
- Compiler defined : Implementation
- Kernel defined : Implementation
For more details on plug attribute check this
You need to build Atomixilc project first. After this compiler's executable binary will be available in /Bin directory.
Command Line
Atomixilc.exe -cpu x86 -i Atomix.Kernel_H.dll -o Kernel.asm -v -optimize
- -cpu : Only x86 supported. Other values
x64
,ARM
- -i : Comma Separated Input Assemblies
- -o : Output Assembly file name
- -v : Verbose Output
- -optimize : Invoke Optimizer check Build.sh