Add support for reading and writing SPV files.
[pspp] / NEWS
1 PSPP NEWS -- history of user-visible changes.
2 Copyright (C) 1996-2000, 2008-2016, 2017, 2019 Free Software Foundation, Inc.
3 See the end for copying conditions.
4
5 Please send PSPP bug reports to bug-gnu-pspp@gnu.org.
6
7 Changes from 1.2.0 to 1.3.0:
8
9  * PSPP now supports the SPSS viewer (.spv) format that SPSS 16 and later
10    use to save the contents of its output editor:
11
12    - PSPP and PSPPIRE can write output to .spv files.
13
14    - The new utility pspp-output can convert .spv files to other formats.
15
16    - The pspp-convert utility can now decrypt encrypted .spv files.  The
17      encrypted viewer file format is unacceptably insecure, so to
18      discourage its use PSPP and PSPPIRE do not directly read or write
19      this format.
20
21  * A bug where the Data|Select Cases|Random Sample menu would generate
22    invalid syntax has been fixed.
23
24  * FREQUENCIES will emit a warning if one or more weight values are missing.
25
26  * Plain text output is no longer divided into pages, since it is now
27    rarely printed on paper.
28
29  * The pspp-convert utility has new "-a", "-l", "--password-list"
30    options to search for an encrypted file's password.
31
32  * Improvements to SAVE DATA COLLECTION support for MDD files.
33
34  * Bug fix for CVE-2018-20230.
35
36  * The /RENAME subcommand in SAVE TRANSLATE et al. has been extended
37    to support the syntax also accepted by other software.
38
39  * The EXAMINE command will now perform the Shapiro-Wilk test when
40    one or more plots are requested.
41
42  * The REGRESSION command now supports the /STATISTICS=TOL option which
43    outputs tolerance and variance inflation factor metrics for the data.
44
45  * The QUICK CLUSTER command now supports the /SAVE option which can
46    be used to save the cases' cluster membership and/or their distance
47    from the cluster centre to the active file.
48
49  * The MEANS command has been re-implemented.
50
51  * A bug where the GUI would crash when T-TEST was executed whilst
52    a filter was set has been fixed.
53
54  * The GUI now has a sub-dialog for post-hoc tests of the oneway
55    anova test.
56
57  * Gtk+3.22.0 or later must now be used when building.
58
59  * GRAPH: Categorical barcharts displaying percentages now show the
60    sub-category as a percentage of the primary category instead of the
61    total.
62
63  * AUTORECODE:
64
65    - The PRINT subcommand is now implemented.
66
67    - Many bug fixes.
68
69 Changes from 1.0.1 to 1.2.0:
70
71  * New experimental command SAVE DATA COLLECTION to save MDD files.
72
73  * MTIME and YMDHMS variable formats now supported.
74
75  * Build changes:
76
77    - zlib is now a required dependency.  (Previously it was optional.)
78
79    - Gtk+3.18.0 or later must now be used when building.
80
81    - The code implementing the sheet rendering has been removed.  Instead we
82      use a third party library: spread-sheet-widget.
83
84  * The "NOMISSING" keyword when generating syntax for piecharts in the
85    frequencies command was omitted.  This has been corrected.
86
87 Changes from 1.0.0 to 1.0.1:
88
89  * Bug fixes, including fixes for CVE-2017-12958, CVE-2017-12959,
90    CVE-2017-12960, and CVE-2017-12961.
91
92 Changes from 0.11.0 to 1.0.0:
93
94  * Translation updates.
95
96 Changes from 0.10.2 to 0.11.0:
97
98  * The REGRESSION command now has a /ORIGIN subcommand to perform
99    regression through the origin.
100
101  * The FACTOR command can now analyse matrix files prepared with MATRIX DATA.
102
103  * The FACTOR command can now print the anti-image matrices.
104
105  * The MATRIX DATA command has been added.
106
107  * Some inappropriate properties in selection dialogs have been corrected.
108
109  * A bug which could cause the HTML driver to go into a tight loop
110    has been fixed.
111
112  * An error in the FREQUENCIES procedure, where the word "Mean" was
113    printed when "Variance" was appropriate has been fixed.
114
115  * The ncurses library is no longer required or used.
116
117  * A bug where the Mann-Whitney test would give misleading results
118    if run on multiple variables and MISSING=ANALAYSIS was specified
119    has been fixed.
120
121  * Gtk+3.14.5 or later must now be used when building.
122
123  * Graphical user interface changes:
124
125  ** There is a new menu: Edit|Options
126
127  ** The Non Parametric Statistics Menu has a new item: "K Independent Samples".
128
129  ** Dialog boxes can now be canceled using the <Escape> key.
130
131  * The AUTORECODE command now accepts an optional / before INTO.
132
133  * The short form of the VECTOR command can now create string variables.
134
135  * Bug fixes, including fixes for CVE-2017-10791 and CVE-2017-10792.
136
137 Changes from 0.10.1 to 0.10.2:
138
139  * CROSSTABS implements a new COUNT subcommand to round case or cell
140    weights.
141
142  * Help will be opened as HTML in default browser if yelp
143    is not available.
144
145  * When plotting scatterplots with only one dataset (the simple case)
146    the colour used for the dataset is now black.  The previous default
147    from the Tango palette was too faint to see easily.
148
149  * The varible info dialog could previously only paste a single variable.
150    Now it can paste multiple variables.
151
152  * Bug fixes, including the following:
153
154    - T-test with independent samples GUI crashed with string
155      type variable as group variable.
156
157    - The variable info dialog showed the previous selected variable
158      superimposed with the currently selected one.
159
160    - The GLM command did not properly deal with missing values.  This
161      has been fixed.
162
163 Changes from 0.10.0 to 0.10.1:
164
165  * Bug fixes, including the following:
166
167    - A bug where certain dialog boxes could not be properly populated
168      has been fixed.
169
170    - Various commands have been hardened against errors when called
171      with invalid syntax.
172
173  * Translation updates.  Thanks to our translators!
174
175 Changes from 0.8.5 to 0.10.0:
176
177  * The QUICK CLUSTER command has a  /PRINT subcommand which shows
178    the initial cluster centres and the final cluster membership of
179    each case.  The clustering algorithm has also been updated, so
180    as to produce better separated clusters.
181
182  * A Russian localisation has been contributed.
183
184  * The GRAPH command now has a /BAR subcommand to draw barcharts.
185
186  * If the DECIMAL character is set to COMMA then the ',' character
187    will not be treated as a separator by DATA LIST.
188
189  * The graphical user interface (psppire) has been changed as follows:
190
191    - It now uses Gtk+ version 3 instead of version 2.  Accordingly, it has a
192      somewhat different look and feel.
193
194    - There is now a Graphs menu to access the GRAPH command.
195
196    - The status of dialog box widgets are now preserved between calls
197      to the same dialog box for the same dataset.
198
199    - The dialog box for the Logistic Regression command will now
200      infer that string variables or any varible with a "measure"
201      of Nominal or Ordinal are to be treated as categorical variables
202      and will generate syntax accordingly.
203
204  * The pspp-convert utility can now decrypt encrypted syntax files.
205    The encrypted syntax file format is unacceptably insecure, so to
206    discourage its use PSPP and PSPPIRE do not directly read or write
207    this format.
208
209  * New commands:
210
211    - SORT VARIABLES.
212
213  * The following functions for transformation expressions are new:
214
215    - REPLACE, for search-and-replace of one string with another.
216
217    - STRUNC, to truncate a string and trim trailing spaces.
218
219    - MEDIAN, to compute the median of its arguments.
220
221    - The TRUNC function in expressions now supports additional arguments
222      for truncating to values other than integers and to indicate a level
223      of rounding fuzz.  The default rounding fuzz may now be controlled
224      and displayed with SET FUZZBITS and SHOW FUZZBITS, respectively.
225
226  * Bug fixes, including the following notable ones:
227
228    - The correlation coefficient in the paired samples t-test
229      procedure is now correctly calculated when presented with
230      weighted data.
231
232    - The ESCAPE subcommand has been removed from GET DATA /TYPE=TXT.
233      For compatibility, the behavior that ESCAPE enabled is now the
234      default and only supported behavior.
235
236    - Rendering of the variable and data sheets in right-to-left locales
237      now works properly.
238
239    - The Mann-Whitney test, when run on a dataset containing values
240      of the group variable, other than those defining the test groups,
241      would incorrectly calculate the ranks.  This has been corrected.
242
243  * The IMPORTCASES subcommand on GET DATA is now ignored, for
244    compatibility.
245
246 Changes from 0.8.4 to 0.8.5:
247
248  * The FREQUENCIES and CROSSTABS commands can now generate barcharts.
249
250  * The FACTOR command can now perform PROMAX rotations.
251
252  * SPSS/PC+ system files are now supported on GET and other commands
253    that read SPSS system files.  The pspp-convert program can now read
254    SPSS/PC+ system files.  Writing the obsolete SPSS/PC+ system file
255    format is not supported.
256
257  * SYSFILE INFO can now read SPSS/PC+ system files and SPSS portable
258    files.
259
260  * FREQUENCIES: A bug was fixed where an assertion failure occurred
261    when an empty dataset was presented.
262
263  * The GRAPH command is now available.  Initially it supports
264    scatterplots and histograms.
265
266  * The RND operator in expressions now supports additional operands
267    for rounding to values other than integers and to indicate a level
268    of rounding fuzz.  The default rounding fuzz may now be controlled
269    and displayed with SET FUZZBITS and SHOW FUZZBITS, respectively.
270
271 Changes from 0.8.3 to 0.8.4:
272
273  * Formatting of SYSFILE INFO output was made easier to read.
274
275  * Bug fixes, including the following notable ones:
276
277    - FREQUENCIES works properly for string variables.  (This bug was
278      introduced in 0.8.2.)
279
280    - CROSSTABS now correctly computes all of the measures that it
281      offers.  Some measures have been removed because they were not
282      computed correctly.
283
284    - The NPAR TESTS calculation of significance for the RUNS
285      subcommand has been corrected.
286
287    - Planned comparisons in ONEWAY ANOVA now correctly handle negative
288      T-values.
289
290    - The COUNT command now correctly treats missing values as
291      documented.
292
293    - Conformance fixes to Open Document output format.
294
295 Changes from 0.8.2 to 0.8.3:
296
297  * Independent T-Tests displayed the standard error of the difference
298    and the confidence interval for the unequal variances case, where
299    the equal variances case should have been.  This has been fixed.
300
301  * REGRESSION now recognises /STATISTICS=CI(x) which causes confidence
302    intervals for the coefficients to be printed.
303
304  * When DESCRIPTIVES calculates Z scores, it now omits cases filtered
305    by the current FILTER settings.
306
307  * PSPPIRE graphical user interface improvements:
308
309    - Dialog boxes with source  variable lists can now choose the sort
310      order;  right click and select from the popup menu.
311
312    - File|Open now allows an encoding to be selected for opening
313      system files.
314
315    - File|Display Data File Information|External File... now allows an
316      encoding to be selected.
317
318    - A problem with the Means dialog has been resolved (bug #41433).
319
320    - Several problems related to the input of spreadsheets have been
321      fixed (bug #41657, #41620
322
323  * System file related improvements:
324
325    - With ENCODING="DETECT", SYSFILE INFO can now help the user to
326      pick an encoding for reading a system file that does not identify
327      its own encoding
328
329    - SYSFILE INFO now accepts an ENCODING subcommand to specify the
330      character encoding of string data in the system file.
331
332    - Variable labels over 255 bytes long are now accepted without
333      truncation (bug #41863).
334
335    - System files that contain duplicate variable names may now be
336      read successfully (bug #41475).
337
338 Changes from 0.8.1 to 0.8.2:
339
340  * Charts are now rendered with colours from the Tango palette instead
341    of fully saturated primaries.
342
343  * Support for new system file variants:
344
345    - PSPP can now read and write ZCOMPRESSED system files, which
346      compress data much more effectively than older "compressed"
347      files.  (The older format is still supported.)
348
349    - PSPP can now decrypt encrypted system files, using the new
350      pspp-convert utility.  The encrypted system file format is
351      unacceptably insecure, so to discourage its use PSPP and PSPPIRE
352      do not directly read or write this format.
353
354  * Missing values for long string variables are now read from and
355    written to system files in an SPSS-compatible fashion.
356
357    (Earlier versions of PSPP that supported missing values for long
358    string variables wrote them to system files in an SPSS-incompatible
359    way.  To fix the problem, read the system file with this version of
360    PSPP and then save a new copy of it.)
361
362  * pspp-convert, a new standalone utility for converting SPSS system
363    and portable files to other formats, is now included.  The initial
364    version supports comma-separated value files as output format.
365    pspp-convert can also decrypt encrypted system files.
366
367  * Build changes:
368
369    - zlib is now a required dependency.  (Previously it was optional.)
370
371 Changes from 0.8.0 to 0.8.1:
372
373  * New commands:
374
375    - VARIABLE ROLE.
376
377  * Changes to existing commands:
378
379    - CROSSTABS: The requirement that one expected count must be less than five
380         before Fishers Exact Test will be reported has been removed.
381
382  * PSPPIRE graphical user interface improvements:
383
384    - A new set of icons has been contributed.
385
386    - Syntax windows now parse syntax in "auto" mode, which in practice
387      should mean that both "batch" and "interactive" syntax now works,
388      instead of just "interactive" syntax.
389
390    - The variable pane of data windows now include a Role column.
391
392  * Notable bug fixes:
393
394    - System files written by IBM SPSS 21 are now read without warnings.
395
396    - System files written by "VOXCO INTERVIEWER 4.3" are now read
397      without warnings.
398
399    - PSPPIRE should now more gracefully handle syntax files that contain
400      errors.
401
402 Changes from 0.6.2 to 0.8.0:
403
404  * New commands:
405
406    - ADD FILES
407    - CORRELATIONS
408    - DATAFILE ATTRIBUTES
409    - DATASET ACTIVATE
410    - DATASET CLOSE
411    - DATASET COPY
412    - DATASET DECLARE
413    - DATASET DISPLAY
414    - DATASET NAME
415    - LOGISTIC REGRESSION
416    - MATCH FILES
417    - MEANS
418    - MRSETS
419    - PRESERVE and RESTORE
420    - QUICK CLUSTER
421    - RELIABILITY
422    - ROC
423    - SAVE TRANSLATE to CSV and tab-delimited files
424    - UPDATE
425    - VARIABLE ATTRIBUTES
426
427  * Changes to existing commands:
428
429    - AUTORECODE has a new GROUP subcommand.
430
431    - CROSSTABS has been re-implemented to fix numerous bugs.
432
433    - EXAMINE: /MISSING=LISTWISE is now the default.
434
435    - DO REPEAT command has been reimplemented.  Now, when DO REPEAT
436      contains an INCLUDE or INSERT command, substitutions are not
437      applied to the included file.
438
439    - FILE HANDLE has a new ENDS subcommand to select CR or CRLF new-lines.
440
441    - HOST has been updated to use more modern syntax.
442
443    - Most commands that work with data files now support a new
444      ENCODING subcommand.
445
446    - MISSING VALUES can now assign missing values to long string
447      variables.
448
449    - ONEWAY: the POSTHOC subcommand is now implemented.
450
451    - The following new subcommands to NPAR TESTS have been implemented:
452      COCHRAN, FRIEDMAN, JONCKHEERE-TERPSTRA, KENDALL, KRUSKAL-WALLIS, MANN-WHITNEY,
453      MCNEMAR, SIGN, WILCOXON, and RUNS
454
455    - SET and SHOW no longer have ENDCMD, NULLINE, PROMPT, CPROMPT, and
456      DPROMPT subcommands.  The defaults are now fixed values.
457
458    - SHOW now has a JOURNAL subcommand, to show the location of the
459      journal file.
460
461    - VALUE LABELS can now assign value labels to long string
462      variables.
463
464  * Other language changes:
465
466    - The new DATASET commands replace the "scratch file" PSPP
467      extension, which is no longer supported.
468
469    - Strings may now include arbitrary Unicode code points specified
470      in hexadecimal, using the syntax U'hhhh'.  For example, Unicode
471      code point U+1D11E, the musical G clef character, may be
472      expressed as U'1D11E'.
473
474      See the "Tokens" section in the PSPP manual for more information.
475
476    - In previous versions of PSPP, in a string expressed in
477      hexadecimal with X'hh' syntax, the hexadecimal digits expressed
478      bytes in the locale encoding.  In this version of PSPP, X'hh'
479      syntax always expresses bytes in UTF-8 encoding.
480
481      See the "Tokens" section in the PSPP manual for more information.
482
483  * PSPPIRE graphical user interface improvements:
484
485    - Added support for non-ASCII characters in strings, labels and
486      variable names.
487
488    - A "Split Window" function is available, which makes it easier to
489      see different parts of a large data file.
490
491    - Data files can now be opened by specifing their name as the first
492      argument.  This means that on a properly configured desktop, double
493      clicking on an icon will open the file.
494
495    - Foreign formats, such as Gnumeric, OpenDocument and CSV can be imported
496      via using an "intelligent" application assistant dialog.
497
498  * Output changes:
499
500    - The new "cairo" output driver supports output in PostScript, PDF,
501      and SVG formats.  Its functionality is a superset of that of the
502      "postscript" driver, which has been removed.  You must have Cairo
503      and Pango installed to build the "cairo" driver.
504
505    - Charts are now produced with Cairo and Pango, instead of libplot.
506      Without them, the new graphing features will not work.  If you do
507      not have Cairo and Pango installed, you must run `configure' with
508      --without-cairo.
509
510    - The plain text output driver now properly supports multibyte UTF-8
511      characters, including double-width characters and combining
512      accents.
513
514    - Output to OpenDocument format is now supported.
515
516    - The HTML output is much improved.
517
518  * The "pspp" program has a new option --batch (or -b) that selects
519    "batch" syntax mode.  In previous versions of PSPP this syntax mode
520    was the default.  Now a new "auto" syntax mode is the default.  In
521    "auto" mode, PSPP interprets most syntax files correctly regardless
522    of their intended syntax mode.
523
524    See the "Syntax Variants" section in the PSPP manual for more
525    information.
526
527  * The "pspp" program has a new option --syntax-encoding that
528    specifies the encoding for syntax files listed on the command line,
529    as well as the default encoding for syntax files included with
530    INCLUDE or INSERT.  The default is to accept the system locale
531    encoding, UTF-8, UTF-16, or UTF-32, automatically detecting which
532    one the system file uses.
533
534    See the documentation for the INSERT command in the PSPP manual for
535    more information.
536
537  * Text data files that PRINT and WRITE creates now use the system
538    native line ends by default (CRLF on Windows, LF only elsewhere).
539    Use the new ENDS subcommand on FILE HANDLE to override the default.
540
541  * A new Perl module allows Perl programs to read and write PSPP
542    system files.
543
544  * A tutorial chapter has been added to the user manual.
545 \f
546 Changes from 0.6.1 to 0.6.2:
547
548   * New translations:
549
550     - Dutch, thanks to Harry Thijssen.
551
552     - Brazilian Portuguese, thanks to Michel Boaventura.
553
554     Thanks for translations are also due to the coordinators at
555     translationproject.org.
556
557   * Statistical bug fixes:
558
559     - REGRESSION: Report correct standard error of the estimate (bug
560       #25677).
561
562     - T-TEST: Report correct significance of paired sample T-test in
563       the common case (bug #26936) and corner cases.  Thanks to Mike
564       Griffiths and Matej Cepl for reporting these bugs.
565
566   * Build fixes and changes:
567
568     - Fix build with GTK+ 2.17.4 and later.
569
570     - Make running "make" after running "configure" with different
571       settings reliably rebuild version.c.
572
573     - Cygwin and MinGW build fixes.
574
575     - Fixes for building with recent gnulib.
576
577     - The Makefile now honors two new variables, PSPP_LDFLAGS and
578       PSPPIRE_LDFLAGS, that affect linking of the PSPP and PSPPIRE
579       binaries, respectively.  This makes building easier for some
580       packagers.
581
582     - Fixes for "configure --enable-relocatable" (bug #25508).
583
584   * Data file bug fixes and changes:
585
586     - Fix reading text data files that contain a mix of white space
587       and commas.  Now "a ,b" is treated as two fields containing "a"
588       and "b"; previously it was treated as three, with an empty field
589       in the middle.
590
591     - Fix writing corrupted .sav files on Windows.
592
593     - Fix writing variable labels longer than 252 bytes to save files.
594       Thanks to Robert Westlund for reporting this bug.
595
596     - Fix writing corrupted .por files (bug #26034).
597
598     - Fix reading .por files whose initial lines are not padded out
599       with spaces as expected.
600
601     - PSPP will no longer issue warnings about some .sav file records
602       or values that it does not understand.  These warnings were
603       harmless, but needlessly alarmed some users.
604
605     - Fix crash reading empty string fields from PostgreSQL databases.
606
607   * Bug fixes that affect PSPP and PSPPIRE:
608
609     - Users may now control precision of output statistics.  Instead
610       of hard coding the width and decimals of output numbers, respect
611       the default format in most instances.  Counts are now normally
612       displayed with the format of the weight variable, if any.
613
614     - Fix crash when an INSERT command specifies the name of a file
615       that does not exist (bug #24569).
616
617     - Fix crash when CROSSTABS specifies a long-string variable (bugs
618       #24557 and #26131).
619
620     - Fix crash drawing pie charts with many segments.
621
622     - Fix crash when NUMERIC specifies an invalid format.
623
624   * PSPPIRE bug fixes and changes:
625
626     - On Windows, write the output file to the user's home directory
627       instead of the current directory, to better match user
628       expectations.
629
630     - Some data editor fixes.
631
632   * Documentation:
633
634     - Fix typo in BINOMIAL section of user manual (bug #25892).
635
636 Changes from 0.6.0 to 0.6.1:
637
638   * Statistical bug fixes:
639
640     - Report correct standardized regression coefficients in linear
641       regression output (bug #23567).
642
643   * Bug fixes that affect PSPP and PSPPIRE:
644
645     - Avoid crash with pie charts (bug #24014).
646
647     - Don't append % to count totals (bug #24003).
648
649     - Don't crash on bad input (bug #24031).
650
651     - Don't crash if "end data." is not left aligned (bug #24115).
652
653     - Change default workspace value to 64 MB, to avoid unnecessary
654       disk accesses on modern machines.
655
656   * PSPPIRE bug fixes:
657
658     - Add ".sav" or ".por" suffix to filename when saving with Save_As
659       (bug #23137).
660
661     - Make it possible to reopen the output window on Windows (bug
662       #24033).
663
664     - A POSIX regular expression library is now included and used
665       automatically if the host does not have one or has one that is
666       inadequate.
667
668   * Build fixes and changes:
669
670     - Work around bug in GSL that prevented build with recent GCC
671       versions without manually adding -fgnu89-inline to CFLAGS.
672
673     - Also warn about missing prerequisites as we encounter them (bug
674       #24445).
675
676     - Distribute necessary files to allow users working from the
677       distributed tarball to configure with --enable-gui-tools.
678
679     - Append $(EXEEXT_FOR_BUILD) to output file name when building
680       q2c, fixing build problems on Windows.
681
682     - GSL 1.8 or later is now required.
683
684     - Build errors with --enable-relocatable were fixed.
685
686   * The German translations were removed, since native German speakers
687     found them too poor to be useful.
688
689 Changes from 0.4.0 to 0.6.0:
690
691   * The PSPP license is now version 3 or later of the GNU General
692     Public License.  Previously, it was version 2 or later.
693
694   * PSPP now has a graphical interface, called PSPPIRE.  This
695     interface allows you to enter data and variable definitions
696     interactively.  Commands may be executed in syntax form, or by
697     using the interactive dialog boxes available from the dropdown
698     menus.
699
700   * A few sample syntax files are now included in the `examples'
701     directory.
702
703   * Numerous major and minor bugs have been fixed.
704
705   Build changes:
706
707     * The INSTALL file now reflects the details of how to install
708       PSPP.  It is a tailored version of the generic installation
709       instructions, instead of a verbatim copy.
710
711     * iconv, which is ordinarily installed as part of a Unix-like
712       system, is now required.  If you don't have it already, you can
713       install GNU libiconv (http://www.gnu.org/software/libiconv/).
714
715     * libxml2 and zlib are new optional dependencies.  They are
716       required to use PSPP's support for reading Gnumeric files.
717
718   Statistical procedure changes:
719
720     * REGRESSION is a new procedure for fitting linear models to data
721       via least-squares estimation.
722
723     * NPAR TESTS is a new procedure for non-parametric tests.  In this
724       release, it supports binomial and chi-square tests.
725
726     * RANK is a new procedure to rank variables.  It supports numerous
727       forms of ranking.
728
729     * FREQUENCIES can now output histograms and pie charts.  These
730       features were present in earlier releases, but not documented.
731
732   User interface changes:
733
734     * In many situations where PSPP once terminated with a fatal
735       error, PSPP now recovers and continues execution.
736
737     * PSPP is now able to start up and run even if it cannot find its
738       configuration files.
739
740     * Journaling of interactive commands to a disk file is now
741       implemented.  By default, journaling is enabled, to a file named
742       `pspp.jnl' in the current directory.  SET JOURNAL may be used to
743       control journaling.
744
745     * The use of `+' between syntax file names on the command line to
746       prevent the dictionary from being cleared between their
747       executions is no longer supported.  All syntax files are now
748       executed as if `+' had been specified.
749
750     * The -d/--define and -u/--undef command line options are no
751       longer supported.  Instead, use /usr/bin/env or shell primitives
752       to define or clear environment variables before invoking PSPP.
753
754     * If a syntax file named named `rc' is found in a configuration
755       directory (such as $HOME/.pspp), it is executed before any
756       syntax file specified on the command line.  The -r or
757       --no-statrc command line option may be used to disable this
758       behavior.
759
760   Output changes:
761
762     * Output configuration options have changed.  Please refer to the
763       manual for a full description of the available options.
764
765       In consequence, you will need to reinstall your "devices" file.
766       "make install" will do this for you.
767
768     * Most error messages are now written to PSPP output files by
769       default.  SET ERROR can be used to disable this behavior.
770
771     * When invoked interactively, PSPP now by default produces output
772       on the terminal, piping it through the "more" program.
773       Previously, by default output was written only to file
774       pspp.list.  On most terminals, the page length used for output
775       automatically adapts to the terminal size, even if the terminal
776       is resized.
777
778     * ASCII driver:
779
780       - This driver now supports charts in output.  Charts are written
781         as separate files that the main output file refers to.  By
782         default, charts are written in PNG format to files named
783         pspp-1.png, pspp-2.png, and so on.
784
785       - Configurations are provided that use VT100 (and xterm)
786         line-drawing characters in tables.  The option "-o list-vt100"
787         requests use of this device for output to pspp.list.
788
789     * PostScript driver:
790
791       - The default paper size is now determined using the PAPERSIZE
792         environment variable, or the LC_PAPER locale category on
793         systems that support it.  If these are not set, the default is
794         now A4, instead of US letter.  To make US letter the default,
795         set PAPERSIZE to "letter" in your environment.
796
797       - Font metrics are now read from AFM files, instead of
798         Groff-format metrics files.  PostScript fonts can now be
799         embedded in output.
800
801         In consequence, you will need to install an AFM file for each
802         font used in PostScript output.  "make install" will install
803         AFM files for the standard PostScript fonts, including the
804         ones that the PostScript driver uses by default.
805
806       - Standard paper sizes no longer need to be specified through a
807         configuration file.  The "papersize" configuration file is no
808         longer needed, or supported.
809
810       - The PostScript prologue is no longer obtained from the
811         "ps-prologue" configuration file.  This configuration file is
812         no longer needed, or supported.
813
814     * HTML driver:
815
816       - The HTML prologue is no longer obtained from the
817         "html-prologue" configuration file.  This configuration file
818         is no longer needed, or supported.
819
820   Command language changes:
821
822     * The following commands are new:
823
824       - GET DATA, which currently supports reading Gnumeric files and
825         text data files.  It will be extended later to read other
826         types of foreign data.
827
828       - CD, to change the current directory.
829
830       - INSERT, to execute a syntax file.
831
832       - DELETE VARIABLES, to remove variables from the active file
833         dictionary.
834
835       - ADD DOCUMENT, to add text to active file documents.
836
837       - CLOSE FILE HANDLE (a PSPP extension; see below).
838
839       - XEXPORT, a PSPP extension that is a transformation equivalent
840         to EXPORT.
841
842     * The following functions for transformation expressions are new:
843
844       - DATEDIFF, for computing the difference of two dates.
845
846       - DATESUM, for advancing a date by a specified duration.
847
848       - VALUELABEL, to obtain the value label for a value.
849
850     * PSPP now supports very long string variables (over 255 bytes
851       long).
852
853     * MATCH FILES now supports the FIRST and LAST subcommands.
854
855     * Previous versions of PSPP prohibited using commands to both read and
856       write a single file at the same time.  Now, PSPP allows this, and
857       the new version of the file atomically replaces the old version.
858
859     * The following commands are no longer available.  They will be
860       re-implemented in a later release:
861
862       - CLEAR TRANSFORMATIONS
863
864       - MATRIX DATA
865
866       - REPEATING DATA
867
868     * The PROCESS IF command, which was deprecated, has been removed.
869       You may replace any usage of it by SELECT IF following
870       TEMPORARY, which has the same effect.
871
872     * The output format for variables created by VECTOR may now be
873       specified as part of the VECTOR syntax.
874
875   "Scratch files", a new PSPP extension:
876
877     A scratch file, like a system file, consists of a dictionary and
878     any number of cases.  Small scratch files are stored in memory;
879     one that grows too large is written to disk.  By default, any file
880     handle whose name begins with # is assumed to refer to a scratch
881     file.
882
883     Scratch files can be used just about anywhere a system or portable
884     file can be used.  Also, portable files are now allowed in most
885     places that system files were allowed in previous PSPP version.
886
887     A new CLOSE FILE HANDLE command allows the storage associated with
888     scratch files to be freed.  It also allows file handles to be
889     reassigned to new files.
890
891     For more information on scratch files, refer to the "File Handles"
892     section in the PSPP manual.  For specifics of what commands now
893     allow what kinds of files to be specified, refer to the
894     documentation on those particular commands.
895
896   Data access changes:
897
898     * Binary formats and IBM/360 formats, including ASCII/EBCDIC
899       translation, are now supported.  Use FILE HANDLE to specify the
900       format of these files.
901
902     * Little-endian, big-endian, and VAX-endian formats are now
903       supported for integer binary formats when reading and writing
904       data files.  The new RIB and WIB subcommands on the SET command
905       control endianness of integer data.  The default is the host's
906       native endianness.
907
908     * IEEE 754, VAX, and IBM hexadecimal formats are now supported for
909       floating point binary formats when reading and writing data
910       files.  The new RRB and WRB subcommands on the SET command
911       control the floating point format.  The default is the host's
912       native floating point format.
913
914     * DATA LIST now supports the SKIP subcommand, to skip records at
915       the beginning of a file.  For compatibility, DATA LIST now
916       treats N format as F format for FREE and LIST format input.
917
918     * The SAVE and XSAVE commands now support the UNSELECTED,
919       PERMISSIONS, NAMES, and MAP subcommands.
920
921     * The EXPORT command has been re-implemented to obtain better
922       results.  Support for the UNSELECTED, DIGITS, and TYPE
923       subcommands has been added.
924
925     * For compatibility, PRINT now inserts a space at the beginning of
926       every output line, even lines that would otherwise be blank,
927       when OUTFILE is specified.  (The behavior of WRITE is
928       unchanged.)
929
930     * For compatibility, PRINT EJECT now inserts the digit `1' at the
931       beginning of each line that should begin a new page.
932
933     * For compatibility, WRITE now outputs the system-missing value as
934       a field filled with spaces.  Binary formats are an exception.
935       (The behavior of PRINT is unchanged.)
936
937   Documentation:
938
939     * Input and output format descriptions have been rewritten.  They
940       now precisely describe what is accepted on input and written on
941       output.
942
943     * The descriptions of the PSPP system and portable file formats
944       have been extensively revised and improved.
945
946   For developers, the build system now requires Autoconf 2.60 and
947   Automake 1.10.
948 \f
949 Changes from 0.3.0 to 0.4.0:
950
951   Changes in build dependencies:
952
953     * The GNU Scientific Library (libgsl), version 1.6 or later, is
954       now required.
955
956     * libplot from GNU plotutils is optional.  Without it, the new
957       graphing features will not work.  If you do not have it
958       installed, you must run `configure' with --without-libplot.
959
960     * libgmp2 is no longer a dependency.
961
962   Newly implemented commands and statistical features:
963
964     * EXAMINE, including its graphing features.
965
966     * FREQUENCIES now supports percentiles.
967
968     * ONEWAY.
969
970     * PERMISSIONS.
971
972     * SHOW.
973
974     * SORT CASES now sorts stably, that is, two cases with equal sort
975       criteria will be in the same relative order before and after the
976       sort.
977
978     * T-TEST (re-written).
979
980     * DATE and USE.  These commands are parsed but otherwise ignored,
981       to enhance compatibility with certain command files that invoke
982       them unnecessarily.
983
984     * VARIABLE WIDTH, VARIABLE ALIGNMENT, and VARIABLE LEVEL.  These
985       currently have no effect on PSPP output, but their values are
986       written to and read from system files and thus may affect
987       third-party software.
988
989     * SET EPOCH implemented.
990
991     * DATA LIST FREE and DATA LIST LIST now support arbitrary field
992       delimiters.
993
994     * FILE HANDLE now supports custom tab widths.
995
996   Long variable names (and other identifiers) are now supported.  Up
997   to the first 64 bytes of each identifier is significant.  PSPP now
998   reads and writes system files compatible with SPSS version 12.
999
1000   New --algorithm and --syntax command line options allow
1001   SPSS-compatible or enhanced modes to be selected.
1002
1003   Support for transformation expressions has been rewritten and
1004   significantly improved.  Refer to the manual for details.
1005
1006   Calculation of moments (mean, standard deviation, kurtosis,
1007   skewness) has been rewritten and should now be more accurate.  In
1008   --algorithm=enhanced mode moments may be more accurate than SPSS in
1009   some cases.
1010
1011   Numerous bugs have been fixed, too many to mention here.  Many new
1012   tests have been added, leading to the discovery and fixing of many
1013   of these bugs.
1014
1015   The ASCII output driver can now squeeze multiple blank lines into
1016   single blank lines.
1017
1018   Much of the code has been rewritten and refactored.  It is now much
1019   cleaner.
1020
1021   The FILE TYPE and REPEATING DATA commands have been disabled for
1022   this release because their implementations were deemed too buggy to
1023   be useful.  They will be fixed and replaced in a future release.
1024
1025   New pspp-mode for Emacs (in pspp-mode.el).
1026
1027   Added rudimentary command-line completion for interactive input.
1028
1029   lib/julcal and lib/dcdflib are no longer used, so they have been
1030   removed.
1031
1032   For developers, the build system now requires Autoconf 2.58 and
1033   Automake 1.7.  The included gettext has been updated to version
1034   0.12.1.
1035
1036   Some reports state that Texinfo 4.8, the latest version, may be
1037   necessary to successfully format the documentation on some systems.
1038
1039 Version 0.3.0 changes since 0.2.3:
1040
1041   Bugs fixed:
1042
1043     * Using alphanumeric variables in functions under AGGREGATE
1044       segfaulted.  Fixed.
1045
1046     * Under certain circumstances, the final case would be omitted
1047       from the results of an AGGREGATE operation.  Fixed.
1048
1049     * Undefined behavior was invoked by referencing a freed pointer
1050       under certain circumstances.  Fixed.
1051
1052     * A wrong record size was displayed when paging the active file to
1053       disk.  Fixed.
1054
1055     * Not having enough temporary space for sorting caused a core
1056       dump.  Fixed.
1057
1058     * Syntax errors in function descriptions on AGGREGATE caused core
1059       dumps.  Fixed.
1060
1061     * A null pointer was dereferenced, causing a core dump, when
1062       PERCENTILES was specified on FREQUENCIES.  This fixes the
1063       problem, but PSPP still doesn't calculate percentiles.
1064
1065     * SORT always sorted in ascending order.  Fixed.
1066
1067     * Some minor memory leaks in the expression parser were removed.
1068
1069     * Many assertions fixed for strict ANSI C compliance.
1070
1071   New features:
1072
1073     * SET ECHO ON now implemented, but turned off by default.
1074
1075     * PRINT specifier supported on END REPEAT.
1076
1077   Other:
1078
1079     * System libgmp2 library is used if installed instead of
1080       unconditionally using the included libgmp2 subset.
1081
1082     * Extensive code cleanup, which continues.
1083
1084     * Added CORRELATIONS command parser, but not implemented.
1085
1086 Version 0.2.3 changes since 0.2.2:
1087
1088   Bugs fixed:
1089
1090     * SPLIT FILE with a string variable caused a core dump.  Fixed.
1091
1092     * Nested INCLUDEs didn't work.  Fixed.
1093
1094     * The MATCH FILES procedure set the values of variables not present
1095       to 0.  It should have been SYSMIS.  This is now fixed.
1096
1097     * The REMARK command was too aggressive about skipping lines.  It
1098       didn't like being the last command in a file.
1099
1100     * Comment parsing wasn't consistent with the rest of the code in its
1101       idea of where one command ends and another starts.  This meant
1102       that sometimes commands would be mysteriously ignored.  Thanks to
1103       Dr. Dirk Melcher <BZN-mdksh@t-online.de> for reporting this bug.
1104
1105     * The TABLE subcommand on MATCH FILES worked only erratically at
1106       best.  This fixes it.  Thanks to Dr. Dirk Melcher
1107       <BZN-mdksh@t-online.de> for reporting this bug.
1108
1109     * VARIABLE LABELS rejected a slash before the first variable
1110       specification, contradicting the documentation.  Thanks to Walter
1111       M. Gray <graywm@northernc.on.ca> for reporting this bug.
1112
1113     * Because of an incorrect optimization in memory allocation,
1114       CROSSTABS sometimes segfaulted when asked to output multiple
1115       tables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
1116       reporting this bug.
1117
1118     * CROSSTABS didn't display value labels for column and row
1119       variables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
1120       reporting this bug.
1121
1122     * WRITE didn't write line ends.  Fixed.  Thanks to Dr. Dirk Melcher
1123       <BZN-mdksh@t-online.de> for reporting this bug.
1124
1125     * The TABLE subcommand on MATCH FILES worked only erratically at
1126       best.  This fixes it.  Thanks to Dr. Dirk Melcher
1127       <BZN-mdksh@t-online.de> for reporting this bug.
1128
1129     * VARIABLE LABELS rejected a slash before the first variable
1130       specification, contradicting the documentation.  Thanks to Walter
1131       M. Gray <graywm@northernc.on.ca> for reporting this bug.
1132
1133     * Because of an incorrect optimization in memory allocation,
1134       CROSSTABS sometimes segfaulted when asked to output multiple
1135       tables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
1136       reporting this bug.
1137
1138     * CROSSTABS didn't display value labels for column and row
1139       variables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
1140       reporting this bug.
1141
1142     * WRITE didn't write line ends.  Fixed.  Thanks to Dr. Dirk Melcher
1143       <BZN-mdksh@t-online.de> for reporting this bug.
1144
1145     * MATCH FILES corrupted memory and dumped core on some syntax
1146       errors.  Fixed.
1147
1148     * MATCH FILES should set numeric values not available to the
1149       system-missing value, not to 0.  Thanks to Dr. Dirk Melcher
1150       <BZN-mdksh@t-online.de> for reporting this bug.
1151
1152     * KEEP didn't work properly on the SAVE procedure.  Fixed.  Thanks
1153       to Ralf Geschke <ralf@kuerbis.org> for reporting this bug.
1154
1155     * Memory leak fix.
1156
1157     * Some systems didn't like the way open_file was coded.  Thanks to
1158       Hankin <hankin@rogue.consultco.com> for pointing this out.
1159
1160     * The SAVE procedure didn't save long string variables properly.
1161       Fixed by this patch.  Thanks to Hankin
1162       <hankin@rogue.consultco.com> for this patch.
1163
1164     * Minor documentation fixes for MATCH FILES.
1165
1166 Version 0.2.2 changes since 0.2.1:
1167
1168   Bugs fixed:
1169
1170     * Fix behavior of PRINT SPACE for negative arguments.
1171
1172     * Fix reading some unusual system files.
1173
1174     * Fix LIST problems with very long variables.  Thanks to Hankin
1175       <hankin@dunno.com> for this bug report.
1176
1177     * Fix problems with some string format specifiers.
1178
1179     * Fix use of $CASENUM in expressions.  Thanks to Dirk Melcher
1180       <BZN-mdksh@t-online.de> for reporting this bug.
1181
1182     * Additional DATA LIST FREE and DATA LIST LIST fixes.  Thanks to
1183       Hankin <hankin@dunno.com> again on this one.
1184
1185     * Sometimes you may encounter a PSPP script that has to be
1186       interpreted in interactive mode.  Now you can use the -i flag to
1187       do this.
1188
1189     * Warnings for egcs 1.1.1 cleaned up.  (However you'll get lots of
1190       `unused variable' warnings under gcc 2.7.2.3, fixing this will
1191       take more effort.)
1192
1193     * Tests fixed.
1194
1195     * The files in gmp need the internationalization directory in
1196       their include path.  Thanks to OKUJI Yoshinori
1197       <okuji@kuicr.kyoto-u.ac.jp> for pointing this out.
1198
1199 Version 0.2.1 changes since 0.2.0:
1200
1201   Bugs fixed:
1202
1203     * Remember to include examples/ directory in distribution :-)
1204
1205     * Fixed gmp compile problems for some non-i386 architectures.
1206       Thanks to Hans Olav Eggestad <olav@jordforsk.nlh.no> and others
1207       for reporting this.
1208
1209     * DATA LIST FREE and DATA LIST LIST parsing of input files is now
1210       matches the documented behavior exactly, and error messages are
1211       more helpful.  Thanks to Mark H. Wood <mwood@IUPUI.Edu>.
1212
1213 Version 0.2.0 changes since 0.1.0:
1214
1215   Procedures now implemented:
1216     * CROSSTABS.  Please see documentation for caveats.
1217
1218   Transformations and utilities now implemented:
1219     * AGGREGATE
1220     * APPLY DICTIONARY
1221     * CLEAR TRANSFORMATIONS
1222     * DISPLAY (all subcommands).
1223     * ERASE
1224     * FLIP
1225     * EXPORT
1226     * HOST
1227     * IMPORT
1228     * MATCH FILES
1229     * MATRIX DATA
1230     * NEW FILE
1231     * REPEATING DATA
1232
1233   Support for input and output through pipes: "|command" and
1234   "command|" filenames; support for special filenames "-", "stdin",
1235   "stdout", "stderr".
1236
1237   New command-line features:
1238     * New option --testing-mode: Invoke heuristics to assist testing.
1239     * New option --safer, -s: Don't allow certain unsafe operations.
1240     * New option --command=CMD, -c CMD: Perform literal command CMD.
1241     * rc file ~/.pspp/rc is executed before any other files.
1242     * Now multiple syntax files can be specified.
1243
1244   Operator LAG is now implemented.
1245
1246   Added missing FILE subcommand to REREAD.
1247
1248   Table output manager completely rewritten.
1249
1250   Device configuration file syntax changed.  You will need to
1251   reinstall your `devices' file.
1252
1253   New output driver for HTML.
1254
1255   PostScript driver and prologue simplified.
1256
1257   Many bugs fixed.  General source-code cleanup.
1258
1259   Added Texinfo documentation for:
1260     * PSPP system file format
1261     * PSPP portable file format
1262     * How to write input for q2c parser generator
1263     * HTML driver
1264
1265   PSPP language is now fully documented.  Please report any
1266   inaccuracies or omissions in the documentation.
1267
1268 Changes for version 0.1.0:
1269
1270   First public release.  For changes from unreleased development
1271   versions, please see ONEWS.
1272 \f
1273 ----------------------------------------------------------------------
1274 Copyright information:
1275
1276    Permission is granted to anyone to make or distribute verbatim
1277    copies of this document as received, in any medium, provided that
1278    the copyright notice and this permission notice are preserved, thus
1279    giving the recipient permission to redistribute in turn.
1280
1281    Permission is granted to distribute modified versions of this
1282    document, or of portions of it, under the above conditions,
1283    provided also that they carry prominent notices stating who last
1284    changed them.
1285 \f
1286 Local variables:
1287 version-control: never
1288 mode: indented-text
1289 end: