CONTENTS | PREV | NEXT
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