# Limitations and restrictions

There are some limitations and restrictions in implementation of both Modula-2 and Oberon-2 compilers.

- Length of identifiers
- Length of literal strings
- Record extension hierarchy
- Unimplemented ISO libraries
- Unimplemented Oakwood libraries
- Whole overflow
- Coroutines
- Dynamic loader

## Length of identifiers

The length of an identifier is at most 127 characters.

There may be further limitations imposed by your C compiler and linker. Please check the appropriate reference manuals.

## Length of literal strings

The length of a literal string is at most 256 characters. Longer strings may be constructed using the string concatenation operator (See Strings).

## Record extension hierarchy

The depth of a record extension hierarchy is at most 15 extensions.

## Unimplemented ISO libraries

The following Modula-2 ISO standard library modules are not available in the current release:

TermFile | Access to an interactive terminal
LowLong | Access to underlying properties of the type `LONGREAL`
LowReal | Access to underlying properties of the type `REAL`

## Unimplemented Oakwood libraries

The following Oberon-2 Oakwood library modules are not available in the current release:

Input | Keyboard and pointer device access
Files | File input/output, riders
XYPlane | Elementary pixel plotting

## Whole overflow

The whole overflow exception is not detected in the current release.

## Coroutines

The current release provides a restricted implementation of the system module COROUTINES: the interrupt requests are not detected.

## Dynamic loader

The Oberon-2 dynamic loading facility is not provided in the current release.