Limits on compiler and compiled program structure in LotusScript®
The following table lists limits on miscellaneous items related to compiling a script.
Item |
Maximum |
---|---|
Number of lines per script or source file, not including the contents of %Include files |
64K |
Depth of nested %Include directives |
16 |
Number of compilation errors before the LotusScript® compiler halts |
20 |
Number of symbols in a module's symbol table. |
64K |
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.