1 |
%$Header$ |
2 |
|
3 |
\chapter{\cvctzerolongtitle{}} |
4 |
|
5 |
\label{cvct0} |
6 |
|
7 |
\beginchapterquote{``\ldots{} Beauty is the first test: there is no permanent |
8 |
place in the world for ugly mathematics.''} |
9 |
{G.H. Hardy \cite{bibref:b:mathematiciansapology:1940}, |
10 |
p.85} |
11 |
|
12 |
\section{Introduction} |
13 |
%Section Tag: INT |
14 |
This chapter documents the Tcl/Tk extensions present in IjuScripter and IjuConsole |
15 |
designed to allow a script to determine the version of IjuScripter or IjuConsole under |
16 |
which it is running. At present, there is only one such command, \emph{vcinfo}. |
17 |
|
18 |
|
19 |
\section{vcinfo} |
20 |
|
21 |
\begin{tclcommandname}{vcinfo}% |
22 |
retrieves embedded static version and version control information for IjuScripter or IjuConsole. |
23 |
This allows a script to determine which executable and which version it is |
24 |
running under. |
25 |
\end{tclcommandname} |
26 |
|
27 |
\begin{tclcommandsynopsis} |
28 |
\tclcommandsynopsisline{vcinfo}{-ijutoolsversion} |
29 |
\tclcommandsynopsisline{vcinfo}{?-crconly? -fileversion filename} |
30 |
\tclcommandsynopsisline{vcinfo}{?-crconly? -extensionversion extensionname} |
31 |
\tclcommandsynopsisline{vcinfo}{-buildmanifest} |
32 |
\end{tclcommandsynopsis} |
33 |
|
34 |
\begin{tclcommanddescription} |
35 |
The \emph{vcinfo} command returns information about the version of the |
36 |
IjuScripter or IjuConsole executable program, about the version of |
37 |
a specific source file, or [collectively] about the version of all files |
38 |
which [directly] contribute to the behavior of an embedded Tcl extension. |
39 |
This command can be used to interactively |
40 |
inquire about the version of the executable program or certain of its |
41 |
components. |
42 |
|
43 |
Most commonly, this command is used to help assure reproducibility |
44 |
of a script's behavior by coding a script so that it will |
45 |
run only under a specific version(s) of executable. |
46 |
|
47 |
\begin{tclcommandinternaldescription}{\tclcommanddescsynopsisline{vcinfo}{-ijutoolsversion}} |
48 |
Returns a string identifying the version number of the IjuScripter or IjuConsole |
49 |
executable. The string will be of the form ``vm.nx'', where \emph{v} is the letter |
50 |
``v'', \emph{m} is the major version number, \emph{n} is the minor version number, and |
51 |
\emph{x} is an optional lower-case letter identifying a service release which fixes defects |
52 |
but adds no new functionality. |
53 |
|
54 |
For example, a return value of ``v1.03'' would identify version 1.03. A return |
55 |
value of ``v1.03c'' would identify the third service release to version 1.03; with |
56 |
the service release designed to correct defects present in version 1.03b, but adding |
57 |
no new functionality. |
58 |
\end{tclcommandinternaldescription} |
59 |
|
60 |
\begin{tclcommandinternaldescription}{\tclcommanddescsynopsisline{vcinfo}{-fileversion filename}} |
61 |
(Not yet implemented.) Returns a string with version control information for the file |
62 |
\emph{filename}, which must be part of the IjuScripter or IjuConsole build. |
63 |
An error is generated if a \emph{filename} which is not part of the build |
64 |
is supplied. This form of the \emph{vcinfo} command is not normally used from a script. |
65 |
\end{tclcommandinternaldescription} |
66 |
|
67 |
\begin{tclcommandinternaldescription}{\tclcommanddescsynopsisline{vcinfo}{-crconly -fileversion filename}} |
68 |
(Not yet implemented.) Returns the CRC32 of the the string result of the command above. |
69 |
Note that the value returned is the CRC of the version control information embedded in the file |
70 |
rather than the CRC of the file. |
71 |
\emph{filename} must be part of the IjuScripter or IjuConsole build, and |
72 |
an error is generated if a \emph{filename} which is not part of the build is supplied. |
73 |
This form is |
74 |
useful because it supplies a terse result of eight hexadecimal digits which can easily |
75 |
establish with a probability of about $1-2^{-32}$ that two versions of IjuScripter or IjuConsole |
76 |
have the same file component; or establish with unity probability that they do not. |
77 |
\end{tclcommandinternaldescription} |
78 |
|
79 |
\begin{tclcommandinternaldescription}{\tclcommanddescsynopsisline{vcinfo}{-extensionversion extensionname}} |
80 |
(Not yet implemented.) Returns a string with version control information for all |
81 |
files which contribute directly to the behavior of the Tcl extension \emph{extensionname}, |
82 |
which must be part of the IjuScripter or IjuConsole static build. |
83 |
An error is generated if an \emph{extensionname} which is not part of the build |
84 |
is supplied. |
85 |
\end{tclcommandinternaldescription} |
86 |
|
87 |
\begin{tclcommandinternaldescription}{\tclcommanddescsynopsisline{vcinfo} |
88 |
{-crconly -extensionversion extensionname}} |
89 |
(Not yet implemented.) Returns the CRC32 of the the string result of the command above. |
90 |
Note that the value returned is the CRC of the version control information embedded in the file(s) |
91 |
rather than the CRC(s) of the file(s). |
92 |
\emph{extensionname} must be part of the IjuScripter or IjuConsole build, and |
93 |
an error is generated if an \emph{extensionname} which is not part of the build is supplied. |
94 |
This form is |
95 |
useful because it supplies a terse result of eight hexadecimal digits which can easily |
96 |
establish with a probability of about $1-2^{-32}$ that two versions of IjuScripter or IjuConsole |
97 |
have the same extension component; or establish with unity probability that they do not. |
98 |
\end{tclcommandinternaldescription} |
99 |
|
100 |
\begin{tclcommandinternaldescription}{\tclcommanddescsynopsisline{vcinfo}{-crconly -buildmanifest}} |
101 |
(Not yet implemented.) Returns the full combined build manifest of IjuScripter and IjuConsole. |
102 |
This includes size and CRC information for every file involved in the build. This form |
103 |
of \emph{vcinfo} is provided for assistance in defect diagnosis. |
104 |
\end{tclcommandinternaldescription} |
105 |
|
106 |
\end{tclcommanddescription} |
107 |
|
108 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
109 |
\noindent\begin{figure}[!b] |
110 |
\noindent\rule[-0.25in]{\textwidth}{1pt} |
111 |
\begin{tiny} |
112 |
\begin{verbatim} |
113 |
$HeadURL$ |
114 |
$Revision$ |
115 |
$Date$ |
116 |
$Author$ |
117 |
\end{verbatim} |
118 |
\end{tiny} |
119 |
\noindent\rule[0.25in]{\textwidth}{1pt} |
120 |
\end{figure} |
121 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
122 |
% |
123 |
%End of file C_VCT0.TEX |