[tex-k] [comp.text.tex] web2c wish...

David Kastrup David.Kastrup@t-online.de
26 Feb 2002 05:11:45 +0100


Hello, due to lack of resonance, I forward a proposal of mine to the
web2c list in the hope that somebody is interested in this.  This
would be the base for fast recompilation techniques.  The
implementation should not take more than a few dozen lines, I would
guess, if one can make use of the fork system call.  Since I am not
subscribed myself to this list, it would be nice if you copied me any
responses.  Thank you.

Content-Type: message/rfc822
Content-Disposition: inline

Path: news.t-online.com!newsmm00.sul.t-online.com!t-online.de!news.t-online.com!not-for-mail
From: David Kastrup <David.Kastrup@t-online.de>
Newsgroups: comp.text.tex
Subject: web2c wish...
Date: 13 Feb 2002 00:56:15 +0100
Organization: T-Online
Lines: 31
Sender: dak@tupik.goethe.zz
Message-ID: <x5ofiufe5c.fsf@tupik.goethe.zz>
X-Trace: news.t-online.com 1013558176 05 24086 CTGoT-8VSvAjX5 020212 23:56:16
X-Complaints-To: abuse@t-online.com
X-Sender: 520018396234-0001@t-dialin.net
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1
Xref: news.t-online.com comp.text.tex:163470
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

Hi, we have a \write18 interface that can be enabled by command line.
Now I would like to have a \read18 interface.  This is supposed to
work like the following:

I use an \openin on channel 18 in order to associate a file or socket
with channel 18.  When the corresponding \read occurs and data is
available for reading, TeX does a fork system call.  The parent
process records the file pointers of all open files (except channel
18) and then goes to sleep.  Once it does that, the child continues
processing, and can read channel 18 for that purpose, getting
instructions from there, file names, whatever necessary.  When the
child dies, the parent gets woken up again.  As soon as data is
available again on channel 18, the parent truncates all open write
channels back to the size they were at fork time and moves all read
pointers to the location they were at fork time.  If the file on
channel 18 reaches end of file, the parent terminates without
truncating any files.

Obviously, a named pipe or socket is the right thing to use for that.

The idea is to have an in-memory copy of LaTeX hanging around, or even
a document already run up to \begin{document}, that is eager to
process or reprocess a small document or a document part as fast as

Anybody better ideas or thoughts why this is not a good idea?

David Kastrup, Kriemhildstr. 15, 44793 Bochum
Email: David.Kastrup@t-online.de


David Kastrup, Kriemhildstr. 15, 44793 Bochum
Email: David.Kastrup@t-online.de