Add support for reading and writing SPV files.
[pspp] / doc / utilities.texi
1 @c PSPP - a program for statistical analysis.
2 @c Copyright (C) 2017 Free Software Foundation, Inc.
3 @c Permission is granted to copy, distribute and/or modify this document
4 @c under the terms of the GNU Free Documentation License, Version 1.3
5 @c or any later version published by the Free Software Foundation;
6 @c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
7 @c A copy of the license is included in the section entitled "GNU
8 @c Free Documentation License".
9 @c
10 @node Utilities
11 @chapter Utilities
12
13 Commands that don't fit any other category are placed here.
14
15 Most of these commands are not affected by commands like @cmd{IF} and
16 @cmd{LOOP}:
17 they take effect only once, unconditionally, at the time that they are
18 encountered in the input.
19
20 @menu
21 * ADD DOCUMENT::                Add documentary text to the active dataset.
22 * CACHE::                       Ignored for compatibility.
23 * CD::                          Change the current directory.
24 * COMMENT::                     Document your syntax file.
25 * DOCUMENT::                    Document the active dataset.
26 * DISPLAY DOCUMENTS::           Display active dataset documents.
27 * DISPLAY FILE LABEL::          Display the active dataset label.
28 * DROP DOCUMENTS::              Remove documents from the active dataset.
29 * ECHO::                        Write a string to the output stream.
30 * ERASE::                       Erase a file.
31 * EXECUTE::                     Execute pending transformations.
32 * FILE LABEL::                  Set the active dataset's label.
33 * FINISH::                      Terminate the @pspp{} session.
34 * HOST::                        Temporarily return to the operating system.
35 * INCLUDE::                     Include a file within the current one.
36 * INSERT::                      Insert a file within the current one.
37 * OUTPUT::                      Modify the appearance of the output.
38 * PERMISSIONS::                 Change permissions on a file.
39 * PRESERVE and RESTORE::        Saving settings and restoring them later.
40 * SET::                         Adjust @pspp{} runtime parameters.
41 * SHOW::                        Display runtime parameters.
42 * SUBTITLE::                    Provide a document subtitle.
43 * TITLE::                       Provide a document title.
44 @end menu
45
46 @node ADD DOCUMENT
47 @section ADD DOCUMENT
48 @vindex  ADD DOCUMENT
49
50 @display
51 ADD DOCUMENT 
52     'line one' 'line two' @dots{} 'last line' .
53 @end display
54
55
56 @cmd{ADD DOCUMENT} adds one or more lines of descriptive commentary to 
57 the active dataset.  Documents added in this way are saved to system files.
58 They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
59 DOCUMENTS}.  They can be removed from the active dataset with @cmd{DROP
60 DOCUMENTS}.
61
62 Each line of documentary text must be enclosed in quotation marks, and 
63 may not be more than 80 bytes long. @xref{DOCUMENT}.
64
65 @node CACHE
66 @section CACHE
67 @vindex CACHE
68
69 @display
70 CACHE.
71 @end display
72
73 This command is accepted, for compatibility, but it has no effect.
74
75 @node CD
76 @section CD
77 @vindex CD
78 @cindex directory
79 @cindex changing directory
80
81 @display
82 CD 'new directory' .
83 @end display 
84
85 @cmd{CD} changes the current directory.  The new directory will become that specified by the command.
86
87 @node COMMENT
88 @section COMMENT
89 @vindex COMMENT
90 @vindex *
91
92 @display 
93 Two possibles syntaxes:
94         COMMENT comment text @dots{} .
95         *comment text @dots{} .
96 @end display
97
98 @cmd{COMMENT} is ignored.  It is used to provide information to
99 the author and other readers of the @pspp{} syntax file.  
100
101 @cmd{COMMENT} can extend over any number of lines.  Don't forget to
102 terminate it with a dot or a blank line.
103
104
105
106 @node DOCUMENT
107 @section DOCUMENT
108 @vindex DOCUMENT
109
110 @display
111 DOCUMENT @var{documentary_text}.
112 @end display
113
114 @cmd{DOCUMENT} adds one or more lines of descriptive commentary to the
115 active dataset.  Documents added in this way are saved to system files.
116 They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
117 DOCUMENTS}.  They can be removed from the active dataset with @cmd{DROP
118 DOCUMENTS}.
119
120 Specify the @var{documentary text} following the @subcmd{DOCUMENT} keyword.  
121 It is interpreted literally --- any quotes or other punctuation marks 
122 will be included in the file.
123 You can extend the documentary text over as many lines as necessary.  
124 Lines are truncated at 80 bytes.  Don't forget to terminate
125 the command with a dot or a blank line. @xref{ADD DOCUMENT}.
126
127 @node DISPLAY DOCUMENTS
128 @section DISPLAY DOCUMENTS
129 @vindex DISPLAY DOCUMENTS
130
131 @display
132 DISPLAY DOCUMENTS.
133 @end display
134
135 @cmd{DISPLAY DOCUMENTS} displays the documents in the active dataset.  Each
136 document is preceded by a line giving the time and date that it was
137 added.  @xref{DOCUMENT}.
138
139 @node DISPLAY FILE LABEL
140 @section DISPLAY FILE LABEL
141 @vindex DISPLAY FILE LABEL
142
143 @display
144 DISPLAY FILE LABEL.
145 @end display
146
147 @cmd{DISPLAY FILE LABEL} displays the file label contained in the
148 active dataset,
149 if any.  @xref{FILE LABEL}.
150
151 This command is a @pspp{} extension.
152
153 @node DROP DOCUMENTS
154 @section DROP DOCUMENTS
155 @vindex DROP DOCUMENTS
156
157 @display
158 DROP DOCUMENTS.
159 @end display
160
161 @cmd{DROP DOCUMENTS} removes all documents from the active dataset.
162 New documents can be added with @cmd{DOCUMENT} (@pxref{DOCUMENT}).
163
164 @cmd{DROP DOCUMENTS} changes only the active dataset.  It does not modify any
165 system files stored on disk.
166
167 @node ECHO
168 @section ECHO
169 @vindex ECHO
170
171 @display 
172 ECHO 'arbitrary text' .
173 @end display
174
175 Use @cmd{ECHO} to write arbitrary text to the output stream. The text should be enclosed in quotation marks following the normal rules for string tokens (@pxref{Tokens}).
176
177 @node ERASE
178 @section ERASE
179 @vindex ERASE
180
181 @display
182 ERASE FILE @var{file_name}.
183 @end display
184
185 @cmd{ERASE FILE} deletes a file from the local filesystem.
186 @var{file_name} must be quoted.
187 This command cannot be used if the SAFER (@pxref{SET}) setting is active.
188
189
190 @node EXECUTE
191 @section EXECUTE
192 @vindex EXECUTE
193
194 @display
195 EXECUTE.
196 @end display
197
198 @cmd{EXECUTE} causes the active dataset to be read and all pending
199 transformations to be executed.
200
201 @node FILE LABEL
202 @section FILE LABEL
203 @vindex FILE LABEL
204
205 @display
206 FILE LABEL @var{file_label}.
207 @end display
208
209 @cmd{FILE LABEL} provides a title for the active dataset.  This
210 title will be saved into system files and portable files that are
211 created during this @pspp{} run.
212
213 @var{file_label} should not be quoted.
214 If quotes are included, they are literally interpreted and become part of the file label.
215
216 @node FINISH
217 @section FINISH
218 @vindex FINISH
219
220 @display
221 FINISH.
222 @end display
223
224 @cmd{FINISH} terminates the current @pspp{} session and returns
225 control to the operating system.
226
227 @node HOST
228 @section HOST
229 @vindex HOST
230
231 @display
232 HOST.
233 HOST COMMAND=['@var{command}'...].
234 @end display
235
236 @cmd{HOST} suspends the current @pspp{} session and temporarily returns control 
237 to the operating system.
238 This command cannot be used if the SAFER (@pxref{SET}) setting is active.
239
240 If the @subcmd{COMMAND} subcommand is specified, as a sequence of shell
241 commands as quoted strings within square brackets, then @pspp{} executes
242 them together in a single subshell.
243
244 If no subcommands are specified, then @pspp{} invokes an interactive
245 subshell.
246
247 @node INCLUDE
248 @section INCLUDE
249 @vindex INCLUDE
250
251 @display
252         INCLUDE [FILE=]'@var{file_name}' [ENCODING='@var{encoding}'].
253 @end display
254
255 @cmd{INCLUDE} causes the @pspp{} command processor to read an
256 additional command file as if it were included bodily in the current
257 command file.
258 If errors are encountered in the included file, then command processing will 
259 stop and no more commands will be processed.
260 Include files may be nested to any depth, up to the limit of available
261 memory.
262
263 The @cmd{INSERT} command (@pxref{INSERT}) is a more flexible
264 alternative to @cmd{INCLUDE}.  An @cmd{INCLUDE} command acts the same as
265 @cmd{INSERT} with @subcmd{ERROR=STOP CD=NO SYNTAX=BATCH} specified.
266
267 The optional @subcmd{ENCODING} subcommand has the same meaning as with @cmd{INSERT}.
268
269 @node INSERT
270 @section INSERT
271 @vindex INSERT
272
273 @display
274      INSERT [FILE=]'@var{file_name}'
275         [CD=@{NO,YES@}]
276         [ERROR=@{CONTINUE,STOP@}]
277         [SYNTAX=@{BATCH,INTERACTIVE@}]
278         [ENCODING=@{LOCALE, '@var{charset_name}'@}].
279 @end display
280
281 @cmd{INSERT} is similar to @cmd{INCLUDE} (@pxref{INCLUDE}) 
282 but somewhat more flexible.
283 It causes the command processor to read a file as if it were embedded in the 
284 current command file.
285
286 If @subcmd{CD=YES} is specified, then before including the file, the
287 current directory  will be changed to the directory of the included
288 file.  
289 The default setting is @samp{CD=NO}.
290 Note that this directory will remain current until it is
291 changed explicitly (with the @cmd{CD} command, or a subsequent
292 @cmd{INSERT} command with the @samp{CD=YES} option).
293 It will not revert to its original setting even after the included
294 file is finished processing.
295
296 If @subcmd{ERROR=STOP} is specified, errors encountered in the
297 inserted file will cause processing to immediately cease.
298 Otherwise processing will continue at the next command.
299 The default setting is @subcmd{ERROR=CONTINUE}.
300
301 If @subcmd{SYNTAX=INTERACTIVE} is specified then the syntax contained in
302 the included file must conform to interactive syntax
303 conventions. @xref{Syntax Variants}.
304 The default setting is @subcmd{SYNTAX=BATCH}.
305
306 @subcmd{ENCODING} optionally specifies the character set used by the included
307 file.  Its argument, which is not case-sensitive, must be in one of
308 the following forms:
309
310 @table @asis
311 @item @subcmd{LOCALE}
312 The encoding used by the system locale, or as overridden by the 
313 @cmd{SET} command (@pxref{SET}).  On GNU/Linux and other Unix-like systems,
314 environment variables, e.g.@: @env{LANG} or @env{LC_ALL}, determine the
315 system locale.
316
317 @item @var{charset_name}
318 One of the character set names listed by @acronym{IANA} at
319 @uref{http://www.iana.org/assignments/character-sets}.  Some examples
320 are @code{ASCII} (United States), @code{ISO-8859-1} (western Europe),
321 @code{EUC-JP} (Japan), and @code{windows-1252} (Windows).  Not all
322 systems support all character sets.
323
324 @item @code{Auto,@var{encoding}}
325 Automatically detects whether a syntax file is encoded in an Unicode
326 encoding such as UTF-8, UTF-16, or UTF-32.  If it is not, then @pspp{}
327 generally assumes that the file is encoded in @var{encoding} (an @acronym{IANA}
328 character set name).  However, if @var{encoding} is UTF-8, and the
329 syntax file is not valid UTF-8, @pspp{} instead assumes that the file
330 is encoded in @code{windows-1252}.
331
332 For best results, @var{encoding} should be an @acronym{ASCII}-compatible
333 encoding (the most common locale encodings are all @acronym{ASCII}-compatible),
334 because encodings that are not @acronym{ASCII} compatible cannot be
335 automatically distinguished from UTF-8.
336
337 @item @code{Auto}
338 @item @code{Auto,Locale}
339 Automatic detection, as above, with the default encoding taken from
340 the system locale or the setting on @subcmd{SET LOCALE}.
341 @end table
342
343 When ENCODING is not specified, the default is taken from the
344 @option{--syntax-encoding} command option, if it was specified, and
345 otherwise it is @code{Auto}.
346
347 @node OUTPUT
348 @section OUTPUT
349 @vindex OUTPUT
350 @cindex precision, of output
351 @cindex decimal places
352
353 @display
354 OUTPUT MODIFY
355        /SELECT TABLES
356        /TABLECELLS SELECT = [ @var{class}... ]
357                    FORMAT = @var{fmt_spec}.
358 @end display
359 @note{In the above synopsis the characters @samp{[} and @samp{]} are literals.
360 They must appear in the syntax to be interpreted.}
361
362 @cmd{OUTPUT} changes the appearance of the tables in which results are printed.
363 In particular, it can be used to set the format and precision to which results are displayed.
364
365 After running this command, the default table appearance parameters will have been modified and  each 
366 new output table generated will use the new parameters.
367
368 Following @code{/TABLECELLS SELECT =} a list of cell classes must appear, enclosed in square
369 brackets.  This list determines the classes of values should be selected for modification.
370 Each class can be:
371
372 @table @asis
373 @item RESIDUAL
374 Residual values.  Default: @t{F40.2}.
375
376 @item CORRELATION
377 Correlations.  Default: @t{F40.3}.
378
379 @item PERCENT
380 Percentages.  Default: @t{PCT40.1}.
381
382 @item SIGNIFICANCE
383 Significance of tests (p-values).  Default: @t{F40.3}.
384
385 @item COUNT
386 Counts or sums of weights.  For a weighted data set, the default is
387 the weight variable's print format.  For an unweighted data set, the
388 default is F40.0.
389 @end table
390
391 For most other numeric values that appear in tables, @code{SET FORMAT}
392 may be used to specify the format (@pxref{SET FORMAT}).
393
394 The value of @var{fmt_spec} must be a valid output format (@pxref{Input and Output Formats}).
395 Note that not all possible formats are meaningful for all classes.
396
397 @node PERMISSIONS
398 @section PERMISSIONS
399 @vindex PERMISSIONS
400 @cindex mode
401 @cindex file mode
402 @cindex changing file permissions
403
404 @display
405 PERMISSIONS
406         FILE='@var{file_name}'
407         /PERMISSIONS = @{READONLY,WRITEABLE@}.
408 @end display
409
410 @cmd{PERMISSIONS} changes the permissions of a file.  
411 There is one mandatory subcommand which specifies the permissions to
412 which the file should be changed.  
413 If you set a file's  permission  to @subcmd{READONLY}, then the file will become
414 unwritable either by you or anyone else on the system.
415 If you set the permission to @subcmd{WRITEABLE}, then the file will become
416 writeable by you; the permissions afforded to others will be
417 unchanged.
418 This command cannot be used if the @subcmd{SAFER} (@pxref{SET}) setting is active.
419
420
421 @node PRESERVE and RESTORE
422 @section PRESERVE and RESTORE
423 @vindex PRESERVE
424 @vindex RESTORE
425
426 @display
427 PRESERVE.
428 @dots{}
429 RESTORE.
430 @end display
431
432 @cmd{PRESERVE} saves all of the settings that @cmd{SET} (@pxref{SET})
433 can adjust.  A later @cmd{RESTORE} command restores those settings.
434
435 @cmd{PRESERVE} can be nested up to five levels deep.
436
437 @node SET
438 @section SET
439 @vindex SET
440
441 @display
442 SET
443
444 (data input)
445         /BLANKS=@{SYSMIS,'.',number@}
446         /DECIMAL=@{DOT,COMMA@}
447         /FORMAT=@var{fmt_spec}
448         /EPOCH=@{AUTOMATIC,@var{year}@}
449         /RIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
450         /RRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
451
452 (interaction)
453         /MXERRS=@var{max_errs}
454         /MXWARNS=@var{max_warnings}
455         /WORKSPACE=@var{workspace_size}
456
457 (syntax execution)
458         /LOCALE='@var{locale}'
459         /MEXPAND=@{ON,OFF@}
460         /MITERATE=@var{max_iterations}
461         /MNEST=@var{max_nest}
462         /MPRINT=@{ON,OFF@}
463         /MXLOOPS=@var{max_loops}
464         /SEED=@{RANDOM,@var{seed_value}@}
465         /UNDEFINED=@{WARN,NOWARN@}
466         /FUZZBITS=@var{fuzzbits}
467
468 (data output)
469         /CC@{A,B,C,D,E@}=@{'@var{npre},@var{pre},@var{suf},@var{nsuf}','@var{npre}.@var{pre}.@var{suf}.@var{nsuf}'@}
470         /DECIMAL=@{DOT,COMMA@}
471         /FORMAT=@var{fmt_spec}
472         /WIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
473         /WRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
474
475 (output routing)
476         /ERRORS=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
477         /MESSAGES=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
478         /PRINTBACK=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
479         /RESULTS=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
480
481 (output driver options)
482         /HEADERS=@{NO,YES,BLANK@}
483         /LENGTH=@{NONE,@var{n_lines}@}
484         /MORE=@{ON,OFF@}
485         /WIDTH=@{NARROW,WIDTH,@var{n_characters}@}
486         /TNUMBERS=@{VALUES,LABELS,BOTH@}
487         /TVARS=@{NAMES,LABELS,BOTH@}
488
489 (logging)
490         /JOURNAL=@{ON,OFF@} ['@var{file_name}']
491
492 (system files)
493         /COMPRESSION=@{ON,OFF@}
494         /SCOMPRESSION=@{ON,OFF@}
495
496 (miscellaneous)
497         /SAFER=ON
498         /LOCALE='@var{string}'
499
500
501 (obsolete settings accepted for compatibility, but ignored)
502         /BOXSTRING=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
503         /CASE=@{UPPER,UPLOW@}
504         /CPI=cpi_value
505         /HIGHRES=@{ON,OFF@}
506         /HISTOGRAM='@var{c}'
507         /LOWRES=@{AUTO,ON,OFF@}
508         /LPI=@var{lpi_value}
509         /MENUS=@{STANDARD,EXTENDED@}
510         /MXMEMORY=@var{max_memory}
511         /SCRIPTTAB='c'
512         /TB1=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
513         /TBFONTS='@var{string}'
514         /XSORT=@{YES,NO@}
515 @end display
516
517 @cmd{SET} allows the user to adjust several parameters relating to
518 @pspp{}'s execution.  Since there are many subcommands to this command, its
519 subcommands will be examined in groups.
520
521 For subcommands that take boolean values, @subcmd{ON} and @subcmd{YES} are synonymous, 
522 as are @subcmd{OFF} and @subcmd{NO}, when used as subcommand values.
523
524 The data input subcommands affect the way that data is read from data
525 files.  The data input subcommands are
526
527 @table @asis
528 @item BLANKS
529 @anchor{SET BLANKS}
530 This is the value assigned to an item data item that is empty or
531 contains only white space.  An argument of SYSMIS or '.' will cause the
532 system-missing value to be assigned to null items.  This is the
533 default.  Any real value may be assigned.
534
535 @item DECIMAL
536 @anchor{SET DECIMAL}
537 This value may be set to @subcmd{DOT} or @subcmd{COMMA}.
538 Setting it to @subcmd{DOT} causes the decimal point character to be
539 @samp{.} and the grouping character to be @samp{,}.
540 Setting it to @subcmd{COMMA}
541 causes the decimal point character to be @samp{,} and the grouping
542 character to be @samp{.}.
543 If the setting is @subcmd{COMMA}, then @samp{,} will not be treated
544 as a field separator in the @cmd{DATA LIST} command (@pxref{DATA LIST}).
545 The default value is determined from the system locale.
546
547 @item FORMAT
548 @anchor{SET FORMAT}
549 Allows the default numeric input/output format to be specified.  The
550 default is F8.2.  @xref{Input and Output Formats}.
551
552 @item EPOCH
553 @anchor{SET EPOCH}
554 Specifies the range of years used when a 2-digit year is read from a
555 data file or used in a date construction expression (@pxref{Date
556 Construction}).  If a 4-digit year is specified for the epoch, then
557 2-digit years are interpreted starting from that year, known as the
558 epoch.  If @subcmd{AUTOMATIC} (the default) is specified, then the epoch begins
559 69 years before the current date.
560
561 @item RIB
562 @anchor{SET RIB} 
563
564 @pspp{} extension to set the byte ordering (endianness) used for reading
565 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
566 Formats}).  In @subcmd{MSBFIRST} ordering, the most-significant byte appears at
567 the left end of a IB or PIB field.  In @subcmd{LSBFIRST} ordering, the
568 least-significant byte appears at the left end.  @subcmd{VAX} ordering is like
569 @subcmd{MSBFIRST}, except that each pair of bytes is in reverse order.  @subcmd{NATIVE},
570 the default, is equivalent to @subcmd{MSBFIRST} or @subcmd{LSBFIRST} depending on the
571 native format of the machine running @pspp{}.
572
573 @item RRB
574 @anchor{SET RRB}
575
576 @pspp{} extension to set the floating-point format used for reading data in
577 RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The
578 possibilities are:
579
580 @table @asis
581 @item NATIVE
582 The native format of the machine running @pspp{}.  Equivalent to either IDL
583 or IDB.
584
585 @item ISL
586 32-bit IEEE 754 single-precision floating point, in little-endian byte
587 order.
588
589 @item ISB
590 32-bit IEEE 754 single-precision floating point, in big-endian byte
591 order.
592
593 @item IDL
594 64-bit IEEE 754 double-precision floating point, in little-endian byte
595 order.
596
597 @item IDB
598 64-bit IEEE 754 double-precision floating point, in big-endian byte
599 order.
600
601 @item VF
602 32-bit VAX F format, in VAX-endian byte order.
603
604 @item VD
605 64-bit VAX D format, in VAX-endian byte order.
606
607 @item VG
608 64-bit VAX G format, in VAX-endian byte order.
609
610 @item ZS
611 32-bit IBM Z architecture short format hexadecimal floating point, in
612 big-endian byte order.  
613
614 @item ZL
615 64-bit IBM Z architecture long format hexadecimal floating point, in
616 big-endian byte order.
617
618 Z architecture also supports IEEE 754 floating point.  The ZS and ZL
619 formats are only for use with very old input files.
620 @end table
621 The default is NATIVE.
622 @end table
623
624 Interaction subcommands affect the way that @pspp{} interacts with an
625 online user.  The interaction subcommands are
626
627 @table @asis
628 @item MXERRS
629 The maximum number of errors before @pspp{} halts processing of the current
630 command file.  The default is 50.
631
632 @item MXWARNS
633 The maximum number of warnings + errors before @pspp{} halts processing the
634 current command file.  
635 The special value of zero means that all warning situations should be ignored.
636 No warnings will be issued, except a single initial warning advising the user
637 that warnings will not be given.
638 The default value is 100.
639 @end table
640
641 Syntax execution subcommands control the way that @pspp{} commands
642 execute.  The syntax execution subcommands are
643
644 @table @asis
645 @item LOCALE
646 Overrides the system locale for the purpose of reading and writing
647 syntax and data files.  The argument should be a locale name in the
648 general form @code{@var{language}_@var{country}.@var{encoding}}, where @var{language}
649 and @var{country} are 2-character language and country abbreviations,
650 respectively, and @var{encoding} is an @acronym{IANA} character set name.
651 Example locales are @code{en_US.UTF-8} (UTF-8 encoded English as
652 spoken in the United States) and @code{ja_JP.EUC-JP} (EUC-JP encoded
653 Japanese as spoken in Japan).
654
655 @item MEXPAND
656 @itemx MITERATE
657 @itemx MNEST
658 @itemx MPRINT
659 Currently not used.
660
661 @item MXLOOPS
662 The maximum number of iterations for an uncontrolled loop (@pxref{LOOP}).
663 The default @var{max_loops} is 40.
664
665 @item SEED
666 The initial pseudo-random number seed.  Set to a real number or to
667 RANDOM, which will obtain an initial seed from the current time of day.
668
669 @item UNDEFINED
670 Currently not used.
671
672 @item FUZZBITS
673 @anchor{SET FUZZBITS}
674 The maximum number of bits of errors in the least-significant places
675 to accept for rounding up a value that is almost halfway between two
676 possibilities for rounding with the RND operator (@pxref{Miscellaneous
677 Mathematics}).  The default @var{fuzzbits} is 6.
678
679 @item WORKSPACE
680 The maximum amount of memory (in kilobytes) that @pspp{} will use to store data being processed.
681 If memory in excess of the workspace size is required, then @pspp{} will start
682 to use temporary files to store the data.
683 Setting a higher value will, in general, mean procedures will run faster, 
684 but may cause other applications to run slower.
685 On platforms without virtual memory management, setting a very large workspace
686 may cause @pspp{} to abort.
687 @cindex workspace
688 @cindex memory, amount used to store cases
689 @end table
690
691 Data output subcommands affect the format of output data.  These
692 subcommands are
693
694 @table @asis
695 @item CCA
696 @itemx CCB
697 @itemx CCC
698 @itemx CCD
699 @itemx CCE
700 @anchor{CCx Settings}
701
702 Set up custom currency formats.  @xref{Custom Currency Formats}, for
703 details.
704
705 @item DECIMAL
706 The default @subcmd{DOT} setting causes the decimal point character to be
707 @samp{.}.  A setting of @subcmd{COMMA} causes the decimal point character to be
708 @samp{,}.
709
710 @item FORMAT
711 Allows the default numeric input/output format to be specified.  The
712 default is F8.2.  @xref{Input and Output Formats}.
713
714 @item WIB
715 @anchor{SET WIB} 
716
717 @pspp{} extension to set the byte ordering (endianness) used for writing
718 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
719 Formats}).  In @subcmd{MSBFIRST} ordering, the most-significant byte appears at
720 the left end of a IB or PIB field.  In @subcmd{LSBFIRST} ordering, the
721 least-significant byte appears at the left end.  @subcmd{VAX} ordering is like
722 @subcmd{MSBFIRST}, except that each pair of bytes is in reverse order.  @subcmd{NATIVE},
723 the default, is equivalent to @subcmd{MSBFIRST} or @subcmd{LSBFIRST} depending on the
724 native format of the machine running @pspp{}.
725
726 @item WRB
727 @anchor{SET WRB}
728
729 @pspp{} extension to set the floating-point format used for writing data in
730 RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The choices
731 are the same as @subcmd{SET RIB}.  The default is @subcmd{NATIVE}.
732 @end table
733
734 In the @pspp{} text-based interface, the output routing subcommands
735 affect where output is sent.  The following values are allowed for
736 each of these subcommands:
737
738 @table @asis
739 @item OFF
740 @item NONE
741 Discard this kind of output.
742
743 @item TERMINAL
744 Write this output to the terminal, but not to listing files and other
745 output devices.
746
747 @item LISTING
748 Write this output to listing files and other output devices, but not
749 to the terminal.
750
751 @item ON
752 @itemx BOTH
753 Write this type of output to all output devices.
754 @end table
755
756 These output routing subcommands are:
757
758 @table @asis
759 @item ERRORS
760 Applies to error and warning messages.  The default is @subcmd{BOTH}.
761
762 @item MESSAGES
763 Applies to notes.  The default is @subcmd{BOTH}.
764
765 @item PRINTBACK
766 Determines whether the syntax used for input is printed back as part
767 of the output.  The default is @subcmd{NONE}.
768
769 @item RESULTS
770 Applies to everything not in one of the above categories, such as the
771 results of statistical procedures.  The default is @subcmd{BOTH}.
772 @end table
773
774 These subcommands have no effect on output in the @pspp{} GUI
775 environment.
776
777 Output driver option subcommands affect output drivers' settings.  These
778 subcommands are
779
780 @table @asis
781 @item HEADERS
782 @itemx LENGTH
783 @itemx MORE
784 @itemx WIDTH
785 @itemx TNUMBERS
786 The @subcmd{TNUMBERS} option sets the way in which values are displayed in output tables.
787 The valid settings are @subcmd{VALUES}, @subcmd{LABELS} and @subcmd{BOTH}.
788 If @subcmd{TNUMBERS} is set to @subcmd{VALUES}, then all values are displayed with their literal value 
789 (which for a numeric value is a number and for a string value an alphanumeric string).
790 If @subcmd{TNUMBERS} is set to @subcmd{LABELS}, then values are displayed using their assigned labels if any.
791 (@xref{VALUE LABELS}.)
792 If the a value has no label, then it will be displayed using its literal value.
793 If @subcmd{TNUMBERS} is set to @subcmd{BOTH}, then values will be displayed with both their label
794 (if any) and their literal value in parentheses.
795 @item TVARS
796 The @subcmd{TVARS} option sets the way in which variables are displayed in output tables.
797 The valid settings are @subcmd{NAMES}, @subcmd{LABELS} and @subcmd{BOTH}.
798 If @subcmd{TVARS} is set to @subcmd{NAMES}, then all variables are displayed using their names.
799 If @subcmd{TVARS} is set to @subcmd{LABELS}, then variables are displayed using their label if one
800 has been set.  If no label has been set, then the name will be used.
801 (@xref{VARIABLE LABELS}.)
802 If @subcmd{TVARS} is set to @subcmd{BOTH}, then variables will be displayed with both their label
803 (if any) and their name in parentheses.
804 @end table
805
806 @cindex headers
807 @cindex length
808 @cindex more
809 @cindex pager 
810 @cindex width
811 @cindex tnumbers
812
813
814 Logging subcommands affect logging of commands executed to external
815 files.  These subcommands are
816
817 @table @asis
818 @item JOURNAL
819 @itemx LOG
820 These subcommands, which are synonyms, control the journal.  The
821 default is @subcmd{ON}, which causes commands entered interactively to be
822 written to the journal file.  Commands included from syntax files that
823 are included interactively and error messages printed by @pspp{} are also
824 written to the journal file, prefixed by @samp{>}.  @subcmd{OFF} disables use
825 of the journal.
826
827 The journal is named @file{pspp.jnl} by default.  A different name may
828 be specified.
829 @end table
830
831 System file subcommands affect the default format of system files
832 produced by @pspp{}.  These subcommands are
833
834 @table @asis
835 @item COMPRESSION
836 Not currently used.
837
838 @item SCOMPRESSION
839 Whether system files created by @cmd{SAVE} or @cmd{XSAVE} are
840 compressed by default.  The default is @subcmd{ON}.
841 @end table
842
843 Security subcommands affect the operations that commands are allowed to
844 perform.  The security subcommands are
845
846 @table @asis
847 @item SAFER
848 Setting this option disables the following operations:
849
850 @itemize @bullet
851 @item
852 The @cmd{ERASE} command.
853 @item
854 The @cmd{HOST} command.
855 @item
856 The @cmd{PERMISSIONS} command.
857 @item
858 Pipes (file names beginning or ending with @samp{|}).
859 @end itemize
860
861 Be aware that this setting does not guarantee safety (commands can still
862 overwrite files, for instance) but it is an improvement.
863 When set, this setting cannot be reset during the same session, for
864 obvious security reasons.
865
866 @item LOCALE
867 @cindex locale
868 @cindex encoding, characters
869 This item is used to set the default character encoding.
870 The encoding may be specified either as an encoding name or alias
871 (see @url{http://www.iana.org/assignments/character-sets}), or
872 as a locale name.
873 If given as a locale name, only the character encoding of the 
874 locale is relevant.
875
876 System files written by @pspp{} will use this encoding.
877 System files read by @pspp{}, for which the encoding is unknown, will be
878 interpreted using this encoding.
879
880 The full list of valid encodings and locale names/alias are operating system
881 dependent.
882 The following are all examples of acceptable syntax on common GNU/Linux
883 systems.
884 @example
885 SET LOCALE='iso-8859-1'.
886
887 SET LOCALE='ru_RU.cp1251'.
888
889 SET LOCALE='japanese'.
890 @end example
891
892 Contrary to intuition, this command does not affect any aspect 
893 of the system's locale.
894 @end table
895
896 @node SHOW
897 @section SHOW
898 @vindex SHOW
899
900 @display
901 SHOW
902         [ALL]
903         [BLANKS]
904         [CC]
905         [CCA]
906         [CCB]
907         [CCC]
908         [CCD]
909         [CCE]
910         [COPYING]
911         [DECIMALS]
912         [DIRECTORY]
913         [ENVIRONMENT]
914         [FORMAT]
915         [FUZZBITS]
916         [LENGTH]
917         [MXERRS]
918         [MXLOOPS]
919         [MXWARNS]
920         [N]
921         [SCOMPRESSION]
922         [TEMPDIR]
923         [UNDEFINED]
924         [VERSION]
925         [WARRANTY]
926         [WEIGHT]
927         [WIDTH]
928 @end display
929
930 @cmd{SHOW} can be used to display the current state of @pspp{}'s execution
931 parameters.  Parameters that can be changed using @cmd{SET}
932 (@pxref{SET}), can be examined using @cmd{SHOW} using the subcommand
933 with the same name.  @cmd{SHOW} supports the following additional
934 subcommands:
935
936 @table @asis
937 @item @subcmd{ALL}
938 Show all settings.
939 @item @subcmd{CC}
940 Show all custom currency settings (@subcmd{CCA} through @subcmd{CCE}).
941 @item @subcmd{DIRECTORY}
942 Shows the current working directory.
943 @item @subcmd{ENVIRONMENT}
944 Shows the operating system details.
945 @item @subcmd{N}
946 Reports the number of cases in the active dataset.  The reported number is not
947 weighted.  If no dataset is defined, then @samp{Unknown} will be reported.
948 @item @subcmd{TEMPDIR}
949 Shows the path of the directory where temporary files will be stored.
950 @item @subcmd{VERSION}
951 Shows the version of this installation of @pspp{}.
952 @item @subcmd{WARRANTY}
953 Show details of the lack of warranty for @pspp{}.
954 @item @subcmd{COPYING} / @subcmd{LICENSE}
955 Display the terms of @pspp{}'s copyright licence (@pxref{License}).
956 @end table
957
958 Specifying @cmd{SHOW} without any subcommands is equivalent to @subcmd{SHOW ALL}.
959
960 @node SUBTITLE
961 @section SUBTITLE
962 @vindex SUBTITLE
963
964 @display
965 SUBTITLE '@var{subtitle_string}'.
966   or
967 SUBTITLE @var{subtitle_string}.
968 @end display
969
970 @cmd{SUBTITLE} provides a subtitle to a particular @pspp{}
971 run.  This subtitle appears at the top of each output page below the
972 title, if headers are enabled on the output device.
973
974 Specify a subtitle as a string in quotes.  The alternate syntax that did
975 not require quotes is now obsolete.  If it is used then the subtitle is
976 converted to all uppercase.
977
978 @node TITLE
979 @section TITLE
980 @vindex TITLE
981
982 @display
983 TITLE '@var{title_string}'.
984   or
985 TITLE @var{title_string}.
986 @end display
987
988 @cmd{TITLE} provides a title to a particular @pspp{} run.
989 This title appears at the top of each output page, if headers are enabled
990 on the output device.
991
992 Specify a title as a string in quotes.  The alternate syntax that did
993 not require quotes is now obsolete.  If it is used then the title is
994 converted to all uppercase.