Libraries
CC config Source Code
 previous   up   next 

Types
ccConfigType
Structure to describe C compiler and runtime library.

ccConfigType

const type: ccConfigType

Structure to describe C compiler and runtime library.


Variable Summary
boolean
WITH_STRI_CAPACITY
TRUE if the Seed7 runtime library uses strings with capacity.
boolean
ALLOW_STRITYPE_SLICES
TRUE if the actual characters of a string can be stored elsewhere.
boolean
ALLOW_BSTRITYPE_SLICES
TRUE if the actual characters of a bstring can be stored elsewhere.
boolean
RSHIFT_DOES_SIGN_EXTEND
TRUE if right shifts preserve the sign of negative signed integers.
boolean
TWOS_COMPLEMENT_INTTYPE
TRUE if signed integers are represented as twos complement numbers.
boolean
LITTLE_ENDIAN_INTTYPE
TRUE if the byte ordering of integers is little endian.
boolean
FLOAT_COMPARISON_OKAY
TRUE if float comparisons with NaN and negative zero work okay.
boolean
POW_FUNCTION_OKAY
TRUE if pow() works okay for a base of zero, one and NaN.
boolean
FMOD_FUNCTION_OKAY
TRUE if fmod() works okay for Infinity, NaN and zero.
boolean
SQRT_FUNCTION_OKAY
TRUE if sqrt() works okay for a negative argument and NaN.
boolean
EXP_FUNCTION_OKAY
TRUE if exp() works okay for NaN.
boolean
LOG_FUNCTION_OKAY
TRUE if log() works okay for zero, negative values and NaN.
boolean
LOG10_FUNCTION_OKAY
TRUE if log10() works okay for zero, negative values and NaN.
boolean
LOG1P_FUNCTION_OKAY
TRUE if log1p() works okay for -1.0, values < -1.0 and NaN.
boolean
LOG2_FUNCTION_OKAY
TRUE if log2() works okay for zero, negative values and NaN.
boolean
LDEXP_FUNCTION_OKAY
TRUE if ldexp() works okay for NaN.
boolean
FREXP_FUNCTION_OKAY
TRUE if frexp() works okay for Infinity, NaN and subnormal numbers.
boolean
HAS_SIGSETJMP
TRUE if the functions sigsetjmp() and siglongjmp() are available.
boolean
CHECK_INT_DIV_BY_ZERO
TRUE if integer divisions must be checked for a division by zero.
boolean
CHECK_INT_DIV_ZERO_BY_ZERO
TRUE if the C expression 0/0 might not trigger SIGFPE.
boolean
CHECK_INT_REM_BY_ZERO
TRUE if integer remainder must be checked for a division by zero.
boolean
CHECK_INT_REM_ZERO_BY_ZERO
TRUE if the C expression 0%0 might not trigger SIGFPE.
boolean
FLOAT_ZERO_DIV_ERROR
TRUE if floating point divisions by zero cause compilation errors.
boolean
CHECK_FLOAT_DIV_BY_ZERO
TRUE if floating point divisions by zero don't conform to IEEE 754.
boolean
HAS_EXP2
TRUE if the C function exp2() is present.
boolean
HAS_EXP10
TRUE if the C function exp10() is present.
boolean
HAS_EXPM1
TRUE if the C function expm1() is present.
boolean
HAS_CBRT
TRUE if the C function cbrt() is present.
boolean
LIMITED_CSTRI_LITERAL_LEN
TRUE if the C compiler limits the length of string literals.
boolean
SWITCH_WORKS_FOR_INT64TYPE
TRUE if switch statements work with 64-bit values.
boolean
STMT_BLOCK_IN_PARENTHESES_OK
TRUE if a compound statement is allowed in a parentesized expression.
boolean
CC_SOURCE_UTF8
TRUE if #line directives can use UTF-8 encoded file names.
boolean
USE_WMAIN
TRUE if the main function is named wmain.
boolean
USE_WINMAIN
TRUE if the main function is named WinMain.
boolean
USE_START_MAIN
TRUE if the main function invokes startMain after a button click.
boolean
USE_DO_EXIT
TRUE if the main function must be terminated with doExit().
boolean
FLOATTYPE_DOUBLE
TRUE if the type floatType is double.
integer
INTTYPE_SIZE
Size of the type intType in bits (either 32 or 64).
integer
FLOATTYPE_SIZE
Size of the type floatType in bits.
integer
POINTER_SIZE
Size of a pointer in bits.
integer
GENERIC_SIZE
The maximum of INTTYPE_SIZE, FLOATTYPE_SIZE and POINTER_SIZE.
integer
INT_SIZE
Size of the type int in bits.
integer
INT_MIN
Minimum value of the type int.
integer
INT_MAX
Maximum value of the type int.
integer
LONG_SIZE
Size of the type long in bits.
integer
FLOATTYPE_MANTISSA_BITS
Number of mantissa bits in the binary floatType representation.
integer
FLOATTYPE_EXPONENT_OFFSET
Exponent offset in the binary floatType representation.
integer
INT_RANGE_IN_FLOATTYPE_MAX
Maximum from the continuous range of integers that map to floats.
integer
MINIMUM_TRUNC_ARGUMENT
Minimum value that trunc() or round() can convert.
integer
MAXIMUM_TRUNC_ARGUMENT
Maximum value that trunc() or round() can convert.
integer
PIXEL_ALPHA_MASK
Mask for the alpha channel in a pixel.
integer
PIXEL_RED_MASK
Mask for the red color in a pixel.
integer
PIXEL_GREEN_MASK
Mask for the green color in a pixel.
integer
PIXEL_BLUE_MASK
Mask for the blue color in a pixel.
string
RGB_TO_PIXEL_FLAG_NAME
Name of the variable deciding between macro and drwRgbColor().
integer
POINT_LIST_INT_SIZE
Size of an integer in a pointList object.
boolean
POINT_LIST_ABSOLUTE
TRUE if a pointList uses absolute coordinates.
integer
RAND_MULTIPLIER
Multiplier for the linear congruential generator.
integer
RAND_INCREMENT
Increment for the linear congruential generator.
string
BOOLTYPE
Name of a type for the boolean values 0 and 1.
string
INT32TYPE
Name of a signed integer type that is 32 bits wide.
string
UINT32TYPE
Name of an unsigned integer type that is 32 bits wide.
string
INT64TYPE
Name of a signed integer type that is 64 bits wide.
string
UINT64TYPE
Name of an unsigned integer type that is 64 bits wide.
string
INT128TYPE
Name of a signed integer type that is 128 bits wide.
string
UINT128TYPE
Name of an unsigned integer type that is 128 bits wide.
string
INT32TYPE_LITERAL_SUFFIX
The suffix used by the literals of the 32 bits wide integer type.
string
INT64TYPE_LITERAL_SUFFIX
The suffix used by the literals of the 64 bits wide integer type.
string
MACRO_DEFS
Definition of several macros (likely, unlikely, noreturn).
string
OVERFLOW_SIGNAL
Name of the signal that is raised if a signed integer overflow
string
BUILTIN_ADD_OVERFLOW
Name of a C compiler builtin function to add with overflow check.
string
BUILTIN_SUB_OVERFLOW
Name of a C compiler builtin function to subtract with overflow check.
string
BUILTIN_MULT_OVERFLOW
Name of a C compiler builtin function to multiply with overflow check.
integer
INT_DIV_OVERFLOW
Defines what happens in case of an integer division overflow.
integer
INT_REM_OVERFLOW
Defines what happens in case of an integer remainder overflow.
string
OBJECT_FILE_EXTENSION
The extension used by the C compiler for object files.
string
LIBRARY_FILE_EXTENSION
The extension used by the linker for static libraries.
string
EXECUTABLE_FILE_EXTENSION
The extension used by the operating system for executables.
string
LINKED_PROGRAM_EXTENSION
The extension of the file produced by linking a program.
string
CC_ENVIRONMENT_INI
Path to an INI file with the environment for the C compiler.
string
C_COMPILER
Command to call the stand-alone C compiler and linker.
boolean
CALL_C_COMPILER_FROM_SHELL
TRUE if C compiler and linker must be called via the shell.
array string
CC_OPT_DEBUG_INFO
C compiler option to add source level debugging information.
string
CC_OPT_LINK_TIME_OPTIMIZATION
C compiler option to do link time optimization.
string
CC_OPT_NO_WARNINGS
C compiler option to suppress all warnings.
array string
CC_OPT_OPTIMIZE_1
C compiler option to optimize with a level of -O1.
array string
CC_OPT_OPTIMIZE_2
C compiler option to optimize with a level of -O2.
array string
CC_OPT_OPTIMIZE_3
C compiler option to optimize with a level of -O3.
string
CC_OPT_TRAP_OVERFLOW
C compiler option to generate traps for signed integer overflow.
string
CC_OPT_VERSION_INFO
C compiler option to write the C compiler version information.
array string
CC_FLAGS
C compiler flags to be used if C programs are compiled.
integer
CC_ERROR_FILEDES
File descriptor to which the C compiler writes errors.
integer
CC_VERSION_INFO_FILEDES
File descriptor to which the C compiler writes its version info.
string
LINKER_OPT_DEBUG_INFO
Linker option to add source level debugging information.
boolean
LINKER_OPT_LTO_MANDATORY
TRUE if linking always requires the option
string
LINKER_OPT_NO_DEBUG_INFO
Linker option to be used without source level debugging.
string
LINKER_OPT_OUTPUT_FILE
Linker option to provide the output filename (e.g.: "-o ").
string
LINKER_OPT_SPECIAL_LIB
Linker option that needs to precede the special library.
string
LINKER_OPT_STACK_SIZE
Linker option to specify the stack size of the executable.
array string
LINKER_FLAGS
Standard linker options to link a compiled program.
integer
DEFAULT_STACK_SIZE
Default stack size for a compiled executable.
array string
SYSTEM_LIBS
Options to link system libraries to a compiled program.
array string
SYSTEM_BIGINT_LIBS
Options to link system bigint libraries to a compiled program.
array string
SYSTEM_CONSOLE_LIBS
Options to link system console libraries to a compiled program.
array string
SYSTEM_DATABASE_LIBS
Options to link system database ibraries to a compiled program.
array string
SYSTEM_DRAW_LIBS
Options to link system graphic libraries to a compiled program.
array string
SYSTEM_MATH_LIBS
Options to link system mathematic libraries to a compiled program.
string
SEED7_LIB
Name of the Seed7 runtime library (e.g.: "seed7_05.a").
string
DRAW_LIB
Name of the Seed7 graphic runtime library (e.g.: "s7_draw.a").
string
CONSOLE_LIB
Name of the Seed7 text console runtime library (e.g.: "s7_con.a").
string
DATABASE_LIB
Name of the Seed7 database runtime library (e.g.: "s7_db.a").
string
COMP_DATA_LIB
Name of the Seed7 compiler data runtime library (e.g.: "s7_data.a").
string
COMPILER_LIB
Name of the Seed7 compiler runtime library (e.g.: "s7_comp.a").
string
SPECIAL_LIB
Name of the special library (e.g.: "pre_js.js").
string
S7_LIB_DIR
Directory containing the Seed7 runtime libraries.
integer
VERSION_REVISION_LEVEL
The current version revision level of interpreter and compiler.
string
REDIRECT_FILEDES_1
Shell parameter to redirect to the file descriptor 1.
string
REDIRECT_FILEDES_2
Shell parameter to redirect to the file descriptor 2.
string
NULL_DEVICE
Name of the NULL device to be used in shell command redirections.
string
INTTYPE_LITERAL_SUFFIX
The suffix used by the literals of the type intType.
ccConfigType
ccConf
Structure with configuration values for C compiler and runtime.

Function Summary
ccConfigType
getBuiltInConfig
Determine the built-in (hard-coded) C compiler configuration values.

Variable Detail

WITH_STRI_CAPACITY

var boolean: WITH_STRI_CAPACITY

TRUE if the Seed7 runtime library uses strings with capacity. The capacity of a string can be larger than its size. Strings with capacity can be enlarged without calling realloc().


ALLOW_STRITYPE_SLICES

var boolean: ALLOW_STRITYPE_SLICES

TRUE if the actual characters of a string can be stored elsewhere. This allows string slices without the need to copy characters.


ALLOW_BSTRITYPE_SLICES

var boolean: ALLOW_BSTRITYPE_SLICES

TRUE if the actual characters of a bstring can be stored elsewhere. This allows bstring slices without the need to copy characters.


RSHIFT_DOES_SIGN_EXTEND

var boolean: RSHIFT_DOES_SIGN_EXTEND

TRUE if right shifts preserve the sign of negative signed integers. The C standard specifies that the right shift of signed integers is implementation defined, if the shifted values are negative.


TWOS_COMPLEMENT_INTTYPE

var boolean: TWOS_COMPLEMENT_INTTYPE

TRUE if signed integers are represented as twos complement numbers. This allows some simplified range checks in compiled programs.


LITTLE_ENDIAN_INTTYPE

var boolean: LITTLE_ENDIAN_INTTYPE

TRUE if the byte ordering of integers is little endian. With little endian byte ordering it is possible to get the elements of a union by casting the union to the desired element type.


FLOAT_COMPARISON_OKAY

var boolean: FLOAT_COMPARISON_OKAY

TRUE if float comparisons with NaN and negative zero work okay. A comparison between NaN and any other value should return FALSE. Negative zero should be considered as identical to positive zero. Comparison refers to comparisons with == < > <= or >= . If FLOAT_COMPARISON_OKAY is FALSE fltEq(), fltLt(), fltGt(), fltLe() and fltGe() should be used to do comparisons of float values.


POW_FUNCTION_OKAY

var boolean: POW_FUNCTION_OKAY

TRUE if pow() works okay for a base of zero, one and NaN. If it is FALSE fltPow() should be used instead of pow().


FMOD_FUNCTION_OKAY

var boolean: FMOD_FUNCTION_OKAY

TRUE if fmod() works okay for Infinity, NaN and zero. If it is FALSE fltRem() should be used instead of fmod().


SQRT_FUNCTION_OKAY

var boolean: SQRT_FUNCTION_OKAY

TRUE if sqrt() works okay for a negative argument and NaN. If it is FALSE fltSqrt() should be used instead of sqrt().


EXP_FUNCTION_OKAY

var boolean: EXP_FUNCTION_OKAY

TRUE if exp() works okay for NaN. If it is FALSE fltExp() should be used instead of exp().


LOG_FUNCTION_OKAY

var boolean: LOG_FUNCTION_OKAY

TRUE if log() works okay for zero, negative values and NaN. If it is FALSE fltLog() should be used instead of log().


LOG10_FUNCTION_OKAY

var boolean: LOG10_FUNCTION_OKAY

TRUE if log10() works okay for zero, negative values and NaN. If it is FALSE fltLog10() should be used instead of log10().


LOG1P_FUNCTION_OKAY

var boolean: LOG1P_FUNCTION_OKAY

TRUE if log1p() works okay for -1.0, values < -1.0 and NaN. If it is FALSE fltLog1p() should be used instead of log1p().


LOG2_FUNCTION_OKAY

var boolean: LOG2_FUNCTION_OKAY

TRUE if log2() works okay for zero, negative values and NaN. If it is FALSE fltLog2() should be used instead of log2().


LDEXP_FUNCTION_OKAY

var boolean: LDEXP_FUNCTION_OKAY

TRUE if ldexp() works okay for NaN. If it is FALSE fltLdexp() should be used instead of lsexp().


FREXP_FUNCTION_OKAY

var boolean: FREXP_FUNCTION_OKAY

TRUE if frexp() works okay for Infinity, NaN and subnormal numbers. If it is FALSE fltDecompose() should be used instead of frexp().


HAS_SIGSETJMP

var boolean: HAS_SIGSETJMP

TRUE if the functions sigsetjmp() and siglongjmp() are available. If it is FALSE the functions setjmp() and longjmp() must be used instead.


CHECK_INT_DIV_BY_ZERO

var boolean: CHECK_INT_DIV_BY_ZERO

TRUE if integer divisions must be checked for a division by zero. This applies to the division operations div and mdiv. The generated C code should, if a division by zero occurs, raise the exception NUMERIC_ERROR instead of doing the illegal divide operation. If CHECK_INT_DIV_BY_ZERO is FALSE a division by zero always triggers SIGFPE. SIGFPE is caught by the Seed7 run-time library and triggers a NUMERIC_ERROR.


CHECK_INT_DIV_ZERO_BY_ZERO

var boolean: CHECK_INT_DIV_ZERO_BY_ZERO

TRUE if the C expression 0/0 might not trigger SIGFPE. C compilers assume that so called "undefined behavior" will not happen. According to the C standard a division by 0 triggers undefined behavior. This way a C compiler is allowed to optimize the expressions 0/0 and 0/variable to 0. Likewise the expression variable/variable can be optimized to 1. In Seed7 a division by zero is defined behavior, since it raises the exception NUMERIC_ERROR. This configuration setting applies to the division operations div and mdiv. The generated C code should, if a division by zero occurs, raise the exception NUMERIC_ERROR instead of allowing the C compiler to do its optimization.


CHECK_INT_REM_BY_ZERO

var boolean: CHECK_INT_REM_BY_ZERO

TRUE if integer remainder must be checked for a division by zero. This applies to the division operations rem and mod. The generated C code should, if a remainder by zero occurs, raise the exception NUMERIC_ERROR instead of doing the illegal divide operation. If CHECK_INT_REM_BY_ZERO is FALSE a remainder by zero always triggers SIGFPE. SIGFPE is caught by the Seed7 run-time library and triggers a NUMERIC_ERROR.


CHECK_INT_REM_ZERO_BY_ZERO

var boolean: CHECK_INT_REM_ZERO_BY_ZERO

TRUE if the C expression 0%0 might not trigger SIGFPE. C compilers assume that so called "undefined behavior" will not happen. According to the C standard a division by 0 triggers undefined behavior. This way a C compiler is allowed to optimize the expressions 0%0 and 0%variable to 0. Likewise the expression variable%variable can be optimized to 0. In Seed7 a division by zero is defined behavior, since it raises the exception NUMERIC_ERROR. This configuration setting applies to the division operations rem and mod. The generated C code should, if a division by zero occurs, raise the exception NUMERIC_ERROR instead of allowing the C compiler to do its optimization.


FLOAT_ZERO_DIV_ERROR

var boolean: FLOAT_ZERO_DIV_ERROR

TRUE if floating point divisions by zero cause compilation errors. Some C compilers check if the dividend is 0.0 and classify a floating point division by zero as fatal compilation error. Some C compilers even trigger wrong behavior if the dividend is 0.0. In this case FLOAT_ZERO_DIV_ERROR is also TRUE. If FLOAT_ZERO_DIV_ERROR is TRUE the generated C code should avoid divisions by zero and generate code to return Infinity, -Infinity or NaN instead.


CHECK_FLOAT_DIV_BY_ZERO

var boolean: CHECK_FLOAT_DIV_BY_ZERO

TRUE if floating point divisions by zero don't conform to IEEE 754. According to IEEE 754 a floating point division by zero should return Infinity, -Infinity or NaN. In this case the compiler generates C code, which checks all float divisions ( / and /:= ) for division by zero. The generated C code should return Infinity, -Infinity or NaN instead of doing the divide operation.


HAS_EXP2

var boolean: HAS_EXP2

TRUE if the C function exp2() is present.


HAS_EXP10

var boolean: HAS_EXP10

TRUE if the C function exp10() is present.


HAS_EXPM1

var boolean: HAS_EXPM1

TRUE if the C function expm1() is present.


HAS_CBRT

var boolean: HAS_CBRT

TRUE if the C function cbrt() is present.


LIMITED_CSTRI_LITERAL_LEN

var boolean: LIMITED_CSTRI_LITERAL_LEN

TRUE if the C compiler limits the length of string literals. Some C compilers limit the maximum string literal length. There are limits of 2,048 bytes and 16,384 (16K) bytes. The actual limit is not interesting, but the fact that a limit exists or does not exist.


SWITCH_WORKS_FOR_INT64TYPE

var boolean: SWITCH_WORKS_FOR_INT64TYPE

TRUE if switch statements work with 64-bit values. If it is FALSE a switch statement with a 64-bit value triggers a compile error.


STMT_BLOCK_IN_PARENTHESES_OK

var boolean: STMT_BLOCK_IN_PARENTHESES_OK

TRUE if a compound statement is allowed in a parentesized expression. If it is FALSE a compound statement block in a parentesized expression triggers a compile error.


CC_SOURCE_UTF8

var boolean: CC_SOURCE_UTF8

TRUE if #line directives can use UTF-8 encoded file names. The file names from #line directives are used by the debugger to allow source code debugging.


USE_WMAIN

var boolean: USE_WMAIN

TRUE if the main function is named wmain. This is a way to support Unicode command line arguments under Windows. An alternate way to support Unicode command line arguments under Windows uses the functions getUtf16Argv() and freeUtf16Argv() (both defined in "cmd_win.c").


USE_WINMAIN

var boolean: USE_WINMAIN

TRUE if the main function is named WinMain.


USE_START_MAIN

var boolean: USE_START_MAIN

TRUE if the main function invokes startMain after a button click. If a start button exists the main function will wait for a click on this button. Afterwards startMain is invoked. If no start button exists startMain is invoked immediately.


USE_DO_EXIT

var boolean: USE_DO_EXIT

TRUE if the main function must be terminated with doExit().


FLOATTYPE_DOUBLE

var boolean: FLOATTYPE_DOUBLE

TRUE if the type floatType is double. If it is FALSE floatType is float.


INTTYPE_SIZE

var integer: INTTYPE_SIZE

Size of the type intType in bits (either 32 or 64). A typedef can define intType as int32Type respectively int64Type.


FLOATTYPE_SIZE

var integer: FLOATTYPE_SIZE

Size of the type floatType in bits.


POINTER_SIZE

var integer: POINTER_SIZE

Size of a pointer in bits.


GENERIC_SIZE

var integer: GENERIC_SIZE

The maximum of INTTYPE_SIZE, FLOATTYPE_SIZE and POINTER_SIZE. This is also the size in bits of the types rtlValueUnion, rtlObjectType and genericType (defined in data_rtl.h).


INT_SIZE

var integer: INT_SIZE

Size of the type int in bits.


INT_MIN

var integer: INT_MIN

Minimum value of the type int.


INT_MAX

var integer: INT_MAX

Maximum value of the type int.


LONG_SIZE

var integer: LONG_SIZE

Size of the type long in bits.


FLOATTYPE_MANTISSA_BITS

var integer: FLOATTYPE_MANTISSA_BITS

Number of mantissa bits in the binary floatType representation.


FLOATTYPE_EXPONENT_OFFSET

var integer: FLOATTYPE_EXPONENT_OFFSET

Exponent offset in the binary floatType representation. To get the actual exponent the offset must be subtracted.


INT_RANGE_IN_FLOATTYPE_MAX

var integer: INT_RANGE_IN_FLOATTYPE_MAX

Maximum from the continuous range of integers that map to floats. All integers from -INT_RANGE_IN_FLOATTYPE_MAX to INT_RANGE_IN_FLOATTYPE_MAX can be converted to floatType and back to intType without loss.


MINIMUM_TRUNC_ARGUMENT

var integer: MINIMUM_TRUNC_ARGUMENT

Minimum value that trunc() or round() can convert. Values below MINIMUM_TRUNC_ARGUMENT raise RANGE_ERROR, if trunc() or round() is applied to them.


MAXIMUM_TRUNC_ARGUMENT

var integer: MAXIMUM_TRUNC_ARGUMENT

Maximum value that trunc() or round() can convert. Values above MAXIMUM_TRUNC_ARGUMENT raise RANGE_ERROR, if trunc() or round() is applied to them.


PIXEL_ALPHA_MASK

var integer: PIXEL_ALPHA_MASK

Mask for the alpha channel in a pixel. 0 if there is no alpha channel.


PIXEL_RED_MASK

var integer: PIXEL_RED_MASK

Mask for the red color in a pixel. 0 if there is no mapping and drwRgbColor() should be used.


PIXEL_GREEN_MASK

var integer: PIXEL_GREEN_MASK

Mask for the green color in a pixel. 0 if there is no mapping and drwRgbColor() should be used.


PIXEL_BLUE_MASK

var integer: PIXEL_BLUE_MASK

Mask for the blue color in a pixel. 0 if there is no mapping and drwRgbColor() should be used.


RGB_TO_PIXEL_FLAG_NAME

var string: RGB_TO_PIXEL_FLAG_NAME

Name of the variable deciding between macro and drwRgbColor(). "" if no variable needs to be checked.


POINT_LIST_INT_SIZE

var integer: POINT_LIST_INT_SIZE

Size of an integer in a pointList object. A pointList consists of (x, y) coordinate pairs where each x and y has the size POINT_LIST_INT_SIZE.


POINT_LIST_ABSOLUTE

var boolean: POINT_LIST_ABSOLUTE

TRUE if a pointList uses absolute coordinates. If it is FALSE the first (x, y) coordinate pair is absolute and the remaining (x, y) coordinates are relative to the previous coordinate pair.


RAND_MULTIPLIER

var integer: RAND_MULTIPLIER

Multiplier for the linear congruential generator. A well known pseudorandom number generator algorithm.


RAND_INCREMENT

var integer: RAND_INCREMENT

Increment for the linear congruential generator. A well known pseudorandom number generator algorithm.


BOOLTYPE

var string: BOOLTYPE

Name of a type for the boolean values 0 and 1. The runtime library and the compiler use a typedef to define the type boolType with BOOLTYPE.


INT32TYPE

var string: INT32TYPE

Name of a signed integer type that is 32 bits wide. The runtime library and the compiler use a typedef to define the type int32Type with INT32TYPE.


UINT32TYPE

var string: UINT32TYPE

Name of an unsigned integer type that is 32 bits wide. The runtime library and the compiler use a typedef to define the type uint32Type with UINT32TYPE.


INT64TYPE

var string: INT64TYPE

Name of a signed integer type that is 64 bits wide. The runtime library and the compiler use a typedef to define the type int64Type with INT64TYPE.


UINT64TYPE

var string: UINT64TYPE

Name of an unsigned integer type that is 64 bits wide. The runtime library and the compiler use a typedef to define the type uint64Type with UINT64TYPE.


INT128TYPE

var string: INT128TYPE

Name of a signed integer type that is 128 bits wide. The runtime library and the compiler use a typedef to define the type int128Type with INT128TYPE. Empty string if there is no 128-bit signed integer type.


UINT128TYPE

var string: UINT128TYPE

Name of an unsigned integer type that is 128 bits wide. The runtime library and the compiler use a typedef to define the type uint128Type with UINT128TYPE. Empty string if there is no 128-bit unsigned integer type.


INT32TYPE_LITERAL_SUFFIX

var string: INT32TYPE_LITERAL_SUFFIX

The suffix used by the literals of the 32 bits wide integer type.


INT64TYPE_LITERAL_SUFFIX

var string: INT64TYPE_LITERAL_SUFFIX

The suffix used by the literals of the 64 bits wide integer type.


MACRO_DEFS

var string: MACRO_DEFS

Definition of several macros (likely, unlikely, noreturn).


OVERFLOW_SIGNAL

var string: OVERFLOW_SIGNAL

Name of the signal that is raised if a signed integer overflow occurs. OVERFLOW_SIGNAL is an empty string, if a signed integer overflow does not raise a signal. The C compiler option CC_OPT_TRAP_OVERFLOW is used to generate traps for signed integer overflow.


BUILTIN_ADD_OVERFLOW

var string: BUILTIN_ADD_OVERFLOW

Name of a C compiler builtin function to add with overflow check. Empty string if there is no such builtin function.


BUILTIN_SUB_OVERFLOW

var string: BUILTIN_SUB_OVERFLOW

Name of a C compiler builtin function to subtract with overflow check. Empty string if there is no such builtin function.


BUILTIN_MULT_OVERFLOW

var string: BUILTIN_MULT_OVERFLOW

Name of a C compiler builtin function to multiply with overflow check. Empty string if there is no such builtin function.


INT_DIV_OVERFLOW

var integer: INT_DIV_OVERFLOW

Defines what happens in case of an integer division overflow. An integer division can overflow with integer.first div -1. In this case the following things can happen:

  • 0 it triggers an endless loop.
  • 1 it triggers a popup window.
  • 2 it returns integer.first.
  • 3 it returns some other value.
  • 4 it raises SIGFPE.
  • 5 it raises SIGILL.
  • 6 it raises SIGABRT.
  • 7 it raises SIGTRAP.

In case of 0 (endless loop) the compiler must always check for an integer division overflow.


INT_REM_OVERFLOW

var integer: INT_REM_OVERFLOW

Defines what happens in case of an integer remainder overflow. An integer remainder can overflow with integer.first rem -1. In this case the following things can happen:

  • 0 it triggers an endless loop.
  • 1 it triggers a popup window.
  • 2 it returns 0.
  • 3 it returns some other value.
  • 4 it raises SIGFPE.
  • 5 it raises SIGILL.
  • 6 it raises SIGABRT.
  • 7 it raises SIGTRAP.

In case of 0 (endless loop) the compiler must always check for an integer remainder overflow.


OBJECT_FILE_EXTENSION

var string: OBJECT_FILE_EXTENSION

The extension used by the C compiler for object files. Several object files and libraries are linked together to an executable. Under Linux/Unix/BSD this is usually ".o". Under Windows this is ".o" for MinGW and Cygwin, but ".obj" for other compilers.


LIBRARY_FILE_EXTENSION

var string: LIBRARY_FILE_EXTENSION

The extension used by the linker for static libraries. Several object files can be grouped to a library. Under Linux/Unix/BSD this is usually ".a". Under Windows this is ".a" for MinGW and Cygwin, but ".lib" for other linkers.


EXECUTABLE_FILE_EXTENSION

var string: EXECUTABLE_FILE_EXTENSION

The extension used by the operating system for executables. Since executable extensions are not used under Linux/Unix/BSD it is "" for them. Under Windows the value ".exe" is used.


LINKED_PROGRAM_EXTENSION

var string: LINKED_PROGRAM_EXTENSION

The extension of the file produced by linking a program. Normally this is identical to the EXECUTABLE_FILE_EXTENSION, but in case of Emscripten this is independent from the EXECUTABLE_FILE_EXTENSION.


CC_ENVIRONMENT_INI

var string: CC_ENVIRONMENT_INI

Path to an INI file with the environment for the C compiler. If it is "" the C compiler does not need environment settings.


C_COMPILER

var string: C_COMPILER

Command to call the stand-alone C compiler and linker. Most IDEs provide also a stand-alone compiler/linker.


CALL_C_COMPILER_FROM_SHELL

var boolean: CALL_C_COMPILER_FROM_SHELL

TRUE if C compiler and linker must be called via the shell. If it is FALSE C compiler and linker processes are started direct.


CC_OPT_DEBUG_INFO

var array string: CC_OPT_DEBUG_INFO

C compiler option to add source level debugging information. With this option source level debugging information is added to the object file.


CC_OPT_LINK_TIME_OPTIMIZATION

var string: CC_OPT_LINK_TIME_OPTIMIZATION

C compiler option to do link time optimization. If it is "" the C compiler does not support link time optimization.


CC_OPT_NO_WARNINGS

var string: CC_OPT_NO_WARNINGS

C compiler option to suppress all warnings.


CC_OPT_OPTIMIZE_1

var array string: CC_OPT_OPTIMIZE_1

C compiler option to optimize with a level of -O1.


CC_OPT_OPTIMIZE_2

var array string: CC_OPT_OPTIMIZE_2

C compiler option to optimize with a level of -O2.


CC_OPT_OPTIMIZE_3

var array string: CC_OPT_OPTIMIZE_3

C compiler option to optimize with a level of -O3.


CC_OPT_TRAP_OVERFLOW

var string: CC_OPT_TRAP_OVERFLOW

C compiler option to generate traps for signed integer overflow. An integer overflow in the compiled program will trigger the signal defined with OVERFLOW_SIGNAL. CC_OPT_TRAP_OVERFLOW is an empty string, if the C compiler does not support such an option or if traps would not lead to a performance advantage.


CC_OPT_VERSION_INFO

var string: CC_OPT_VERSION_INFO

C compiler option to write the C compiler version information.


CC_FLAGS

var array string: CC_FLAGS

C compiler flags to be used if C programs are compiled.


CC_ERROR_FILEDES

var integer: CC_ERROR_FILEDES

File descriptor to which the C compiler writes errors. The MSVC stand-alone C compiler (CL) writes the error messages to standard output (file descriptor 1). The C compilers of Linux/Unix/BSD and the compilers from MinGW and Cygwin write the error messages to the error output (file descriptor 2).


CC_VERSION_INFO_FILEDES

var integer: CC_VERSION_INFO_FILEDES

File descriptor to which the C compiler writes its version info.


LINKER_OPT_DEBUG_INFO

var string: LINKER_OPT_DEBUG_INFO

Linker option to add source level debugging information. With this option source level debugging information is added to the executable file. (e.g.: "-Z7" or "-v"). Many compiler/linker combinations don't need this option to do source level debugging (use "").


LINKER_OPT_LTO_MANDATORY

var boolean: LINKER_OPT_LTO_MANDATORY

TRUE if linking always requires the option CC_OPT_LINK_TIME_OPTIMIZATION.


LINKER_OPT_NO_DEBUG_INFO

var string: LINKER_OPT_NO_DEBUG_INFO

Linker option to be used without source level debugging. This option can strip debug information (e.g.: "-Wl,--strip-debug").


LINKER_OPT_OUTPUT_FILE

var string: LINKER_OPT_OUTPUT_FILE

Linker option to provide the output filename (e.g.: "-o "). If no such option exists the value of LINKER_OPT_OUTPUT_FILE should be "". In this case it is assumed that the linker replaces the OBJECT_FILE_EXTENSION of the file with the LINKED_PROGRAM_EXTENSION.


LINKER_OPT_SPECIAL_LIB

var string: LINKER_OPT_SPECIAL_LIB

Linker option that needs to precede the special library. If no special library exists LINKER_OPT_SPECIAL_LIB is "".


LINKER_OPT_STACK_SIZE

var string: LINKER_OPT_STACK_SIZE

Linker option to specify the stack size of the executable. The argument for LINKER_OPT_STACK_SIZE is the stack size in bytes as decimal number. It must follow LINKER_OPT_STACK_SIZE immediately. The Seed7 compiler uses an argument of either DEFAULT_STACK_SIZE or the value specified with the -S Seed7 compiler option. If no linker option for the stack size exists LINKER_OPT_STACK_SIZE is "".


LINKER_FLAGS

var array string: LINKER_FLAGS

Standard linker options to link a compiled program. This contains options, that the linker always uses, and which are not covered by other LINKER_OPT_... settings.


DEFAULT_STACK_SIZE

var integer: DEFAULT_STACK_SIZE

Default stack size for a compiled executable. This value is used, if the Seed7 compiler is invoked without -S. If LINKER_OPT_STACK_SIZE exists DEFAULT_STACK_SIZE is used as argument for the stack size. Additionally DEFAULT_STACK_SIZE is used as argument for setupStack().


SYSTEM_LIBS

var array string: SYSTEM_LIBS

Options to link system libraries to a compiled program. This is intended for options to link libraries required by the Seed7 runtime library. E.g. libraries for socket.


SYSTEM_BIGINT_LIBS

var array string: SYSTEM_BIGINT_LIBS

Options to link system bigint libraries to a compiled program. This is intended for options to link libraries required by the Seed7 bigint.s7i runtime library (e.g.: "-lgmp").


SYSTEM_CONSOLE_LIBS

var array string: SYSTEM_CONSOLE_LIBS

Options to link system console libraries to a compiled program. This is intended for options to link libraries required by the Seed7 console runtime library (e.g.: "-lncurses").


SYSTEM_DATABASE_LIBS

var array string: SYSTEM_DATABASE_LIBS

Options to link system database ibraries to a compiled program. This is intended for options to link libraries required by the Seed7 database runtime libraries (e.g.: "-lmysqlclient").


SYSTEM_DRAW_LIBS

var array string: SYSTEM_DRAW_LIBS

Options to link system graphic libraries to a compiled program. This is intended for options to link libraries required by the Seed7 graphic runtime library (e.g.: "-lX11").


SYSTEM_MATH_LIBS

var array string: SYSTEM_MATH_LIBS

Options to link system mathematic libraries to a compiled program. This is intended for options to link libraries required by the Seed7 math.s7i runtime library. (e.g.: "-lm").


SEED7_LIB

var string: SEED7_LIB

Name of the Seed7 runtime library (e.g.: "seed7_05.a").


DRAW_LIB

var string: DRAW_LIB

Name of the Seed7 graphic runtime library (e.g.: "s7_draw.a").


CONSOLE_LIB

var string: CONSOLE_LIB

Name of the Seed7 text console runtime library (e.g.: "s7_con.a").


DATABASE_LIB

var string: DATABASE_LIB

Name of the Seed7 database runtime library (e.g.: "s7_db.a").


COMP_DATA_LIB

var string: COMP_DATA_LIB

Name of the Seed7 compiler data runtime library (e.g.: "s7_data.a").


COMPILER_LIB

var string: COMPILER_LIB

Name of the Seed7 compiler runtime library (e.g.: "s7_comp.a").


SPECIAL_LIB

var string: SPECIAL_LIB

Name of the special library (e.g.: "pre_js.js").


S7_LIB_DIR

var string: S7_LIB_DIR

Directory containing the Seed7 runtime libraries. This path uses the standard path representation (a slash is used as path separator and instead of a drive letter like "C:" the path "/c" is used).


VERSION_REVISION_LEVEL

var integer: VERSION_REVISION_LEVEL

The current version revision level of interpreter and compiler. The versioning of Seed7 interpreter and compiler use the pattern major.minor.revision (e.g.: 5.1.4). The revision level is incremented automatically with every compilation of the Seed7 interpreter. This configuration value allows that interpreter and compiler share the same revision.


REDIRECT_FILEDES_1

var string: REDIRECT_FILEDES_1

Shell parameter to redirect to the file descriptor 1. Under Linux/Unix/BSD and Windows this is ">". The file to which the standard output should be redirected must be appended. E.g.: >myFile.


REDIRECT_FILEDES_2

var string: REDIRECT_FILEDES_2

Shell parameter to redirect to the file descriptor 2. Under Linux/Unix/BSD and Windows this is "2>". The file to which the error output should be redirected must be appended. E.g.: 2>myFile.


NULL_DEVICE

var string: NULL_DEVICE

Name of the NULL device to be used in shell command redirections. Under Linux/Unix/BSD this is "/dev/null". Under Windows this is "NUL:".


INTTYPE_LITERAL_SUFFIX

var string: INTTYPE_LITERAL_SUFFIX

The suffix used by the literals of the type intType.


ccConf

var ccConfigType: ccConf

Structure with configuration values for C compiler and runtime.


Function Detail

getBuiltInConfig

const func ccConfigType: getBuiltInConfig

Determine the built-in (hard-coded) C compiler configuration values.

Returns:
a structure with the built-in configuration values.


 previous   up   next