PostScript 控制循环 - 服务器循环
PostScript control loop - server loop
我正在调查 start/server 循环。
Insi de Postscript 一书解释了 /start 过程。
该过程的一部分是控制回路:
...
{
//serverdict /server get exec
//serverdict begin
setstreams
setnulldevice
/execjob
load
end
exec
} loop
...
现在我正试图找出 /server 到底做了什么以及它可能是什么样子(以最简单的形式)。
//serverdict /server get exec
上面这一行获取服务器过程并立即执行。
现在我有一个这样的服务器循环:
/server {
{ % server loop
(i'm in a server loop) print flush
(%stdin) run
}
loop
} def
但我陷入了无限循环。服务器循环如何以及何时可以进入下一步 (//serverdict begin setstreams etc...) 因为它当前处于无限循环中?
在您显示的控制循环中,绑定到名称 server
的对象似乎不像您的代码那样循环。它似乎做了一些初始化,然后 return。表达式 /execjob load
似乎 运行 当前作业。除此之外,还有一个 { ... } loop
表达式,它似乎是您实现的服务器循环。
如果您想将自己的服务器代码插入提供的循环中,您需要使用解释器提供的 //serverdict
的内容。如果你想编写自己的服务器循环,似乎你需要走出一个层次,并替换整个 { ... } loop
表达式,也许 //serverdict
也是如此。
如果你想"find out what /server exactly does and how it might look like…",看看怎么样?道德等同于:
//serverdict /server get == flush
我正在调查 start/server 循环。 Insi de Postscript 一书解释了 /start 过程。 该过程的一部分是控制回路:
...
{
//serverdict /server get exec
//serverdict begin
setstreams
setnulldevice
/execjob
load
end
exec
} loop
...
现在我正试图找出 /server 到底做了什么以及它可能是什么样子(以最简单的形式)。
//serverdict /server get exec
上面这一行获取服务器过程并立即执行。
现在我有一个这样的服务器循环:
/server {
{ % server loop
(i'm in a server loop) print flush
(%stdin) run
}
loop
} def
但我陷入了无限循环。服务器循环如何以及何时可以进入下一步 (//serverdict begin setstreams etc...) 因为它当前处于无限循环中?
在您显示的控制循环中,绑定到名称 server
的对象似乎不像您的代码那样循环。它似乎做了一些初始化,然后 return。表达式 /execjob load
似乎 运行 当前作业。除此之外,还有一个 { ... } loop
表达式,它似乎是您实现的服务器循环。
如果您想将自己的服务器代码插入提供的循环中,您需要使用解释器提供的 //serverdict
的内容。如果你想编写自己的服务器循环,似乎你需要走出一个层次,并替换整个 { ... } loop
表达式,也许 //serverdict
也是如此。
如果你想"find out what /server exactly does and how it might look like…",看看怎么样?道德等同于:
//serverdict /server get == flush