Next: The Tool Box
Up: The Compiler
Previous: Specific extensions of SYSTEM
  Contents
  Index
We have removed or extended some of the restrictions and limitations
which were part of the original sources but some remain:
- The number of procedures and local modules is limited to 512
in each global module.
- The first 24 characters of module identifiers are significant only.
- The return type of functions must not be structured (well, this
is already stated in the report) and set types as return types are
accepted only if the range of ordinal values falls into the
interval of [0..31].
- There is an upper limit of the total amount of space used for
identifiers (which includes those identifiers in the directly
or indirectly imported definition modules).
- The scope nesting level is limited to 64.
- The base type of sets is limited to the ordinal range of
[0..MAX(INTEGER)]. This is the only restriction, that means
that SET OF CHAR and other (even much larger base types)
are perfectly legal.
- There may exist some pathological cases which could use up
all available registers during the code generator. But so far,
we don't have found an example to provoke that problem.
Note that some common restrictions are not imposed by
Ulm's Modula-2 compiler:
- The set of case labels may cover any range (as long as the
case expression is compatible to each of the case labels).
- Absolutely everything may be passed to a formal type
ARRAY OF BYTE, including arbitrary constants.
ARRAY OF WORD works similar but requires the actual
argument to have a size which is a multiple of 4 (the size
of WORD).
Next: The Tool Box
Up: The Compiler
Previous: Specific extensions of SYSTEM
  Contents
  Index
Andreas Borchert
2003-12-10