Commit 418821fe authored by pknaggs's avatar pknaggs

Final 2012 release

parent 985e4f2f
# Default target simply complains
$PDFTEX = pdflatex
$TEX = latex
PDFTEX = pdflatex
TEX = latex
usage:
@echo "Usage: make [ dvi | ps | pdf | clean ]"
......
This diff is collapsed.
% !TeX root = forth.tex
\chapter{The optional Block word set} % 7
\wordlist{block}
......@@ -264,8 +266,7 @@ to provide all of the Block and Block Extensions word sets.
\see \xref[3.4 The Forth text interpreter]{usage:command}.
\end{worddef}
\pagebreak
\newpage
\begin{worddef}{2180}{SAVE-BUFFERS}
\item \stack{}{}
......
......@@ -6,14 +6,14 @@
%\inlinetrue % Inline Rationale/Implementation/Testing with glossary entry
\inlinefalse % Rationale/Implementation/Testing deferred to appropriate annex
%\showreftrue % Display Cross Reference lables (PDF/HTML targets)
\showreffalse % Hide lables
%\showreftrue % Display Cross Reference labels (PDF/HTML targets)
\showreffalse % Hide labels
\releasefalse % Draft document (with change markup)
%\releasetrue % Release Candidate document (without markup)
%\releasefalse % Draft document (with change markup)
\releasetrue % Release Candidate document (without markup)
\newcommand{\revision}{14.4} % Document Revision
\newcommand{\revision}{14.5} % Document Revision
\newcommand{\snapshot}{2012} % Year of Snapshot
\newcommand{\release}{3} % Release Candidate
\newcommand{\release}{} % Release Candidate
% ========== End Configuration ==========
\ No newline at end of file
......@@ -101,7 +101,7 @@ considerable success in the market place. This allowed them to identify
and document features common to these systems, many of which had not been
included in any previous standard.
This was the most comprehensive review of Forth systems to date, taking
eighty\place{ed14}{-}seven days covering twenty\place{ed14}{-}three meetings over eight years.
eighty-seven days covering twenty-three meetings over eight years.
The inclusive nature of the standard allowed the various factions within
the community to unify in support of ANS Forth, with many systems
providing a compatibility layer.
......@@ -215,23 +215,13 @@ Forth 94 declared seven words as `obsolescent', all but
\end{description}
\subsection[Separate Floating-point Stack is now Standard]{%
\replace{X:fp-stack}{Combined Floating-point/Data Stack Obsolescent}{%
\newline Separate Floating-point Stack is now Standard}
} % D.7.2
\subsection{Separate Floating-point Stack is now Standard} % D.7.2
\label{diff:fpstack}
\remove{X:fp-stack}{%
The requirement for floating-point numbers to be kept on the data stack
has been marked as obsolescent. This was previously an environmental
dependency/restriction.}
\place{X:fp-stack}{%
Previously systems could implement either a separate floating-point
stack or a combined floating-point/data stack; programs were required
to cater for both (or declare an environmental dependency on a particular
variant).
}
Previously systems could implement either a separate floating-point
stack or a combined floating-point/data stack; programs were required
to cater for both (or declare an environmental dependency on a
particular variant).
\begin{description}
\item[Words Affected:] ~\\
......@@ -253,14 +243,8 @@ dependency/restriction.}
Forth 94 programs (without environmental dependency, i.e., those
working on either kind of system) remain standard programs.
\remove{X:fp-stack}{%
Forth 94 systems that implement a separate floating-point stack
are now standard systems and no longer have an environmental
restriction on providing a floating-point stack.}
\place{X:fp-stack}{%
Forth 94 systems that implement a separate floating-point stack
continue to be standard systems.}
continue to be standard systems.
Forth 94 systems that implement a combined stack become systems
with an environmental restriction of not providing a separate
......@@ -277,7 +261,7 @@ dependency/restriction.}
\end{description}
\subsection[Using ENVIRONMENT? to inquire whether a word set is present]{Using \word{ENVIRONMENT?} to inquire whether a word set is present} % D.7.3
\subsection[Using ENVIRONMENT? to inquire whether a word set is present]{Using \word{ENVIRONMENTq} to inquire whether a word set is present} % D.7.3
\label{diff:environment}
With the advent of a new standard, it was necessary to review the
......@@ -296,7 +280,7 @@ mechanism, but rather to mark it as obsolescent.
\begin{description}
\item[Words Affected:] ~\\
\word{ENVIRONMENT?}
\word{ENVIRONMENTq}
\item[Reason:] ~\\
The use of the word-set query to inquire whether a word set is
......@@ -385,7 +369,7 @@ mechanism, but rather to mark it as obsolescent.
\item[Transition/Conversion:] ~\\
Existing programs are unaffected. Systems implementing the locals
\replace{ed14}{wordset}{ word set} have to be changed to support at least 16 (previously 8)
word set have to be changed to support at least 16 (previously 8)
locals.
\end{description}
......@@ -470,19 +454,16 @@ The following words have been added to \xref{wordlist:core-ext}:
\html{<br class="clear" />}
\pagebreak
\subsection[Block word sets]{\remove{ed14}{Block word sets}}
\remove{ed14}{No words have been added to \xref{wordlist:block}.}
%\stepcounter{subsection}
% Block word sets
\stepcounter{subsection}
\subsection{Double-Number word sets}
The following words have been added to \xref{wordlist:double-ext}:
\wref{double:2VALUE}{}
\subsection[Exception word sets]{\remove{ed14}{Exception word sets}}
\remove{ed14}{No words have been added to \xref{wordlist:exception}.}
%\stepcounter{subsection}
% Exception word sets
\stepcounter{subsection}
\subsection{Facility word sets}
The following words have been added to \xref{wordlist:facility-ext}:
......@@ -569,9 +550,8 @@ The following words have been added to \xref{wordlist:local-ext}:
\wref{local:b:}{}
\subsection[Memory-Allocation word sets]{\remove{ed14}{Memory-Allocation word sets}}
\remove{ed14}{No words have been added to \xref{wordlist:memory}.}
%\stepcounter{subsection}
% Memory-Allocation word sets
\stepcounter{subsection}
\subsection{Programming-Tools word sets}
\label{diff:12:tools}
......@@ -593,9 +573,8 @@ The following words have been added to the \xref{wordlist:tools-ext}:
\end{minipage}
\html{<br class="clear" />}
\subsection[Search-Order word sets]{\remove{ed14}{Search-Order word sets}}
\remove{ed14}{No words have been added to \xref{wordlist:search}.}
%\stepcounter{subsection}
% Search-Order word sets
\stepcounter{subsection}
\subsection{String word sets}
The following words have been added to the \xref{wordlist:string-ext}:
......
......@@ -171,7 +171,7 @@ combination of factors:
\item insufficient space in the dictionary;
\item \replace{ed14}{interpretating}{ interpreting} a word with undefined interpretation semantics;
\item interpreting a word with undefined interpretation semantics;
\item modifying the contents of the input buffer or a string literal
(\xref[Text-literal regions]{usage:"literal},
......@@ -270,27 +270,27 @@ glossary entries of the relevant words:
(\wref{core:num}{\num}, \wref{core:numS}{\num{}S},
\wref{core:HOLD}{HOLD},
\wref{core:HOLDS}{},
\wref{core:SIGN}{SIGN}).
\wref{core:SIGN}{SIGN});
\end{itemize}
% ==== X:Deferred ====
\begin{itemize}
\item access to a deferred word, a word defined by \wref{core:DEFER}{DEFER},
which has yet to be assigned to an \param{xt}.
which has yet to be assigned to an \param{xt};
\item access to a deferred word, a word defined by \wref{core:DEFER}{DEFER},
which was not defined by \wref{core:DEFER}{DEFER}.
which was not defined by \wref{core:DEFER}{DEFER};
\item \wref{core:POSTPONE}{POSTPONE}, \wref{core:[COMPILE]}{[COMPILE]},
\wref{core:[']}{[']} or \wref{core:'}{'} applied to \wref{core:ACTION-OF}{ACTION-OF}
or \wref{core:IS}{IS}.
or \wref{core:IS}{IS};
\end{itemize}
% ==== X: Escaped Strings ====
\begin{itemize}
\item \bs{x} is not followed by two hexadecimal characters (\wref{core:Seq}{}).
\item \bs{x} is not followed by two hexadecimal characters (\wref{core:Seq}{});
\item a \bs{} is placed before any character, other than those defined in
\wref{core:Seq}{}.
\end{itemize}
......
......@@ -663,8 +663,7 @@ Extensions word sets.
\end{testing}
\end{worddef}
\pagebreak
\newpage
\subsection{Double-Number extension words} % 8.6.2
\extended
......
......@@ -78,7 +78,7 @@ See: \xref[3.4.4 Possible actions on an ambiguous condition]{usage:ambiguous}.
\throwdef{-1}{\word{ABORT}}
\throwdef{-2}{\word{ABORTq}}
\throwdef{-3}{stack overflow}
\throwdef{-4}{\cbstart\uline{s}tack underflow\cbend}
\throwdef{-4}{stack underflow}
\throwdef{-5}{return stack overflow}
\throwdef{-6}{return stack underflow}
\throwdef{-7}{do-loops nested too deeply during execution}
......@@ -236,7 +236,7 @@ The phrase ``Requiring the Exception Extensions word set'' shall be
appended to the label of Standard Programs that require the system
to provide all of the Exception and Exception Extensions word sets.
\pagebreak
\newpage
\section{Glossary} % 9.6
\subsection{Exception words} % 9.6.1
......@@ -442,8 +442,7 @@ to provide all of the Exception and Exception Extensions word sets.
\end{testing}
\end{worddef}
\pagebreak
\newpage
\subsection{Exception extension words} % 9.6.2
\extended
......
......@@ -62,7 +62,7 @@ See: \xref[3.1.2 Character types]{usage:char}.
\begin{itemize}
\item \wref{facility:AT-XY}{AT-XY} operation can't be performed on
user output device.
user output device;
\item A \param{name} defined by
\wref{facility:BEGIN-STRUCTURE}{BEGIN-STRUCTURE}
......@@ -174,7 +174,6 @@ to provide all of the Facility and Facility Extensions word sets.
the application must use \word{KEYq} and \word[core]{KEY} only
when it wishes to discard non-character events until a valid
character is received.
\pagebreak
\end{rationale}
\end{worddef}
......@@ -400,7 +399,7 @@ to provide all of the Facility and Facility Extensions word sets.
\execute[name]
\stack{addr_1}{addr_2}
Add the \param{offset} calculated during the compile\place{ed14}{-}time action to
Add the \param{offset} calculated during the compile-time action to
\param{addr_1} giving the address \param{addr_2}.
\see \wref{facility:+FIELD}{+FIELD},
......@@ -475,7 +474,6 @@ to provide all of the Facility and Facility Extensions word sets.
% -------------------------------------------------------------------
\pagebreak
\begin{worddef}[EKEYtoFKEY]{1306}[40]{EKEY>FKEY}[e-key-to-f-key][X:ekeys]
\item \stack{x}{u flag}
......@@ -669,7 +667,6 @@ to provide all of the Facility and Facility Extensions word sets.
\end{worddef}
% -------------------------------------
\enlargethispage{2ex}
\begin{worddef}{1336}{END-STRUCTURE}[][X:structures]
\item \stack{struct-sys +n}{}
......@@ -687,8 +684,7 @@ to provide all of the Facility and Facility Extensions word sets.
\end{implement}
\end{worddef}
\pagebreak
\newpage
\begin{worddef}{1518}{FIELD:}[field-colon][X:structures]
\item \stack{n_1 "<spaces>name"}{n_2}
......@@ -702,7 +698,7 @@ to provide all of the Facility and Facility Extensions word sets.
\execute[name]
\stack{addr_1}{addr_2}
Add the \param{offset} calculated during the compile\place{ed14}{-}time action
Add the \param{offset} calculated during the compile-time action
to \param{addr_1} giving the address \param{addr_2}.
\see \wref{facility:+FIELD}{+FIELD},
......
......@@ -81,8 +81,7 @@ file names is implementation defined.
\subsection{Blocks in files} % 11.3.2
\label{file:blocks}
\remove{ed14}{If the File-Access word set is implemented, the Block word set
shall be implemented.} Blocks may, but need not, reside in files.
Blocks may, but need not, reside in files.
When they do:
\begin{itemize}
\item Block numbers may be mapped to one or more files by
......@@ -118,18 +117,12 @@ an environmental dependency. See:
\subsection{Other transient regions} % 11.3.5
\label{file:buffers}
\remove{X:interpret-escaped-s}{%
The list of words using memory in transient regions is extended to
include \wref{file:Sq}{S"}. See:} \xref[3.3.3.6 Other transient
regions]{usage:transient}.
\place{X:interpret-escaped-s}{%
The system provides transient buffers for \word{Sq} and \word{Seq}
strings. These buffers shall be no less than 80 characters in length, and
there shall be at least two buffers. The system should be able to store
two strings defined by sequential use of \word{Sq} or \word{Seq}.
RAM-limited systems may have environmental restrictions on the number
of buffers and their lifetimes.}
of buffers and their lifetimes.
\subsection{Parsing} % 11.3.6
\label{file:parsing}
......@@ -175,8 +168,8 @@ See: \xref[3.4.1 Parsing]{usage:parsing}.
\item maximum size of input line (\xref[11.3.6 Parsing]{file:parsing});
\item methods for mapping block ranges to files
(\xref[11.3.2 Blocks in files]{file:blocks});
\item number of string buffers provided (\replace{X:interpret-escape-s}{\wref{file:Sq}{S"}}{ \xref{file:buffers}});
\item size of string buffer used by \replace{X:interpret-escape-s}{\wref{file:Sq}{S"}}{ \xref{file:buffers}}.
\item number of string buffers provided (\xref{file:buffers});
\item size of string buffer used by \xref{file:buffers}.
\end{itemize}
\subsubsection{Ambiguous conditions} % 11.4.1.2
......@@ -194,19 +187,19 @@ See: \xref[3.4.1 Parsing]{usage:parsing}.
\item requesting an unmapped block number
(\xref[11.3.2 Blocks in files]{file:blocks});
\item using \wref{file:SOURCE-ID}{SOURCE-ID} when
\wref{block:BLK}{BLK} is not zero.
\wref{block:BLK}{BLK} is not zero;
% ==== X:Required ====
\item a file is required while it is being \word{REQUIRED}
(\ref{file:REQUIRED}) or \word{INCLUDED} (\ref{file:INCLUDED}).
(\ref{file:REQUIRED}) or \word{INCLUDED} (\ref{file:INCLUDED});
\item a marker is defined outside and executed inside a file or
vice versa, and the file is \word{REQUIRED}
(\ref{file:REQUIRED}) again.
(\ref{file:REQUIRED}) again;
\item the same file is required twice using different names
(e.g., through symbolic links), or different files with the
same name are provided to \wref{file:REQUIRED}{REQUIRED} (by doing
some renaming between the invocations of \word{REQUIRED}).
some renaming between the invocations of \word{REQUIRED});
\item the stack effect of including with
\wref{file:REQUIRED}{REQUIRED} the file is not \stack{i*x}{i*x}.
......@@ -268,7 +261,6 @@ provide all of the File Access and File Access Extensions word sets.
\subsection{File Access words} % 11.6.1
\enlargethispage{2ex}
\begin{worddef}[p]{0080}{(}[paren]
\item \stack{"ccc<paren>"}{}
......@@ -287,7 +279,6 @@ provide all of the File Access and File Access Extensions word sets.
\end{testing}
\end{worddef}
\enlargethispage{4ex}
\begin{worddef}{0765}{BIN}
\item \stack{fam_1}{fam_2}
......@@ -361,7 +352,7 @@ provide all of the File Access and File Access Extensions word sets.
\end{testing}
\end{worddef}
\vspace*{-1ex}
\begin{worddef}{1190}{DELETE-FILE}
\item \stack{c-addr u}{ior}
......@@ -376,7 +367,7 @@ provide all of the File Access and File Access Extensions word sets.
\end{testing}
\end{worddef}
\vspace*{-1ex}
\begin{worddef}{1520}{FILE-POSITION}
\item \stack{fileid}{ud ior}
......@@ -385,7 +376,7 @@ provide all of the File Access and File Access Extensions word sets.
result code. \param{ud} is undefined if \param{ior} is non-zero.
\end{worddef}
\vspace*{-1ex}
\begin{worddef}{1522}{FILE-SIZE}
\item \stack{fileid}{ud ior}
......@@ -423,7 +414,7 @@ provide all of the File Access and File Access Extensions word sets.
\end{testing}
\end{worddef}
\newpage
\begin{worddef}{1717}{INCLUDE-FILE}
\item \stack{i*x fileid}{j*x}
......@@ -662,7 +653,7 @@ provide all of the File Access and File Access Extensions word sets.
Implementations are allowed to store the line terminator in
the memory buffer in order to allow the use of line reading
functions provided by host operating systems, some of which
store the terminator. Without this provision, a \replace{ed14}{temporary}{transient}
store the terminator. Without this provision, a transient
buffer might be needed. The two-character limitation is
sufficient for the vast majority of existing operating
systems. Implementations on host operating systems whose line
......@@ -797,13 +788,7 @@ provide all of the File Access and File Access Extensions word sets.
\stack{"ccc<quote>"}{c-addr u}
Parse \param{ccc} delimited by \texttt{"} (double quote). Store
the resulting string \replace{X:interpret-escape-s}{%
\param{c-addr u} at a temporary location.
The maximum length of the temporary buffer is
implementation-dependent but shall be no less than 80 characters.
Subsequent uses of \word{Sq} may overwrite the temporary buffer.
At least one such buffer shall be provided.}{ in a transient buffer
\param{c-addr u}.}
the resulting string in a transient buffer \param{c-addr u}.
\compile
\stack{"ccc<quote>"}{}
......@@ -821,7 +806,7 @@ provide all of the File Access and File Access Extensions word sets.
\wref{core:Cq}{C"},
\wref{core:Sq}{S"},
\xref[11.3.5 Other transient regions]{file:buffers}, \\
\place{X:interpret-escape-s}{\wref{file:Seq}{},}
\wref{file:Seq}{},
\xref{rat:file:buffers},
\rref{file:Sq}{}.
......@@ -881,7 +866,7 @@ provide all of the File Access and File Access Extensions word sets.
\end{testing}
\end{worddef}
\pagebreak
\begin{worddef}{2425}{W/O}[w-o]
\item \stack{}{fam}
......@@ -950,7 +935,6 @@ provide all of the File Access and File Access Extensions word sets.
\end{worddef}
\pagebreak
\begin{worddef}{1560}{FLUSH-FILE}
\item \stack{fileid}{ior}
......@@ -1064,7 +1048,7 @@ provide all of the File Access and File Access Extensions word sets.
\end{testing}
\end{worddef}
\enlargethispage{2ex}
\begin{worddef}{2144}[50]{REQUIRED}[][X:required]
\item \stack{i*x c-addr u}{i*x}
......@@ -1180,33 +1164,27 @@ provide all of the File Access and File Access Extensions word sets.
\end{testing}
\end{worddef}
\begin{worddef*}[Seq]{2266}{S\bs{"}}[s-backslash-quote][X:interpret-escape-s]
\begin{worddef}[Seq]{2266}{S\bs{"}}[s-backslash-quote][X:interpret-escape-s]
\item
\uline{Extend the semantics of \wref{core:Seq}{} to be:}
Extend the semantics of \wref{core:Seq}{} to be:
\interpret \stack{\uline{"ccc<quote>"}}{\uline{c-addr u}}
\interpret \stack{"ccc<quote>"}{c-addr u}
\uline{%
Parse \param{ccc} delimited by \texttt{"} (double quote) according to the
translation rules given in \wref{core:Seq}{}. Store the resulting string in a
transient buffer \param{c-addr u}.
}
\compile \stack{\uline{"ccc<quote>"}}{}
\compile \stack{"ccc<quote>"}{}
\uline{%
Parse \param{ccc} delimited by \texttt{"} (double quote) according to the
translation rules given in \wref{core:Seq}{}. Append the run-time semantics
given below to the current definition.
}
\runtime \stack{}{\uline{c-addr u}}
\runtime \stack{}{c-addr u}
\uline{%
Return a string \param{c-addr u} describing the translation of \param{ccc}.
A program shall not alter the returned string.
}
\see \uline{\wref{core:Seq},} \xref[11.3.4 Transient String Buffers]{file:buffers},
\uline{\wref{file:Sq}{},} \xref[A.11.3.4 Transient String Buffers]{rat:file:buffers}.
\end{worddef*}
\see \wref{core:Seq}, \xref[11.3.4 Transient String Buffers]{file:buffers},
\wref{file:Sq}{}, \xref[A.11.3.4 Transient String Buffers]{rat:file:buffers}.
\end{worddef}
......@@ -59,8 +59,8 @@ Append table \ref{float:types} to table \ref{table:datatypes}.
\emph{Symbol} & \emph{Data type} & \emph{Size on stack} \\
\hline
\emph{df-addr} & double-float-aligned address & 1 cell \\
\emph{f-addr} & float-aligned address & 1 cell \\
\uline{\emph{r}}& \cbstart\uline{floating-point number}\cbend & \uline{implementation-defined} \\
\emph{f-addr} & float-aligned address & 1 cell \\
\emph{r} & floating-point number & implementation-defined \\
\emph{sf-addr} & single-float-aligned address & 1 cell \\
\hline\hline
\end{tabular}
......@@ -213,7 +213,7 @@ See:
\begin{itemize}
\item format and range of floating-point numbers
(\xref[12.3.1 Data types]{float:datatypes},
\wref{floating:REPRESENT}{REPRESENT})
\wref{floating:REPRESENT}{REPRESENT});
\item results of \wref{floating:REPRESENT}{REPRESENT} when
\emph{float} is out of range;
\item rounding or truncation of floating-point numbers
......@@ -267,7 +267,7 @@ See:
\item string larger than pictured-numeric output area
(\wref{floating:Fd}{F.},
\wref{floating:FEd}{FE.},
\wref{floating:FSd}{FS.}).
\wref{floating:FSd}{FS.});
\item \param{n} can't be precisely represented as
\emph{float} in \wref{floating:StoF}{S>F};
\item integer part of \emph{float} can't be represented
......@@ -293,7 +293,7 @@ See:
\begin{itemize}
\item requiring the floating-point stack to be larger than six items
(\xref[12.3.3 Floating-point stack]{float:stack}).
(\xref[12.3.3 Floating-point stack]{float:stack});
\item requiring floating-point numbers to be kept on the data stack,
with $n$ cells per floating point number.
\end{itemize}
......@@ -340,7 +340,6 @@ word sets.
\section{Glossary} % 12.6
\subsection{Floating-Point words} % 12.6.1
\enlargethispage{2ex}
\begin{worddef}[toFLOAT]{0558}{>FLOAT}[to-float]
\item \stack{c-addr u}{true | false}
......@@ -711,7 +710,6 @@ word sets.
\end{rationale}
\end{worddef}
\vspace*{-0.5ex}
\enlargethispage{6ex}
\begin{worddef}{2143}{REPRESENT}
\item \stack{c-addr u}{n flag_1 flag_2} \stack[F]{r}{} or
......@@ -815,8 +813,7 @@ word sets.
\end{worddef}
% ---------------------------------------------------------
\pagebreak
\newpage
\begin{worddef}{1207}[40]{DFFIELD:}[d-f-field-colon][X:structures]
\item \stack{n_1 "<spaces>name"}{n_2}
......@@ -831,7 +828,7 @@ word sets.
\execute[name]
\stack{addr_1}{addr_2}
Add the \param{offset} calculated during the compile\place{ed14}{-}time action to
Add the \param{offset} calculated during the compile-time action to
\param{addr_1} giving the address \param{addr_2}.
\see \wref{facility:+FIELD}{+FIELD},
......@@ -868,8 +865,7 @@ word sets.
\param{r_3}.
\end{worddef}
\enlargethispage{8ex}
\enlargethispage{4ex}
\begin{worddef}[Fd]{1427}{F.{}}[f-dot]
\item \stack{}{} \stack[F]{r}{} or
\stack{r}{}
......@@ -1199,8 +1195,7 @@ word sets.
\param{r_2} is the hyperbolic cosine of \param{r_1}.
\end{worddef}
\pagebreak
\newpage
\begin{worddef}[FEd]{1513}{FE.{}}[f-e-dot]
\item \stack{}{} \stack[F]{r}{} or
\stack{r}{}
......@@ -1298,7 +1293,7 @@ word sets.
\execute[name]
\stack{addr_1}{addr_2}
Add the \param{offset} calculated during the compile\place{ed14}{-}time action to
Add the \param{offset} calculated during the compile-time action to
\param{addr_1} giving the address \param{addr_2}.
\see \wref{facility:+FIELD}{+FIELD},
......@@ -1396,7 +1391,7 @@ word sets.
\see \rref{floating:FATAN2}{FATAN2}.
\end{worddef}
\vspace*{-2ex}
\begin{worddef}{1617}{FSINH}[f-cinch]
\item \stack[F]{r_1}{r_2} or
\stack{r_1}{r_2}
......@@ -1472,9 +1467,7 @@ word sets.
\end{worddef}
% ---------------------------------------------------------
\vspace*{-0.5ex}
\enlargethispage{10ex}
\enlargethispage{6ex}
\begin{worddef}{1628}{FVALUE}[f-value][X:fvalue]
\item \stack[F]{r}{} \stack{"<spaces>name"}{} or
\stack{r "<spaces>name"}{}
......@@ -1671,7 +1664,7 @@ word sets.
\execute[name]
\stack{addr_1}{addr_2}
Add the \param{offset} calculated during the compile\place{ed14}{-}time action to
Add the \param{offset} calculated during the compile-time action to
\param{addr_1} giving the address \param{addr_2}.
\see \wref{facility:+FIELD}{+FIELD},
......
......@@ -85,8 +85,8 @@
\makeatother
\ifrelease
\lhead[\leftmark]{Forth \snapshot{} RC\release}
\rhead[Forth \snapshot{} RC\release]{\leftmark}
\lhead[\leftmark]{Forth \snapshot{} \release}
\rhead[Forth \snapshot{} \release]{\leftmark}
\else
\lhead[\leftmark]{Forth 200\emph{x} / \docversion}
\rhead[Forth 200\emph{x} / \docversion]{\leftmark}
......@@ -922,7 +922,7 @@
\renewcommand{\worddeferparams}{%
{\ifnum\value{word@core}=\value{chapter}\thesection\else\thesubsection\fi}% Section (or sub-section) number
{\ifx\empty\word@num0\else\word@num\fi}% 2 Word number or \empty
{\word@sub}% 3 Word sub-number
{\ifx\empty\word@sub0\else\word@sub\fi}% 3 Word sub-number
{\word@list}% 4 The current word list
{\word@label}% 5 The label for the word
{\word@name}% 6 The LaTeX name for the word
......@@ -974,8 +974,8 @@
% where defined by \deferwordparams to be:
%
% #1 Section (or sub-section) number
% #2 Word number or \empty
% #3 Word sub-number
% #2 Word number or 0
% #3 Word sub-number or 0
% #4 The current word list
% #5 The label for the word
% #6 The LaTeX name for the word
......@@ -1017,7 +1017,7 @@
\hyperdef{\defer@space.#4}{#5}{%
\textbf{\rmfamily\thechapter.#1%
\ifnum#2=0\empty.\rule[.8ex]{2em}{.5pt}\else.#2\fi%
\ifx#3\empty\else.#3\fi
\ifnum#3=0\empty\else.#3\fi
\quad \hyperref{}{}{#4.#5}{\texttt{#6}}
}
} \\[-1.4\baselineskip]
......@@ -1049,10 +1049,7 @@
%
% Create a few variables, used by \label
%
\def\@currentlabel{\thechapter.#1%
\ifx#2\empty.0\else.#2\fi%
\ifx#3\empty\else .#3\fi
}
\def\@currentlabel{\thechapter.#1{}.#2{}\ifnum#3=0\else.#3\fi}
\edef\@currentlabelname{#6}
\def\@currentHref{\defer@space.#4.#5}
%
......
......@@ -61,7 +61,7 @@ language. With equivalent ease, one can also add new \emph{kinds} of
words. That is, one may create a word which itself will define
words. In creating such a defining word the programmer may specify
a specialized behavior for the words it will create which will be
effective at compile\placed{ed14}{-}time, at run-time, or both. This capability
effective at compile-time, at run-time, or both. This capability
allows one to define specialized data types, with complete control
over both structure and behavior. Since the run-time behavior of
such words may be defined either in high-level or in code, the words
......@@ -469,7 +469,7 @@ significant to the text interpreter than any other character that
may be used in a definition name.
Such a definition has two parts, as there are two ``behaviors''
associated with this new word \texttt{2ARRAY}, one at compile\placed{ed14}{-}time,
associated with this new word \texttt{2ARRAY}, one at compile-time,
and one at run or execute time. These are best understood if we look
at how \texttt{2ARRAY} is used to define its arrays, and then how the
array might be used in an application. In fact, this is how one would
......
......@@ -64,7 +64,7 @@ given here.
\impsection{search}{Search-Order} % I.16
\impsection{string}{String} % I.17
\section[The optional Extended-Character word set]{The optional Extended-Character \replace{ed14}{wordset}{ word set}} % I.18
\section{The optional Extended-Character word set} % I.18
\label{imp:xchar}
This reference implementation assumes the UTF-8 character encoding
......
% !TeX root = forth.tex
{\Large\bfseries\cbstart\patch{ed14}
\sout{American National Standard for Information Systems ---} \\[2pt]
\sout{Programming Language ---} \\[2pt]
Forth \uline{\snapshot{} Standard}
\cbend
}
{\Large\bfseries Forth \snapshot{} Standard}
\chapter{Introduction}
\label{chap:intro}
......@@ -74,12 +69,10 @@ Sections 3 and 4 contain the usage and documentation requirements,
respectively, for Standard Systems and Programs, while section 5
specifies their labeling.
\place{X:section-numbering}{%
Sections \emph{x}.1--\emph{x}.6 of each word set have the same
section numbering as sections 1--6 of the whole document to make
it easy to relate the sections to each other. This may lead to gaps in
section numbers if a particular section does not occur in a word set.
}
Sections \emph{x}.1--\emph{x}.6 of each word set have the same section
numbering as sections 1--6 of the whole document to make it easy to
relate the sections to each other. This may lead to gaps in section
numbers if a particular section does not occur in a word set.
\subsubsection{Glossary sections}
......@@ -113,7 +106,7 @@ of a system complies with the definitions documented in this
standard.
\fi
Annex \ref{annex:index} is an index of all \place{ed14}{Forth} words defined in this
Annex \ref{annex:index} is an index of all Forth words defined in this
standard.
\section{Future directions}
......@@ -136,20 +129,14 @@ as they may be withdrawn from future revisions of the standard.
This standard designates the following word as obsolescent:
\setwordlist{core}
\cbstart
\begin{tabular}{rl@{\qquad}rl@{\qquad}rl}
\ref{tools:FORGET} & \word[tools]{FORGET} \\
\uline{\ref{core:[COMPILE]}} & \uline{\word{[COMPILE]}} \\
\uline{\ref{local:LOCALS}} & \uline{