Settings Options¶
Here are the setting options for the compiler tools:
Compiler Settings¶
Settings | Description |
---|---|
Compiler.Platform | Platform x86, x64, ARMv8A32 |
Compiler.BaseAddress | Base address of the compiled application |
Compiler.TraceLevel | Trace level for debugging |
Compiler.MethodScanner | If true, enable the experimental method scanner |
Compiler.Multithreading | If true, enables multithreading during compiling process |
Compiler.Multithreading.MaxThreads | Maximum number of threads used by the compiler |
Compiler.Binary | If true, emits object file, otherwise no object file is created |
Compiler.EmitInline | If true, emits all inlined methods into the object file |
Compiler.OutputFile | Filename of the object file |
Compiler.SourceFiles | Filename(s) of the source files |
Compiler Optimizations Settings¶
Settings | Description |
---|---|
Optimizations.Basic | If true, enables prebuilt transformation optimizations, like constant folding and strength reduction |
Optimizations.SSA | If true, transforms instructions to Single Static Assignment (SSA) form |
Optimizations.SCCP | If true, enables Sparse Conditional Constant Propagation (SCCP) optimizations |
Optimizations.ValueNumbering | If true, enables the Value Numbering (VN) optimizations |
Optimizations.LongExpansion | If true, transforms some 64-bit instructions into 32-bit instructions prior to platform transformations |
Optimizations.BitTracker | If true, enables the bit tracker optimizations |
Optimizations.LoopInvariantCodeMotion | If true, enables the loop invariant code motion optimizations |
Optimizations.Devirtualization | If true, transforms virtual methods calls into static method calls |
Optimizations.Platform | If true, enable platform specific optimizations |
Optimizations.Inline | If true, small methods can be inlined |
Optimizations.Inline.Maximum | Maximun number of instructions that can be inlined within a method |
Optimizations.Inline.AggressiveMaximum | Maximun number of instructions that can be inlined when a method is explicited marked to be inlined |
Optimizations.Inline.ExplicitOnly | If true, only explicitly marked methods are inlined |
Optimizations.TwoPass | If true, some optimization stages are executed twice |
Optimizations.Inline.Aggressive | Methods to be aggressively inline |
Optimizations.Inline.Exclude | Methods that may not be inlined |
Linker Settings¶
Settings | Description |
---|---|
Linker.Format | Type of ELF object file elf32 or elf64 |
Linker.Symbols | If true, emits the symbols into the object file |
Linker.StaticRelocations | If true, emits static relocation information into the object file |
Linker.Drawf | If true, emits DWARF debug information into the object file |
Linker.ShortSymbolNames | If true, emits short symbol names into the object file |
Linker.CustomSections.{Name}.SectionName | Emits a custom linker section with this section name |
Linker.CustomSections.{Name}.SourceFile | Emits a custom linker section using the specific file |
Linker.CustomSections.{Name}.Address | Emits a custom linker section with this address |
Common Settings¶
Settings | Description |
---|---|
SearchPaths | Folder to search for files |
DefaultFolder | Default folder to output files |
TemporaryFolder | Specifies a temporary folder |
Compiler Debug Settings¶
Settings | Description |
---|---|
CompilerDebug.Statistics | If true, enables statistics gathering |
CompilerDebug.DebugFile | Filename to emit a MOSA specific debug information |
CompilerDebug.MapFile | Filename to emit a map of all symbols |
CompilerDebug.CompileTimeFile | Filename to emit compile times for each method |
CompilerDebug.AsmFile | Filename to emit ASM disassembly |
CompilerDebug.NasmFile | Filename to emit disassembly using the NASM tool |
CompilerDebug.InlinedFile | Filename to emit a list of all methods that were inlined |
CompilerDebug.PreLinkHashFile | Filename to emit a list of all methods with their hash value prior to linking |
CompilerDebug.PostLinkHashFile | Filename to emit a list of all methods with their hash value after linking |
Compiler X86 Settings¶
Settings | Description |
---|---|
X86.InterruptMethodName | Name of the method that handles interrupts |
Explorer Settings¶
Settings | Description |
---|---|
Explorer.Filter | Specifies the default method filter name when Explorer is launched |
Launcher Settings¶
Settings | Description |
---|---|
Launcher.Start | If true, immediately start the compiler upon launch |
Launcher.Launch | If true, launch a virtual machine after compiling the application and generating the virtual machine image |
Launcher.Exit | If true, exit immediately after launch |
Launcher.PlugKorlib | If true, automatically include the plugs for CoreLib |
Launcher.HuntForCorLib | If true, search for CoreLib in various directories |
Launcher.LaunchGDB | If true, launch the GNU GDB application after VM launch |
Launcher.LaunchDebugger | If true, launch the MOSA debugger application after VM launch |
Launcher.Test | If true, monitors VM serial for success or failure messages |
Image Settings¶
Settings | Description |
---|---|
Image.Format | Format of the vritual image file BIN, IMG, VHD, VDI, ISO, VMDK |
Image.FileSystem | File system of the primary partition in the image file FAT12, FAT16, FAT32, ISO???? |
Image.BootLoader | Type of bootloader grub0.97, grub2.00, syslinux6.03, syslinux3.72 |
Image.Destination | Destination directory of the image file |
Image.ImageFile | Filename of the image file |
Emulator Settings¶
Settings | Description |
---|---|
Emulator | Type of Emulator Qemu, VMware, Bochs |
Emulator.Memory | Amount of memory for the virtual machine in MB |
Emulator.Display | If true, show the video display |
Emulator.GDB | If true, enables GDB within emulator |
Emulator.Serial | Serial Emulation type None, Pipe, TCPServer, TCPClient |
Emulator.Serial.Host | Serial Host Name or IP address |
Emulator.Serial.Port | Serial Port |
Emulator.Serial.Pipe | Serial Pipename |
GDB Settings¶
Settings | Description |
---|---|
GDB.Host | Host IP or Name for GDB |
GDB.Port | Port Number for GDB |
Multiboot Settings¶
Settings | Description |
---|---|
Multiboot.Version | Multiboot version none, v1, v2 |
Multiboot.Video | If true, enable VGA BIOS Extension (VBE) |
Multiboot.Video.Width | Video Width |
Multiboot.Video.Height | Video Height |
Multiboot.Video.Depth | Video Depth |
Debugger Settings¶
Settings | Description |
---|---|
Debugger.WatchFile | Filename of the watch file |
Debugger.BreakpointFile | Filename of the breakpoint file |
Application Location Settings¶
Settings | Description |
---|---|
AppLocation.Bochs | Location of the BOCHS application |
AppLocation.Qemu | Location of the QEMU application |
AppLocation.QemuBIOS | Location of the QEMU BIOS |
AppLocation.QemuImg | Location of the QEMUImg application |
AppLocation.VmwarePlayer | Location of the VMPlayer application |
AppLocation.Ndisasm | Location of the Ndisasm application |
AppLocation.Mkisofs | Location of the Mkisofs application |
AppLocation.GDB | Location of the QEMU application |
Import Settings¶
Settings | Description |
---|---|
Import | Filename of another settings file to import |