Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

Issue C63025     [previous patch]

MAX_EXPRESSION_NODES overflow generates bad message
Submitted by: Mark Tilford     Appeared in: Compiler 6.30 or before     Fixed in: -
Problem

An over-complex expression generates messages of the form:

  Fatal error: The memory setting MAX_EXPRESSION_NODES3 (which is 100 at
  present) has been exceeded.  Try running Inform again with
  $MAX_EXPRESSION_NODES3=<some-larger-number> on the command line.

(where the '3' can be any digit 1-9). This is very misleading, since the actual memory setting which must be changed is $MAX_EXPRESSION_NODES (without any digit 1-9).

Solution

In expressp.c, modify the nine calls of the form:

  memoryerror("MAX_EXPRESSION_NODES3", MAX_EXPRESSION_NODES);

to remove the digit 1-9. Alternatively, if this digit is needed for compiler debugging purposes, provide a new expressionnodeserror() routine in which the digit can be passed as a parameter without generated a misleading message.


Last updated 17 April 2013. This web site has not been fully supported since April 2008. Information may be out of date. This page was originally managed by Roger Firth.