Settings Options

Here are the setting options for the compiler tools:

Compiler Settings

Settings

Description

Compiler.Platform

Platform x86, x64, ARM32, ARM64

Compiler.BaseAddress

Base address of the compiled application

Compiler.InitialStackAddress

Intial stack’s starting address (note the stack grows in the downward direction).

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.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

Optimizations.ReduceCodeSize

If true, the compiler will favor smaller code size

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.Dwarf

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.CountersFile

Filename to emit the global counters

CompilerDebug.CountersFilter

Filters the global counters within the global counters file

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

Explorer.Start

If true, immediately compile all methods upon launch

Explorer.DebugDiagnostic

If true, debug diagnostics is captured

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.GDB

If true, launch the GNU GDB application after VM launch

Launcher.Serial

If true, outputs the serial data

Launcher.Debugger

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, VMDK

Image.FileSystem

File system of the primary partition in the image file FAT12, FAT16, FAT32

Image.Destination

Destination directory of the image file

Image.ImageFile

Filename of the image file

Image.FileSystem.RootInclude

Include files in specified directory

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, cirrus, vbe, virtio or vmware

Emulator.MaxRuntime

Maximum runtime of the virtual machine in seconds (future)

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, v2

Multiboot.Video

If true, enable the framebuffer provided by Multiboot

Multiboot.Video.Width

Video Width

Multiboot.Video.Height

Video Height

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.QemuX86

Location of the QEMU application for x86 (i386)

AppLocation.QemuX64

Location of the QEMU application for x64

AppLocation.QemuARM32

Location of the QEMU application for ARM32

AppLocation.QemuARM64

Location of the QEMU application for ARM64

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 GDB application

OS Settings

Settings

Description

OS.Name

Name of operating system

OS.BootOptions

Specifies a boot string to pass to the operating system

Import Settings

Settings

Description

Import

Filename of another settings file to import

Unit Test Settings

Settings

Description

UnitTest.MaxErrors

Maximum number of errors before aborting the unit testing

UnitTest.Connection.TimeOut

Maximum connection timeout in milliseconds before retrying

UnitTest.Connection.MaxAttempts

Maximun number of restart attempts before aborting the unit tests

UnitTest.Filter

Specifies the default method filter name when Explorer is launched