Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!agate!bionet!ames!hc!lanl!cmcl2!yale!engelson From: engelson@cs.yale.edu (Sean Engelson) Newsgroups: comp.lang.postscript Subject: Re: dictfull?? Message-ID: <50250@yale-celray.yale.UUCP> Date: 10 Feb 89 15:43:13 GMT References: <4242@pt.cs.cmu.edu> Sender: root@yale.UUCP Reply-To: engelson@cs.yale.edu (Sean Engelson) Organization: Computer Science, Yale University, New Haven, CT 06520-2158 Lines: 38 In-reply-to: jwz@spice.cs.cmu.edu (Jamie Zawinski) In article <4242@pt.cs.cmu.edu>, jwz@spice (Jamie Zawinski) writes: >I've written a document production system that generates PostScript. ... >Now, for large documents, I get the error "dictfull, flushing job", and I >have no idea what dictionary is filling up. ... >The function that drops words down on the page sets variables. So the only >thing I can think of is that executing "/foo 0 def" over and over again >makes the dictionary grow - but that doesn't make a whole lot of sense. It is your "/fu 0 def"s that are filling up the dictionary. You see, def creates a new binding, rather than setting a variable. What you should do is create one binding somewhere, and use "/fu 0 store" instead. If you want local bindings, do something like: /fuproc { 10 dict begin /fu 0 def /bar (Quux) def ... end } def Which will create a temporary dictionary to hold local bindings. -Sean- ---------------------------------------------------------------------- Sean Philip Engelson, Gradual Student Who is he that desires life, Yale Department of Computer Science Wishing many happy days? Box 2158 Yale Station Curb your tongue from evil, New Haven, CT 06520 And your lips from speaking (203) 432-1239 falsehood. ---------------------------------------------------------------------- I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones. -- Albert Einstein