diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
commit | 487ca4806cc046076293cf6cc5fbba0db282bac7 (patch) | |
tree | 847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/web2c/tiedir/tiedoc.tex | |
parent | a3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (diff) |
texk 1
git-svn-id: svn://tug.org/texlive/trunk@1485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/tiedir/tiedoc.tex')
-rw-r--r-- | Build/source/texk/web2c/tiedir/tiedoc.tex | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/tiedir/tiedoc.tex b/Build/source/texk/web2c/tiedir/tiedoc.tex new file mode 100644 index 00000000000..40cb9198ac1 --- /dev/null +++ b/Build/source/texk/web2c/tiedir/tiedoc.tex @@ -0,0 +1,176 @@ +% tiedoc.tex 26 Oct 89 +%------------------------ + +% 89-10-26 js: changed description of user interface which was altered +% in the rewrite of TIE in CWEB. +% 88-12-?? kg: first release + + + +\documentstyle{article} + +\let\mc=\small +\def\TANGLE{{\tt TANGLE}} +\def\TIE{{\tt TIE}} +\def\WEAVE{{\tt WEAVE}} +\def\WEB{{\tt WEB}} +\def\CWEB{{\mc CWEB}} +\def\PASCAL{Pascal} + + +\begin{document} + +\title{The \TIE{} Processor} +\author{Klaus Guntermann\\ +TH Darmstadt\\ +Fachbereich Informatik\\ +Institut f\"ur Theoretische Informatik} +\date{October 1989} + +\maketitle + + + +\section{Introduction} + +To install a program on a computer usually +system dependent changes are needed. +The systems of the \WEB{} family allows to describe these changes in a +so called change file. +To incorporate the changes into the program \TANGLE\ processes +the original source file and inserts the changes into the proper places. + +Sometimes it is good practice to develop a set of change files to be able to +distinguish between different changes like +program enhancements, bug fixes, system dependent changes +and output device dependent modifications. +Additionally this allows combinations of changes that can be used with a set of +programs that share some common features. + +The processors \TANGLE\ and \WEAVE\ can handle only one change file. +The combination of change files is done best in another preprocessing step. +\TIE\ is able to create either a new master file or a single change file that +comprises the effect of all change files. + +Since \TIE\ does not know anything about \WEB\ programs but only about the +structure of change files, it is possible to use this program for other +programming languages as well. +You just pretend that you want to create a new master file and \TIE\ will go +and insert all the changes from your change files. + + + +\section{Application} + +The current version of \TIE\ accepts a master file and up to 9 change files. +Because in general it is important to use the changes in their proper sequence +the order of the files must be chosen carefully. + +\TIE{} must be called with at least 4~parameters: +% +\begin{enumerate} + +\item either the option {\tt -c\/} or {\tt -m}. This option controls if +a change file or a master file is created. + +\item the name of the output file. + +\item the name of the master file. + +\item the name(s) of the change file(s). At least one must be present. + +\end{enumerate} + +The multiple change files are used as if the single change files were +merged into the master files step by step. Thus more than 9 change +files might be incorporated by repeated application of \TIE. Of +course you may change the constant {\it max\_file\_index\/} in \TIE{} +which defines the maximum number of change files, too. + +Please note that even when multiple change files are processed each of +the files is read only once. For each of the change files and for the +master file there is only one line in memory at a time (neglecting +operating system buffering). Thus the storage requirement of \TIE\ +does not depend on the size of the change files or the size of a +single changed section. + + +\newpage + + +\def\eof{$\langle${\mc EOF}$\rangle$} +\tabcolsep=1em + + +\section{Example} + +To illustrate the actions \TIE\ performs you may inspect the following +example that exercises some of the border line cases. + +\begin{center} +\begin{tabular}{llll} +\multicolumn1{c}{\sc Master}& + \multicolumn1{c}{\tt CF1}& + \multicolumn1{c}{\tt CF2}& + \multicolumn1{c}{\tt CF3}\\[1pt] +\hline +line 1 &@x &@x &@x\\ +line 2 &line 2 &line 1 &changed line 4\\ +line 3 &line 3 &changed line 2 &@y\\ +line 4 &@y &changed line 3 &final line 4\\ +line 5 &changed line 2 &inserted line &@z\\ +line 6 &changed line 3 &line 4 &\eof\\ +line 7 &inserted line &@y\\ +line 8 &@z &final line 2\\ +line 9 & &final line 3\\ +line 10 &@x &changed line 4\\ +\eof &line 7 &@z\\ + &@y\\ + &changed line 7 &@x\\ + &@z &changed line 7\\ + &\eof &line 8\\ + & &@y\\ + & &final line 7\\ + & &final line 8\\ + & &@z\\ + & &\eof\\ +\end{tabular} +\end{center} + + +\newpage + + +Using these input files and running \TIE\ twice to create a new master +file and a new change file will result in the following output files: + +\begin{center} +\begin{tabular}{ll} +\multicolumn1{c}{\sc Master}& + \multicolumn1{c}{\sc Change}\\[1pt] +\hline +final line 2 &@x\\ +final line 3 &line 1\\ +final line 4 &line 2\\ +line 5 &line 3\\ +line 6 &line 4\\ +final line 7 &@y\\ +final line 8 &final line 2\\ +line 9 &final line 3\\ +line 10 &final line 4\\ +\eof &@z\\ + &\\ + &@x\\ + &line 7\\ + &line 8\\ + &@y\\ + &final line 7\\ + &final line 8\\ + &@z\\ + &\eof\\ +\end{tabular} +\end{center} + + + +\end{document} |