Path: utzoo!attcan!uunet!mcvax!ukc!cam-cl!cet1
From: cet1@cl.cam.ac.uk (C.E. Thompson on jenny)
Newsgroups: comp.lang.postscript
Subject: Re: Interesting Bug
Message-ID: <873@scaup.cl.cam.ac.uk>
Date: 17 Aug 89 17:40:05 GMT
Sender: news@cl.cam.ac.uk
Reply-To: cet1@cl.cam.ac.uk (C.E. Thompson)
Organization: U of Cambridge Comp Lab, UK
Lines: 26

In article <2106@optilink.UUCP>, cramer@optilink.UUCP (Clayton Cramer)
describes the infinite loop caused by

   /L {L} def  % ...
   L

and in article <4079@shlump.nac.dec.com>, batcheldern@level.dec.com
(Ned Batchelder) explains how execstackoverflow is avoided by
PostScript's tail recursion removal (documented in the footnote
on page 41 of the Red Book, by the way).

It may be worth pointing out that there a couple of ways (at least)
of getting out of the loop, short of pulling the plug on the LW.
Firstly, if a job time limit has been set by 'setjobtime' (or the
eerom default has been set nonzero), then the timeout will be effective
in this situation. Alternatively, an ETX (ctrl/C) character on the
input port will generate at 'interrupt' error.

Of course, these techniques are equally effective with other loops,
such as

    {} loop

Chris Thompson
JANET:    cet1@uk.ac.cam.phx
Internet: cet1%phx.cam.ac.uk@nsfnet-relay.ac.uk