This file is indexed.

/usr/share/doc/plplot-doc/html/tcl.html is in plplot-doc 5.9.9-2ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Using PLplot from Tcl</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="The PLplot Plotting Library"
HREF="index.html"><LINK
REL="UP"
TITLE=" Language Bindings "
HREF="part_bindings.html"><LINK
REL="PREVIOUS"
TITLE="Using PLplot from Python"
HREF="python.html"><LINK
REL="NEXT"
TITLE="Overview of the Tcl Language Binding"
HREF="tcl-overview.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="stylesheet.css"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The PLplot Plotting Library: Programmer's Reference Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="python.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="tcl-overview.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="tcl"
></A
>Chapter 15. Using PLplot from Tcl</H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="tcl.html#tcl-motivation"
>Motivation for the Tcl Interface to PLplot</A
></DT
><DT
><A
HREF="tcl-overview.html"
>Overview of the Tcl Language Binding</A
></DT
><DT
><A
HREF="tcl-extension.html"
>The PLplot Tcl Matrix Extension</A
></DT
><DT
><A
HREF="tcl-contouring.html"
>Contouring and Shading from Tcl</A
></DT
><DT
><A
HREF="tcl-understanding.html"
>Understanding the Performance Characteristics of Tcl</A
></DT
></DL
></DIV
><P
>&#13;    PLplot has historically had C and Fortran language bindings.  PLplot
    version 5.0 introduces a plethora of new programming options including
    C++ (described earlier) and several script language bindings.  The Tcl
    interface to PLplot (which the PLplot maintainers regard as the
    <SPAN
CLASS="QUOTE"
>"primary"</SPAN
> script language binding) is described in this chapter,
    with further discussion of Tcl related issues following in additional
    chapters.  But Tcl is certainly not the only script language option.
    Bindings to Perl, Python, and Scheme (which is actually another
    compiled language, but still has some of the flavor of a VHLL) are in
    various stages of completion, and are described in separate chapters.
    Use the one that suits you best--or try them all!
  </P
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="tcl-motivation"
>Motivation for the Tcl Interface to PLplot</A
></H1
><P
>&#13;      The recent emergence of several high quality VHLL script languages
      such as Tcl, Perl, Python and arguably even some Lisp variants, is
      having a profound effect upon the art of computer programming.  Tasks
      which have traditionally been handled by C or Fortran, are beginning
      to be seen in a new light.  With relatively fast processors now widely
      available, many programming jobs are no longer bound by execution
      time, but by <SPAN
CLASS="QUOTE"
>"human time"</SPAN
>.  Rapidity of initial development and
      continued maintenance, for a surprisingly wide class of applications,
      is far more important than execution time.  Result: in a very short
      period of time, say from 1993 to 1995, script languages have exploded
      onto the scene, becoming essential tools for any serious programmer.
    </P
><P
>&#13;      Moreover, the entire concept of <SPAN
CLASS="QUOTE"
>"speed of execution"</SPAN
> needs revising
      in the face of the gains made in computer hardware in recent years.
      Saying that script language processing is slower than compiled
      language processing may be undeniable and simultaneously irrelevant.
      If the script language processing is fast enough, then it is fast
      enough.  Increasingly, computational researchers are finding that
      script based tools are indeed fast enough.  And if their run time is
      fast enough, and their development and maintenance time is much much
      better, then why indeed should they not be used?
    </P
><P
>&#13;      Even in a field with several high visibility players, Tcl has
      distinguished itself as a leading contender.  There are many reasons
      for this, but perhaps the most important, at least as it relates to
      the PLplot user community, is that Tcl was designed to be extensible
      and embeddable.  The whole purpose of Tcl, as it name (Tool Command
      Language) indicates, is to be a command language for other tools.  In
      other words, the fact that Tcl is capable of being a standalone shell
      is interesting, even useful, but nonetheless incidental.  The real
      attraction of Tcl is that it can be the shell language for
      <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>your</I
></SPAN
>
      code.  Tcl can easily be embedded into your code, endowing it
      immediately with a full featured, consistent and well documented
      script programming language, providing all the core features you need
      in a programming language: variables, procedures, control structures,
      error trapping and recovery, tracing, etc.  But that is only the
      beginning!  After that, you can easily extend Tcl by adding commands
      to the core language, which invoke the capabilities of your tool.  It
      is in this sense that Tcl is a tool command language.  It is a command
      language which you can augment to provide access to the facilities of
      your tool.
    </P
><P
>&#13;      But Tcl is more than just an embeddable, extensible script language
      for personal use.  Tcl is an industry, an internet phenomenon.  There
      are currently at least two high quality books, with more on the way.
      There is an industry of service providers and educators.  Furthermore,
      literally hundreds of Tcl extensions exist, and are readily available
      over the net.  Perhaps the most notable extension, Tk, provides a
      fantastic interface to X Windows widget programming, permitting the
      construction of Motif like user interfaces, with none of the hassles
      of actually using Motif.  Some of these extensions endow Tcl with
      object oriented facilities philosophically similar to C++ or other
      object oriented languages.  Other extensions provide script level
      access to system services.  Others provide a script interface to
      sockets, RPC, and other network programming protocols.  The list goes
      on and on.  Dive into the Tcl archive, and see what it has for you!
    </P
><P
>&#13;      So, the answer to the question <SPAN
CLASS="QUOTE"
>"Why do we want a Tcl interface to
      PLplot?"</SPAN
> is very simple.  <SPAN
CLASS="QUOTE"
>"Because we we are using Tcl anyway, as
      the command language for our project, and would like to be able to do
      plotting in the command language just as we do so many other things."</SPAN
>
    </P
><P
>&#13;      But there is more than just the aesthetics of integration to consider.
      There are also significant pragmatic considerations.  If you generate
      your PLplot output via function calls from a compiled language, then
      in order to add new diagnostics to your code, or to refine or
      embellish existing ones, you have to edit the source, recompile,
      relink, and rerun the code.  If many iterations are required to get
      the plot right, significant time can be wasted.  This can be
      especially true in the case of C++ code making heavy use of templates,
      for which many C++ compilers will have program link times measured in
      minutes rather than seconds, even for trivial program changes.
    </P
><P
>&#13;      In contrast, if the diagnostic plot is generated from Tcl, the
      development cycle looks more like: start the shell (command line or
      windowing), source a Tcl script, issue the command to generate the
      plot, notice a bug, edit the Tcl script, resource the script, and
      regenerate the plot.   Notice that compiling, linking, and restarting
      the program, have all been dropped from the development cycle.  The
      time savings from such a development cycle can be amazing!
    </P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="python.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="tcl-overview.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using PLplot from Python</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="part_bindings.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Overview of the Tcl Language Binding</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>