Subject: bug#28811: 11.90.2.2017-07-25; preview-at-point

From: Ken Sharp <[email-masked]>
Date: Sun, 05 Nov 2017 16:14:28 +0000

At 20:45 04/11/2017 +0100, David Kastrup wrote:

> > Also WRITESYSTEMDICT and other things.
> >
> > In any event, DELAYSAFER hasn't changed.
>
>It's pretty pointless unless one can use .runandhide to temporarily be
>safe.

Make *what* safe ? .runandhide wasn't (directly) an aspect of SAFER or 
DELAYSAFER, its perfectly possible to have, and write PostScript which is 
not compatible with SAFER (and which therefore needs to be run before 
SAFER) but which doesn't require ,runandhide.

>I repeat: the order of the files to be rendered is not known when
>Ghostscript is started: that depends on where the viewer is paging when
>Ghostscript has free capacities.
>   This "render stuff currently on screen
>first" thing is pretty important for maintaining good interactivity.
>.runandhide is used for rendering one file safely, then get Ghostscript
>back into a state where it is possible to tell it via pipe to its
>command line what to do next.

OK bear in mind I have yet to see a complete PostScript transcript. All 
I've seen is fragments, buried inside other code.

I have not said 'we're not putting it back', I've said 'let's discuss 
this'. If you can please explain why you can't refactor your PostScript to 
do away with .runandhide then we'll certainly consider this.

However, all I'm getting (and this may well be my faulty understanding from 
the limited code I've seen) is 'put it back, because we need it and we 
can't change'

Now I'm prepared to believe that, but I'd like to see why that's required, 
at the moment I don't see why it is. Maybe we can suggest alternatives that 
will be satisfactory.

So please; send me a simple example of the PostScript that gets sent to 
Ghostscript. If you can arrange for that to be annotated with comments 
explaining what the code does that would be great, if not then just the raw 
code.

I do need to understand why you need .runandhide; what its doing for you 
that you need to have, and can't achieve another way. I appreciate that its 
'because you don't know what files are going to be run' which is fine, but 
rather high level as an explanation. What specifically is .runandhide doing 
for you that you can't achieve without it ?

Noote that we went through our own code examples removing the requirement 
from our code, so we are not entirely unfamiliar with techniques to deal 
with this.

                         Ken