🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.postscript
Article #5574

Re: Bind problems

#5574
From: Bakul Shah
Date: Sun, 05 May 1991 19:57
28 lines
1713 bytes
rokicki@neon.Stanford.EDU (Tomas G. Rokicki) writes:
>Bind causes problems if a document that includes a definition such as
>   /p /show load def
>then includes a graphic file that does something along the lines of
>   /test { /p exch def p show } bind def
>for a simple example.  I have found that this happens fairly often.

This is a problem due to the dynamic scoping rules of postscript.
What happens if show was redefined in the enclosing environment?
The included file has no easy way of protecting itself from such
redefinitions, with or without the use of bind.  The point is that
a programmer has to know language rules and their consequences.
Of course, this particular problem is very hard to figure out
without being actually bitten by it.  And may be even then.

A workaround may be to define a procedure that binds to operators
only if their names appear in system dict and redefine bind to it
(assuming new definitions do not get put in systemdict).
Redefining bind to a null proc will work even better but bind does
improve performance in some cases so that may not be such a great
idea.

IMO Adobe should write an app-note about the correct use of bind
and other consequences of dynamic scoping to help avoid such
problems.  Hopefully.

Bakul Shah
bvs@BitBlocks.com
Technical Details
Message-ID: <1991May5.195723.2145@BitBlocks.COM>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!apple!veritas!amdcad!BitBlocks.COM!bvs
References: <1991May5.010114.24826@neon.Stanford.EDU>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!apple!veritas!amdcad!BitBlocks.COM!bvs
From: bvs@BitBlocks.COM (Bakul Shah)
Newsgroups: comp.lang.postscript
Subject: Re: Bind problems
Message-ID: <1991May5.195723.2145@BitBlocks.COM>
Date: 5 May 91 19:57:23 GMT
References: <1991May5.010114.24826@neon.Stanford.EDU>
Organization: Bit Blocks, Inc.
Lines: 28