Contents | < Browse | Browse >
16D. hardcoded limits
---------------------

Note these signs: (+-)    just about, depends on situation,
                  (n.l.)  no clear limit, but this seems reasonable.

--------------------------------------------------------------------------
OBJECT/ITEM					SIZE/AMOUNT/MAX
--------------------------------------------------------------------------

value datatype CHAR				0 .. 255
value datatype INT				-32 k .. +32 k
value datatype LONG/PTR				-2 gig .. +2 gig

identifierlength				100 bytes (n.l.)
length of one source line			2000 lexical tokens (+-)
source length					2 gig (theoretically)
constant lists					few hundred elements (+-)
constant strings				1000 chars (n.l.)
max. nesting depth of loops (IF, FOR etc.)	500 deep
max. nesting depth of comments			infinite

#of local variables per procedure		8000
#of global variables				7500
#of arguments to own functions			8000 (together with locals)
#of arguments to E-varargs functions (WriteF())	64 (v2.1) / 1024 (v2.5)
max length of string processed by WriteF() etc.	5000 (depends on stack)

one object (allocated local/global or dyn.)	8 k
one array, list or string (local or global)	32 k
one string (dynamically)			32 k
one list (dynamically)				128 k
one array (dynamically)				2 gig
objects with NEW				64k elem.
CHAR/INT/LONG with NEW				2 gig.

local data per procedure			250 meg
global data					250 meg

code size of one procedure			32 k
code size of executable				32 k SMALL, 2 gig LARGE model
current practical limit (may extend in future)	2-5 meg (v2.1) / 10 meg (v2.5)

buffersize of generated code and identifiers	relative to source
buffersize of labels/branches and intermediate	independently (re)allocated