Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Storage Space Restrictions

1984 Version of ANSI Standard

6. Storage Space Restrictions

MUMPS has traditionally been implemented on small to medium size computers using a scheme of fixed memory allocation, one fixed partition per user. It is recognized that more flexible storage allocation techniques can be applied and there is no intent to restrict implementations to use of the traditional techniques. Nevertheless, because partitioned memory implementations will continue to be important for some time, certain storage restrictions are required to permit program portability. These restrictions have been defined in terms of parameters which are implementation-independent and observable to the application programmer.

The storage restrictions on portable programs are expressed in the following rule. At any time during the execution of a process, routine size plus local variable storage size plus temporary result storage size must not exceed 4000 characters. Storage space for control purposes, device buffers, disc buffers, line buffers, etc. is not included in this count.

The size of a routine is the sum of the sizes of all the lines in the routine. The size of each line is its length (as defined in Section 4.1) plus two.

The size of local variable storage is the sum of the sizes of all the simultaneously defined local variables. The size of an unsubscripted local variable is the length of its name in characters plus the length of its value in characters, plus two. The size of a local array is the sum of the following.

  1. The length of the name of the array.
  2. Two characters plus the length of each value.
  3. The size of each subscript in each subscript list.
  4. Two additional characters for each node N, whenever $DATA(N)>10.

All subscripts and values are considered to be character strings for this purpose.

All intermediate results generated during the processes of expression evaluation, indirection, multiple SET command scanning, etc. require the use of temporary storage. At any given time, the amount of temporary storage required is the sum of the lengths of all simultaneously existing temporary results. All temporary results are maintained as strings of contiguous characters.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

This page most recently updated on 14-Nov-2023, 21:40:34.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)