Seed7 - The extensible programming language
Seed7 FAQ Manual Screenshots Examples Libraries Algorithms Download Links
Libraries AES ARC4 Array ASN.1 Bigfile Bigint Bigrat Bin32 Bin64 Bitdata Bitmapfont Bitset Bitsetof Boolean Browser Bstring Bytedata Cards Category CC config Cgi Cgi dialog Char Charsets Cipher Clib_file Color CLI Commands Complex Console Crc32 Deflate DES Dialog Dir Draw Duration Echo Editline Enable_input Enable_io Enable_output Encoding Environment External_file File File system Float Font Forloop Ftp Getf Gethttp Gethttps Graph Graph_file Gzip Hash Hashsetof Hmac Html_ent Httpserv Idxarray Image Inflate Inflate file Inifile Integer Keybd Line Listener LZW Make Math Msgdigest Null_file Osfiles Picture utility Pixmap_file Pixmapfont PKCS #1 Poll Process Progs Propertyfile Rational Reference Ref_list Scanfile Scanstri Set Shell Smtp Sockbase Socket SQL base Stdio Strifile String Stritext Subrange Tar Text Time TLS/SSL Triple DES Unicode Utf16 Utf8 Vectorfont 3D Vector Window Wrinum X.509 Xmldom Xml_ent Zip
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.


Constant Summary
ccConfigType
ccConf
Structure with configuration values for C compiler and runtime.

Variable Summary
boolean
WITH_STRI_CAPACITY
TRUE, when the Seed7 runtime library uses strings with capacity.
boolean
ALLOW_STRITYPE_SLICES
TRUE, when the actual characters of a string can be stored elsewhere.
boolean
ALLOW_BSTRITYPE_SLICES
TRUE, when the actual characters of a bstring can be stored elsewhere.
boolean
RSHIFT_DOES_SIGN_EXTEND
TRUE, when right shifts preserve the sign of negative signed integers.
boolean
TWOS_COMPLEMENT_INTTYPE
TRUE, when signed integers are represented as twos complement numbers.
boolean
LITTLE_ENDIAN_INTTYPE
TRUE, when the byte ordering of integers is little endian.
boolean
NAN_COMPARISON_OKAY
TRUE, when a comparison between two NaN values returns FALSE.
boolean
POW_FUNCTION_OKAY
TRUE, when pow() works okay for a base of zero, one or NaN.
boolean
FREXP_INFINITY_NAN_OKAY
TRUE, when frexp(Infinity, &exponent), frexp(-Infinity, &exponent)
boolean
HAS_SIGSETJMP
TRUE, when the functions sigsetjmp() and siglongjmp() are available.
boolean
HAS_SIGACTION
TRUE, when the C function sigaction() is present.
boolean
SIGNAL_RESETS_HANDLER
TRUE, when a signal resets the signal handling to SIG_DFL.
boolean
FLOAT_ZERO_DIV_ERROR
TRUE, when floating point divisions by zero cause compilation errors.
boolean
DO_SIGFPE_WITH_DIV_BY_ZERO
TRUE, when SIGFPE should be raised with an integer division by zero.
boolean
CHECK_INT_DIV_BY_ZERO
TRUE, when integer divisions must be checked for a division by zero.
boolean
CHECK_INT_REM_BY_ZERO
TRUE, when integer remainder must be checked for a division by zero.
boolean
CHECK_INT_REM_ZERO_BY_ZERO
TRUE, when the integer expression 0%0 might not trigger SIGFPE.
boolean
HAS_EXP2
TRUE, when the C function exp2() is present.
boolean
HAS_EXP10
TRUE, when the C function exp10() is present.
boolean
HAS_LOG2
TRUE, when the C function log2() is present.
boolean
HAS_CBRT
TRUE, when the C function cbrt() is present.
boolean
CHECK_FLOAT_DIV_BY_ZERO
TRUE, when floating point divisions by zero don't conform to IEEE 754.
boolean
LIMITED_CSTRI_LITERAL_LEN
TRUE, when the C compiler limits the length of string literals.
boolean
CC_SOURCE_UTF8
TRUE, when #line directives can use UTF-8 encoded file names.
boolean
USE_WMAIN
TRUE, when the main function is named wmain.
boolean
USE_WINMAIN
TRUE, when the main function is named WinMain.
boolean
FLOATTYPE_DOUBLE
TRUE, when 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
INT_RANGE_IN_FLOATTYPE_MAX
Maximum from the continuous range of integers that map to floats.
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 when an integer 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
C_COMPILER
Command to call the stand-alone C compiler and linker.
array string
CC_OPT_DEBUG_INFO
C compiler option to add source level debugging information.
string
CC_OPT_NO_WARNINGS
C compiler option to suppress all warnings.
array string
CC_FLAGS
C compiler flags to be used when C programs are compiled.
integer
CC_ERROR_FILDES
File descriptor to which the C compiler writes errors.
string
LINKER_OPT_DEBUG_INFO
Linker option to add source level debugging information.
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 ").
array string
LINKER_FLAGS
Standard linker options to link a compiled program.
array string
SYSTEM_LIBS
Options to link system libraries to a compiled program.
array string
SYSTEM_CONSOLE_LIBS
Options to link system console libraries to a compiled program.
array string
SYSTEM_DRAW_LIBS
Options to link system graphic libraries to a compiled program.
array string
SYSTEM_DB_LIBS
Options to link database libraries to a compiled program.
string
SEED7_LIB
Name of the Seed7 runtime library (e.g.: "seed7_05.a").
string
CONSOLE_LIB
Name of the Seed7 text console runtime library (e.g.: "s7_con.a").
string
DRAW_LIB
Name of the Seed7 graphic runtime library (e.g.: "s7_draw.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
S7_LIB_DIR
Directory containing the Seed7 runtime libraries.
string
REDIRECT_FILDES_1
Shell parameter to redirect to the file descriptor 1.
string
REDIRECT_FILDES_2
Shell parameter to redirect to the file descriptor 2.
string
NULL_DEVICE
Name of the NULL device.
string
INTTYPE_LITERAL_SUFFIX
The suffix used by the literals of the type intType.

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

Constant Detail

ccConf

const ccConfigType: ccConf

Structure with configuration values for C compiler and runtime.


Variable Detail

WITH_STRI_CAPACITY

var boolean: WITH_STRI_CAPACITY

TRUE, when 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, when 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, when 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, when right shifts preserve the sign of negative signed integers. The C standard specifies that the right shift of signed integers is implementation defined, when the shifted values are negative.


TWOS_COMPLEMENT_INTTYPE

var boolean: TWOS_COMPLEMENT_INTTYPE

TRUE, when 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, when 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.


NAN_COMPARISON_OKAY

var boolean: NAN_COMPARISON_OKAY

TRUE, when a comparison between two NaN values returns FALSE. Comparison refers to comparisons with == < > <= or >= . If it is FALSE fltEq(), fltGe(), fltGt(), fltLe() and fltLt() should be used to do comparisons of float values.


POW_FUNCTION_OKAY

var boolean: POW_FUNCTION_OKAY

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


FREXP_INFINITY_NAN_OKAY

var boolean: FREXP_INFINITY_NAN_OKAY

TRUE, when frexp(Infinity, &exponent), frexp(-Infinity, &exponent) and frexp(NaN, &exponent) return the first argument and set the exponent to 0. If it is FALSE checks for this special cases must be done.


HAS_SIGSETJMP

var boolean: HAS_SIGSETJMP

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


HAS_SIGACTION

var boolean: HAS_SIGACTION

TRUE, when the C function sigaction() is present. When it is FALSE the function signal() must be used instead.


SIGNAL_RESETS_HANDLER

var boolean: SIGNAL_RESETS_HANDLER

TRUE, when a signal resets the signal handling to SIG_DFL. When it is FALSE the signal handler stays unchanged, when a signal is raised. When a signal handler is set with signal() an incoming signal might trigger a reset of the signal handling. This depends on the C run-time. SIGNAL_RESETS_HANDLER is TRUE, when the C run-time resets the signal handling. When a signal handler is set with sigaction() an incoming signal always leaves the signal handling unchanged (SIGNAL_RESETS_HANDLER is FALSE).


FLOAT_ZERO_DIV_ERROR

var boolean: FLOAT_ZERO_DIV_ERROR

TRUE, when 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 error. The generated C code should avoid this situation and generate code to raise the exception NUMERIC_ERROR instead.


DO_SIGFPE_WITH_DIV_BY_ZERO

var boolean: DO_SIGFPE_WITH_DIV_BY_ZERO

TRUE, when SIGFPE should be raised with an integer division by zero. An integer division by zero should be done instead of just calling raise(SIGFPE). Under Windows it is necessary to trigger SIGFPE this way to assure that the debugger can catch it. The Seed7 to C compiler produces code to raise SIGFPE when an uncaught EXCEPTION occurs (when the compiler was called with the option -e).


CHECK_INT_DIV_BY_ZERO

var boolean: CHECK_INT_DIV_BY_ZERO

TRUE, when integer divisions must be checked for a division by zero. This applies to the division operations div, rem, mdiv and mod. The generated C code should, when a division by zero occurs, raise the exception NUMERIC_ERROR instead of doing the illegal divide operation.


CHECK_INT_REM_BY_ZERO

var boolean: CHECK_INT_REM_BY_ZERO

TRUE, when integer remainder must be checked for a division by zero. This applies to the division operations rem and mod. The generated C code should, when a remainder by zero occurs, raise the exception NUMERIC_ERROR instead of doing the illegal divide operation.


CHECK_INT_REM_ZERO_BY_ZERO

var boolean: CHECK_INT_REM_ZERO_BY_ZERO

TRUE, when the integer expression 0%0 might not trigger SIGFPE. This can happen with a constant or a variable dividend. This applies to the division operations rem and mod. The generated C code should, when a remainder by zero occurs, raise the exception NUMERIC_ERROR instead of doing the illegal divide operation.


HAS_EXP2

var boolean: HAS_EXP2

TRUE, when the C function exp2() is present.


HAS_EXP10

var boolean: HAS_EXP10

TRUE, when the C function exp10() is present.


HAS_LOG2

var boolean: HAS_LOG2

TRUE, when the C function log2() is present.


HAS_CBRT

var boolean: HAS_CBRT

TRUE, when the C function cbrt() is present.


CHECK_FLOAT_DIV_BY_ZERO

var boolean: CHECK_FLOAT_DIV_BY_ZERO

TRUE, when 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, when executed, return Infinity, -Infinity or NaN instead of doing the divide operation.


LIMITED_CSTRI_LITERAL_LEN

var boolean: LIMITED_CSTRI_LITERAL_LEN

TRUE, when 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.


CC_SOURCE_UTF8

var boolean: CC_SOURCE_UTF8

TRUE, when #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, when 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, when the main function is named WinMain.


FLOATTYPE_DOUBLE

var boolean: FLOATTYPE_DOUBLE

TRUE, when the type floatType is double. When 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.


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.


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 when 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 when 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 when an integer overflow occurs. Empty string when integer overflow does not raise a signal.


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.


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.


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_NO_WARNINGS

var string: CC_OPT_NO_WARNINGS

C compiler option to suppress all warnings.


CC_FLAGS

var array string: CC_FLAGS

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


CC_ERROR_FILDES

var integer: CC_ERROR_FILDES

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 compliers of Linux/Unix/BSD and the compilers from MinGW and Cygwin write the error messages to the error output (file descriptor 2).


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_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 "). When 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 EXECUTABLE_FILE_EXTENSION.


LINKER_FLAGS

var array string: LINKER_FLAGS

Standard linker options to link a compiled program. This is intended for options that specify the stack size or similar things (e.g.: "-Wl,--gc-sections,--stack,4194304").


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 math, socket or multiple precision (gmp).


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_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_DB_LIBS

var array string: SYSTEM_DB_LIBS

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


SEED7_LIB

var string: SEED7_LIB

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


CONSOLE_LIB

var string: CONSOLE_LIB

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


DRAW_LIB

var string: DRAW_LIB

Name of the Seed7 graphic runtime library (e.g.: "s7_draw.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").


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


REDIRECT_FILDES_1

var string: REDIRECT_FILDES_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_FILDES_2

var string: REDIRECT_FILDES_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. 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.


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