[tex-k] Fwd: TeXShop/teTeX speed using TeX+ghostscript

Olaf Weber olaf@infovore.xs4all.nl
11 Oct 2002 19:00:29 +0200

Gerben Wierda writes:

> There was a discussion on the Mac OS X TeX list on the past behaviour
> of TeX on NeXT (which is still lightning fast on 10-year old hardware
> fast compared to TeX on Mac OS X). I asked Tom Rokicki about this. His
> answer is appended below.

The code is still there.

The socket is named $HOME/.TeXview_Pipe

Look for IPC in texmfmp.c, --with-ipc in configure.

I don't use it myself, so make no claims as to whether is works for
your (or any) purpose.

> I would love to see this return to TeX. It seems a small issue:
> 1. Make sure the output file is flushed whenever a page is shipped out.

It uses unix 'write(2)' into a UNIX domain socket.  I think the
application doesn't need to do explicit flushes at that point.

> 2. Write something to a named pipe to signal a page has been shipped.

There is an end-of-page indicator in the message.

But even if it only dumped a raw dvi stream, you'd just scan for the
dvi eop operator in the stream.

> The current --ipc implementation seems to be (from the man page) to
> write DVI to a socket. The man page doesn't say what/which socket. I
> would like to know if this is true for pdfTeX also.


> I would be interested in knowing if the original mechanism by Tomas
> Rokicki is still there somehow or if people are interested to have
> this added to texk. It would really be great to have this. Also note
> the remark that Tomas made at the end of his mail to me. That, of
> course, is a very interesting feature as well.

> G

> Begin forwarded message:

>> From: "Tomas G. Rokicki" <rokicki@CS.Stanford.EDU>
>> Date: Thu Oct 3, 2002  06:01:55 Europe/Amsterdam
>> To: Sherlock@rna.nl, rokicki@CS.Stanford.EDU
>> Subject: Re: Fwd: [OS X TeX] TeXShop/teTeX speed using TeX+ghostscript
>> Howdy!
>> No, I think --ipc would be trivial to implement.  I think it's even
>> in teTeX---or it was, at one point.
>> The only important things are as follows:
>> 1.  After each page is shipped, make sure that the dvi file is flushed.
>> 2.  Write to a named pipe (that's how I did it but I'm sure that there
>> other other ways) indicating the availability of a new page and
>> the corresponding "new" eof in the dvi file.
>> 3.  Modify the previewer to never read the dvi file past this eof,
>> and make it be prepared to deal with the new eof information.
>> It's actually quite simple to do.
>> Now, looking at teTeX, it looks like they have a different way of
>> doing it---sending the dvi info to a socket.  This, to me, while
>> workable, isn't perfect; I'd rather just pull the bytes directly
>> from the dvi file that TeX is already writing.  But that's just me.
>> I'd be happy to discuss this with anyone interested in implementing it.
>> I did it for both the Amiga and the NeXT, and it does make a
>> significant difference.
>> [So does preloading the format file, and "reloading" it from memory
>> rather than from disk by understanding what parts are mutable and
>> which are not, which allows you to reTeX almost instantly, and gives
>> you lightning-TeX like features pretty easy, but that's a different
>> topic . . .]
>> -tom

> _______________________________________________
> tex-k mailing list
> tex-k@tug.org
> http://tug.org/mailman/listinfo/tex-k

Olaf Weber

               (This space left blank for technical reasons.)