#pragma, #pragmaSave/Restore/Default

Implemented as of Version 2015.r1

Preprocessor directive to control compiler-internal processes. The pragma directive is processed textually like all other directives in the source code.

  • #pragma <Command> <Value>
  • #pragmaSave - Save all current pragma values.
  • #pragmaRestore - Restore saved pragma values.
  • #pragmaDefault - Set all pragma values to default.

#pragmaSave/Restore can be stacked. The depth is not restricted. #pragmaDefault Does not touch the saved pragma values.

Commands

NameDescription Default Value
DebugBuild If activated, then the source is compiled as Debugbuild, current Code-Line and -File can be read in the source, eg to display additional informations in a Exception. false
OptimizeCodeEnabled Activates or deactivates the Code-Optimizing. true
MethodSetupFast The methods-initialization is speed optimized and written out directly to the method-code instead of calling a sub-function. Generates more machine code. false
MethodLocalVarInit Activates or deactivates the initialization of local, temporary variables to 0 or nil. Affects only if MethodSetupFast is active. true
MemoryBlockGarbageCollection Activates or deactivates the automatic garbage collection of the dynamic managed work memory space, used for strings and memoryblocks. If deactivated it is highly important to call the GarbageCollection() function manually to avoid memory overflow! true
MemoryBlockProcessAtomic Activates or deactivates the atomic processing of the memory management routines. The atomic processing disables the global interrupts during process of a management routine. This can be disabled if no reentrant memory management is necessary or to avoid jitter of interrupts. true