ldmud-3.3.719/
ldmud-3.3.719/doc/
ldmud-3.3.719/doc/efun.de/
ldmud-3.3.719/doc/efun/
ldmud-3.3.719/doc/man/
ldmud-3.3.719/doc/other/
ldmud-3.3.719/mud/
ldmud-3.3.719/mud/heaven7/
ldmud-3.3.719/mud/lp-245/
ldmud-3.3.719/mud/lp-245/banish/
ldmud-3.3.719/mud/lp-245/doc/
ldmud-3.3.719/mud/lp-245/doc/examples/
ldmud-3.3.719/mud/lp-245/doc/sefun/
ldmud-3.3.719/mud/lp-245/log/
ldmud-3.3.719/mud/lp-245/obj/Go/
ldmud-3.3.719/mud/lp-245/players/lars/
ldmud-3.3.719/mud/lp-245/room/death/
ldmud-3.3.719/mud/lp-245/room/maze1/
ldmud-3.3.719/mud/lp-245/room/sub/
ldmud-3.3.719/mud/lp-245/secure/
ldmud-3.3.719/mud/sticklib/
ldmud-3.3.719/mud/sticklib/src/
ldmud-3.3.719/mudlib/deprecated/
ldmud-3.3.719/mudlib/uni-crasher/
ldmud-3.3.719/pkg/
ldmud-3.3.719/pkg/debugger/
ldmud-3.3.719/pkg/diff/
ldmud-3.3.719/pkg/misc/
ldmud-3.3.719/src/
ldmud-3.3.719/src/autoconf/
ldmud-3.3.719/src/ptmalloc/
ldmud-3.3.719/src/util/
ldmud-3.3.719/src/util/erq/
ldmud-3.3.719/src/util/indent/hosts/next/
ldmud-3.3.719/src/util/xerq/
ldmud-3.3.719/src/util/xerq/lpc/
ldmud-3.3.719/src/util/xerq/lpc/www/
ldmud-3.3.719/test/generic/
ldmud-3.3.719/test/inc/
ldmud-3.3.719/test/t-0000398/
ldmud-3.3.719/test/t-0000548/
ldmud-3.3.719/test/t-030925/
ldmud-3.3.719/test/t-040413/
ldmud-3.3.719/test/t-041124/
ldmud-3.3.719/test/t-language/
These file contains a collection of non-configurable limits:

Program properties
==================
* maximum program length: 1 MB (1048575 Bytes)
  This is defined by FUNSTART_MASK in exec.h, which is the maximum offset
  (address) of a functions code within the program block (relativ to the
  beginning). Changing it involves changing funflag_t and probably other
  stuff.

* maximum number of programs: 2^32-1
  The unique program ID number is a int32. It is incremented for each compiled
  program. If it reaches zero (after wrapping to negative values) the
  compiler or swapper calls renumber_programs(), which recycles numbers from
  old programs.
  (exec.h, prolang.y, swap.c, ...)

* maximum number of functions in a program: 65534
  The lookup table for function indexes holding the offsets of the function in
  the functions tables is unsigned short.
  The types of function arguments are stored in program_s.argument_types,
  which is index by the unsigned short programs_s.type_start. 65535 has a
  special meaning. Some code relies that this is unsigned short.
  (exec.h, ...)
  program_s.num_function_names and num_functions are unsigned short as well.

* maximum length of switch: 256k (262143 Bytes)
  Limited by BREAK_ADDRESS_MASK and CONTINUE_ADDRESS_MASK?

* maximum offset for branches: 32765 (0x7ffd)
  (prolang.y)

* number of virtual variables: 255
* number of global variables: 65536 (F_IDENTIFIER16)
* number of local variables: 256 (F_PUSH_LOCAL_VARIABLE_LVALUE)
* number of context variables: 256 (Should be consistent with local
  variables, MAX_LOCAL applies to both. 16 bit opcodes are not used yet.)

* max number of struct members: 255
  (exec.h, ...)


Hash tables
===========
* maximum size of the hash table for identifiers (ITABLE): 32768
  The hashes of identifiers are signed short which are in most cases 16 bit
  wide integers (lex.h, lex.c, ...)

* maximum size of the hash table for objects (OTABLE): 65536
* maximum size of the hash table for shared strings (HTABLE): 65536
  The hashes are of type unsigned short which are in most cases 16 bit
  wide integers.


Objects
=======
* maximum clone ID number: 2^32-1
  Not a real limitation, after that the driver starts checking if 
  blueprint name + #cloneid are unique.


Memory management
=================
* max. size of single large block in slaballo.c and smalloc.c:
  0x07ffffff (134217727, defined by M_MASK)