Limits on compiler and compiled program structure in LotusScript®

The following table lists limits on miscellaneous items related to compiling a script.



Number of lines per script or source file, not including the contents of %Include files


Depth of nested %Include directives


Number of compilation errors before the LotusScript® compiler halts


Number of symbols in a module's symbol table.


Number of recursive calls (recursion level for a given function)

32Kbyte stack size

Storage size of all data in a given scope (See "Storage size of data".)

Module: Limited by available memory.

Class: 64K bytes

Procedure: 32K bytes

Size of executable module code

Limited by available memory.

Storage size of data

The limits on the storage size of data in a given scope apply to fixed-size variables: scalar variables except for variable-length strings; user-defined type variables; and fixed arrays of these scalar variables and user-defined type variables. Depending on the order of declaration, alignment of variables on storage boundaries can take extra space. For example, an Integer variable is aligned on a 2-byte boundary, and a Long variable is aligned on a 4-byte boundary.

The maximum size of data in each dynamic variable (each variable-length string, each list, each dynamic array, and each instance of a class) is limited by available memory. However, each such variable will use 4 bytes for data in the scope where it is declared.

Because of run-time needs, LotusScript® might generate an Out of stack error just before it reaches the data storage size limit.