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 2 May 2008. The librarian in charge of this page is Roger Firth. Please email any comments, suggestions or corrections to roger@firthworks.com.