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.Basic.Window |
Maximun instruction window for the optimizer to review |
Optimizations.Inline.AggressiveMaximum |
Maximun number of instructions that can be inlined when a method is explicited marked to be inlined |
Optimizations.Inline.Explicit |
If true, 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 for 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 |
CompilerDebug.FullCheckMode |
If true, causes the compiler to run internal validate checks (used to test the compiler) |
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.SVGA |
SVGA mode: std or vmware |
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 |
Multiboot.InitialStackAddress |
Initial Stack Address |
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.VmwareWorkstation |
Location of the VMWorkstation 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 |
OS Settings¶
Settings |
Description |
---|---|
OS.Name |
Name of operating system |
Import Settings¶
Settings |
Description |
---|---|
Import |
Filename of another settings file to import |