Merge commit 'HEAD'; commit 'savannah/master'
[pspp-builds.git] / NEWS
1 PSPP NEWS -- history of user-visible changes.
2 Time-stamp: <2009-02-05 20:31:51 blp>
3 Copyright (C) 1996-9, 2000, 2008, 2009 Free Software Foundation, Inc.
4 See the end for copying conditions.
5
6 Please send PSPP bug reports to bug-gnu-pspp@gnu.org.
7
8 Changes from 0.7.1 to 0.7.2:
9
10  * Updated Perl module interface.
11
12 Changes from 0.7.0 to 0.7.1:
13
14  *  Added a perl module to facilitate reading and writing of pspp system 
15     files from perl programs.
16
17 Changes from 0.6.1 to 0.7.0:
18
19   * Custom variable and data file attributes are now supported.
20     Commands VARIABLE ATTRIBUTE and DATAFILE ATTRIBUTE have been added
21     for setting and clear attributes.  Support for attributes has also
22     been added to commands that read and write system files, such as
23     SAVE and GET, as well as to the DISPLAY command.
24
25 Changes from 0.6.0 to 0.6.1:
26
27   * Statistical bug fixes:
28
29     - Report correct standardized regression coefficients in linear
30       regression output (bug #23567).
31
32   * Bug fixes that affect PSPP and PSPPIRE:
33
34     - Avoid crash with pie charts (bug #24014).
35
36     - Don't append % to count totals (bug #24003).
37
38     - Don't crash on bad input (bug #24031).
39
40     - Don't crash if "end data." is not left aligned (bug #24115).
41
42     - Change default workspace value to 64 MB, to avoid unnecessary
43       disk accesses on modern machines.
44
45   * PSPPIRE bug fixes:
46
47     - Add ".sav" or ".por" suffix to filename when saving with Save_As
48       (bug #23137).
49
50     - Make it possible to reopen the output window on Windows (bug
51       #24033).
52
53     - A POSIX regular expression library is now included and used
54       automatically if the host does not have one or has one that is
55       inadequate.
56
57   * Build fixes and changes:
58
59     - Work around bug in GSL that prevented build with recent GCC
60       versions without manually adding -fgnu89-inline to CFLAGS.
61
62     - Also warn about missing prerequisites as we encounter them (bug
63       #24445).
64
65     - Distribute necessary files to allow users working from the
66       distributed tarball to configure with --enable-gui-tools.
67
68     - Append $(EXEEXT_FOR_BUILD) to output file name when building
69       q2c, fixing build problems on Windows.
70
71     - GSL 1.8 or later is now required.
72
73     - Build errors with --enable-relocatable were fixed.
74
75   * The German translations were removed, since native German speakers
76     found them too poor to be useful.
77
78 Changes from 0.4.0 to 0.6.0:
79
80   * The PSPP license is now version 3 or later of the GNU General
81     Public License.  Previously, it was version 2 or later.
82
83   * PSPP now has a graphical interface, called PSPPIRE.  This
84     interface allows you to enter data and variable definitions
85     interactively.  Commands may be executed in syntax form, or by
86     using the interactive dialog boxes available from the dropdown
87     menus.
88
89   * A few sample syntax files are now included in the `examples'
90     directory.
91
92   * Numerous major and minor bugs have been fixed.
93
94   Build changes:
95
96     * The INSTALL file now reflects the details of how to install
97       PSPP.  It is a tailored version of the generic installation
98       instructions, instead of a verbatim copy.
99
100     * iconv, which is ordinarily installed as part of a Unix-like
101       system, is now required.  If you don't have it already, you can
102       install GNU libiconv (http://www.gnu.org/software/libiconv/).
103
104     * libxml2 and zlib are new optional dependencies.  They are
105       required to use PSPP's support for reading Gnumeric files.
106
107   Statistical procedure changes:
108
109     * REGRESSION is a new procedure for fitting linear models to data
110       via least-squares estimation.
111
112     * NPAR TESTS is a new procedure for non-parametric tests.  In this
113       release, it supports binomial and chi-square tests.
114
115     * RANK is a new procedure to rank variables.  It supports numerous
116       forms of ranking.
117
118     * FREQUENCIES can now output histograms and pie charts.  These
119       features were present in earlier releases, but not documented.
120
121   User interface changes:
122
123     * In many situations where PSPP once terminated with a fatal
124       error, PSPP now recovers and continues execution.
125
126     * PSPP is now able to start up and run even if it cannot find its
127       configuration files.
128
129     * Journaling of interactive commands to a disk file is now
130       implemented.  By default, journaling is enabled, to a file named
131       `pspp.jnl' in the current directory.  SET JOURNAL may be used to
132       control journaling.
133
134     * The use of `+' between syntax file names on the command line to
135       prevent the dictionary from being cleared between their
136       executions is no longer supported.  All syntax files are now
137       executed as if `+' had been specified.
138
139     * The -d/--define and -u/--undef command line options are no
140       longer supported.  Instead, use /usr/bin/env or shell primitives
141       to define or clear environment variables before invoking PSPP.
142
143     * If a syntax file named named `rc' is found in a configuration
144       directory (such as $HOME/.pspp), it is executed before any
145       syntax file specified on the command line.  The -r or
146       --no-statrc command line option may be used to disable this
147       behavior.
148
149   Output changes:
150
151     * Output configuration options have changed.  Please refer to the
152       manual for a full description of the available options.
153
154       In consequence, you will need to reinstall your "devices" file.
155       "make install" will do this for you.
156
157     * Most error messages are now written to PSPP output files by
158       default.  SET ERROR can be used to disable this behavior.
159
160     * When invoked interactively, PSPP now by default produces output
161       on the terminal, piping it through the "more" program.
162       Previously, by default output was written only to file
163       pspp.list.  On most terminals, the page length used for output
164       automatically adapts to the terminal size, even if the terminal
165       is resized.
166
167     * ASCII driver:
168
169       - This driver now supports charts in output.  Charts are written
170         as separate files that the main output file refers to.  By
171         default, charts are written in PNG format to files named
172         pspp-1.png, pspp-2.png, and so on.
173
174       - Configurations are provided that use VT100 (and xterm)
175         line-drawing characters in tables.  The option "-o list-vt100"
176         requests use of this device for output to pspp.list.
177
178     * PostScript driver:
179
180       - The default paper size is now determined using the PAPERSIZE
181         environment variable, or the LC_PAPER locale category on
182         systems that support it.  If these are not set, the default is
183         now A4, instead of US letter.  To make US letter the default,
184         set PAPERSIZE to "letter" in your environment.
185
186       - Font metrics are now read from AFM files, instead of
187         Groff-format metrics files.  PostScript fonts can now be
188         embedded in output.
189
190         In consequence, you will need to install an AFM file for each
191         font used in PostScript output.  "make install" will install
192         AFM files for the standard PostScript fonts, including the
193         ones that the PostScript driver uses by default.
194
195       - Standard paper sizes no longer need to be specified through a
196         configuration file.  The "papersize" configuration file is no
197         longer needed, or supported.
198
199       - The PostScript prologue is no longer obtained from the
200         "ps-prologue" configuration file.  This configuration file is
201         no longer needed, or supported.
202
203     * HTML driver:
204
205       - The HTML prologue is no longer obtained from the
206         "html-prologue" configuration file.  This configuration file
207         is no longer needed, or supported.
208
209   Command language changes:
210
211     * The following commands are new:
212
213       - GET DATA, which currently supports reading Gnumeric files and
214         text data files.  It will be extended later to read other
215         types of foreign data.
216
217       - CD, to change the current directory.
218
219       - INSERT, to execute a syntax file.
220
221       - DELETE VARIABLES, to remove variables from the active file
222         dictionary.
223
224       - ADD DOCUMENT, to add text to active file documents.
225
226       - CLOSE FILE HANDLE (a PSPP extension; see below).
227
228       - XEXPORT, a PSPP extension that is a transformation equivalent
229         to EXPORT.
230
231     * The following functions for transformation expressions are new:
232
233       - DATEDIFF, for computing the difference of two dates.
234
235       - DATESUM, for advancing a date by a specified duration.
236
237       - VALUELABEL, to obtain the value label for a value.
238
239     * PSPP now supports very long string variables (over 255 bytes
240       long).
241
242     * MATCH FILES now supports the FIRST and LAST subcommands.
243
244     * Previous versions of PSPP prohibited using commands to both read and
245       write a single file at the same time.  Now, PSPP allows this, and
246       the new version of the file atomically replaces the old version.
247
248     * The following commands are no longer available.  They will be
249       re-implemented in a later release:
250
251       - CLEAR TRANSFORMATIONS
252
253       - MATRIX DATA
254
255       - REPEATING DATA
256
257     * The PROCESS IF command, which was deprecated, has been removed.
258       You may replace any usage of it by SELECT IF following
259       TEMPORARY, which has the same effect.
260
261     * The output format for variables created by VECTOR may now be
262       specified as part of the VECTOR syntax.
263
264   "Scratch files", a new PSPP extension:
265
266     A scratch file, like a system file, consists of a dictionary and
267     any number of cases.  Small scratch files are stored in memory;
268     one that grows too large is written to disk.  By default, any file
269     handle whose name begins with # is assumed to refer to a scratch
270     file.
271
272     Scratch files can be used just about anywhere a system or portable
273     file can be used.  Also, portable files are now allowed in most
274     places that system files were allowed in previous PSPP version.
275
276     A new CLOSE FILE HANDLE command allows the storage associated with
277     scratch files to be freed.  It also allows file handles to be
278     reassigned to new files.
279
280     For more information on scratch files, refer to the "File Handles"
281     section in the PSPP manual.  For specifics of what commands now
282     allow what kinds of files to be specified, refer to the
283     documentation on those particular commands.
284
285   Data access changes:
286
287     * Binary formats and IBM/360 formats, including ASCII/EBCDIC
288       translation, are now supported.  Use FILE HANDLE to specify the
289       format of these files.
290
291     * Little-endian, big-endian, and VAX-endian formats are now
292       supported for integer binary formats when reading and writing
293       data files.  The new RIB and WIB subcommands on the SET command
294       control endianness of integer data.  The default is the host's
295       native endianness.
296
297     * IEEE 754, VAX, and IBM hexadecimal formats are now supported for
298       floating point binary formats when reading and writing data
299       files.  The new RRB and WRB subcommands on the SET command
300       control the floating point format.  The default is the host's
301       native floating point format.
302
303     * DATA LIST now supports the SKIP subcommand, to skip records at
304       the beginning of a file.  For compatibility, DATA LIST now
305       treats N format as F format for FREE and LIST format input.
306
307     * The SAVE and XSAVE commands now support the UNSELECTED,
308       PERMISSIONS, NAMES, and MAP subcommands.
309
310     * The EXPORT command has been re-implemented to obtain better
311       results.  Support for the UNSELECTED, DIGITS, and TYPE
312       subcommands has been added.
313
314     * For compatibility, PRINT now inserts a space at the beginning of
315       every output line, even lines that would otherwise be blank,
316       when OUTFILE is specified.  (The behavior of WRITE is
317       unchanged.)
318
319     * For compatibility, PRINT EJECT now inserts the digit `1' at the
320       beginning of each line that should begin a new page.
321
322     * For compatibility, WRITE now outputs the system-missing value as
323       a field filled with spaces.  Binary formats are an exception.
324       (The behavior of PRINT is unchanged.)
325
326   Documentation:
327
328     * Input and output format descriptions have been rewritten.  They
329       now precisely describe what is accepted on input and written on
330       output.
331
332     * The descriptions of the PSPP system and portable file formats
333       have been extensively revised and improved.
334
335   For developers, the build system now requires Autoconf 2.60 and
336   Automake 1.10.
337 \f
338 Changes from 0.3.0 to 0.4.0:
339
340   Changes in build dependencies:
341
342     * The GNU Scientific Library (libgsl), version 1.6 or later, is
343       now required.
344
345     * libplot from GNU plotutils is optional.  Without it, the new
346       graphing features will not work.  If you do not have it
347       installed, you must run `configure' with --without-libplot.
348
349     * libgmp2 is no longer a dependency.
350
351   Newly implemented commands and statistical features:
352
353     * EXAMINE, including its graphing features.
354
355     * FREQUENCIES now supports percentiles.
356
357     * ONEWAY.
358
359     * PERMISSIONS.
360
361     * SHOW.
362
363     * SORT CASES now sorts stably, that is, two cases with equal sort
364       criteria will be in the same relative order before and after the
365       sort.
366
367     * T-TEST (re-written).
368
369     * DATE and USE.  These commands are parsed but otherwise ignored,
370       to enhance compatibility with certain command files that invoke
371       them unnecessarily.
372
373     * VARIABLE WIDTH, VARIABLE ALIGNMENT, and VARIABLE LEVEL.  These
374       currently have no effect on PSPP output, but their values are
375       written to and read from system files and thus may affect
376       third-party software.
377
378     * SET EPOCH implemented.
379
380     * DATA LIST FREE and DATA LIST LIST now support arbitrary field
381       delimiters.
382
383     * FILE HANDLE now supports custom tab widths.
384
385   Long variable names (and other identifiers) are now supported.  Up
386   to the first 64 bytes of each identifier is significant.  PSPP now
387   reads and writes system files compatible with SPSS version 12.
388
389   New --algorithm and --syntax command line options allow
390   SPSS-compatible or enhanced modes to be selected.
391
392   Support for transformation expressions has been rewritten and
393   significantly improved.  Refer to the manual for details.
394
395   Calculation of moments (mean, standard deviation, kurtosis,
396   skewness) has been rewritten and should now be more accurate.  In
397   --algorithm=enhanced mode moments may be more accurate than SPSS in
398   some cases.
399
400   Numerous bugs have been fixed, too many to mention here.  Many new
401   tests have been added, leading to the discovery and fixing of many
402   of these bugs.
403
404   The ASCII output driver can now squeeze multiple blank lines into
405   single blank lines.
406
407   Much of the code has been rewritten and refactored.  It is now much
408   cleaner.
409
410   The FILE TYPE and REPEATING DATA commands have been disabled for
411   this release because their implementations were deemed too buggy to
412   be useful.  They will be fixed and replaced in a future release.
413
414   New pspp-mode for Emacs (in pspp-mode.el).
415
416   Added rudimentary command-line completion for interactive input.
417
418   lib/julcal and lib/dcdflib are no longer used, so they have been
419   removed.
420
421   For developers, the build system now requires Autoconf 2.58 and
422   Automake 1.7.  The included gettext has been updated to version
423   0.12.1.
424
425   Some reports state that Texinfo 4.8, the latest version, may be
426   necessary to successfully format the documentation on some systems.
427
428 Version 0.3.0 changes since 0.2.3:
429
430   Bugs fixed:
431
432     * Using alphanumeric variables in functions under AGGREGATE
433       segfaulted.  Fixed.
434
435     * Under certain circumstances, the final case would be omitted
436       from the results of an AGGREGATE operation.  Fixed.
437
438     * Undefined behavior was invoked by referencing a freed pointer
439       under certain circumstances.  Fixed.
440
441     * A wrong record size was displayed when paging the active file to
442       disk.  Fixed.
443
444     * Not having enough temporary space for sorting caused a core
445       dump.  Fixed.
446
447     * Syntax errors in function descriptions on AGGREGATE caused core
448       dumps.  Fixed.
449
450     * A null pointer was dereferenced, causing a core dump, when
451       PERCENTILES was specified on FREQUENCIES.  This fixes the
452       problem, but PSPP still doesn't calculate percentiles.
453
454     * SORT always sorted in ascending order.  Fixed.
455
456     * Some minor memory leaks in the expression parser were removed.
457
458     * Many assertions fixed for strict ANSI C compliance.
459
460   New features:
461
462     * SET ECHO ON now implemented, but turned off by default.
463
464     * PRINT specifier supported on END REPEAT.
465
466   Other:
467
468     * System libgmp2 library is used if installed instead of
469       unconditionally using the included libgmp2 subset.
470
471     * Extensive code cleanup, which continues.
472
473     * Added CORRELATIONS command parser, but not implemented.
474
475 Version 0.2.3 changes since 0.2.2:
476
477   Bugs fixed:
478
479     * SPLIT FILE with a string variable caused a core dump.  Fixed.
480
481     * Nested INCLUDEs didn't work.  Fixed.
482
483     * The MATCH FILES procedure set the values of variables not present
484       to 0.  It should have been SYSMIS.  This is now fixed.
485
486     * The REMARK command was too aggressive about skipping lines.  It
487       didn't like being the last command in a file.
488
489     * Comment parsing wasn't consistent with the rest of the code in its
490       idea of where one command ends and another starts.  This meant
491       that sometimes commands would be mysteriously ignored.  Thanks to
492       Dr. Dirk Melcher <BZN-mdksh@t-online.de> for reporting this bug.
493
494     * The TABLE subcommand on MATCH FILES worked only erratically at
495       best.  This fixes it.  Thanks to Dr. Dirk Melcher
496       <BZN-mdksh@t-online.de> for reporting this bug.
497
498     * VARIABLE LABELS rejected a slash before the first variable
499       specification, contradicting the documentation.  Thanks to Walter
500       M. Gray <graywm@northernc.on.ca> for reporting this bug.
501
502     * Because of an incorrect optimization in memory allocation,
503       CROSSTABS sometimes segfaulted when asked to output multiple
504       tables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
505       reporting this bug.
506
507     * CROSSTABS didn't display value labels for column and row
508       variables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
509       reporting this bug.
510
511     * WRITE didn't write line ends.  Fixed.  Thanks to Dr. Dirk Melcher
512       <BZN-mdksh@t-online.de> for reporting this bug.
513
514     * The TABLE subcommand on MATCH FILES worked only erratically at
515       best.  This fixes it.  Thanks to Dr. Dirk Melcher
516       <BZN-mdksh@t-online.de> for reporting this bug.
517
518     * VARIABLE LABELS rejected a slash before the first variable
519       specification, contradicting the documentation.  Thanks to Walter
520       M. Gray <graywm@northernc.on.ca> for reporting this bug.
521
522     * Because of an incorrect optimization in memory allocation,
523       CROSSTABS sometimes segfaulted when asked to output multiple
524       tables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
525       reporting this bug.
526
527     * CROSSTABS didn't display value labels for column and row
528       variables.  Thanks to Walter M. Gray <graywm@northernc.on.ca> for
529       reporting this bug.
530
531     * WRITE didn't write line ends.  Fixed.  Thanks to Dr. Dirk Melcher
532       <BZN-mdksh@t-online.de> for reporting this bug.
533
534     * MATCH FILES corrupted memory and dumped core on some syntax
535       errors.  Fixed.
536
537     * MATCH FILES should set numeric values not available to the
538       system-missing value, not to 0.  Thanks to Dr. Dirk Melcher
539       <BZN-mdksh@t-online.de> for reporting this bug.
540
541     * KEEP didn't work properly on the SAVE procedure.  Fixed.  Thanks
542       to Ralf Geschke <ralf@kuerbis.org> for reporting this bug.
543
544     * Memory leak fix.
545
546     * Some systems didn't like the way open_file was coded.  Thanks to
547       Hankin <hankin@rogue.consultco.com> for pointing this out.
548
549     * The SAVE procedure didn't save long string variables properly.
550       Fixed by this patch.  Thanks to Hankin
551       <hankin@rogue.consultco.com> for this patch.
552
553     * Minor documentation fixes for MATCH FILES.
554
555 Version 0.2.2 changes since 0.2.1:
556
557   Bugs fixed:
558
559     * Fix behavior of PRINT SPACE for negative arguments.
560
561     * Fix reading some unusual system files.
562
563     * Fix LIST problems with very long variables.  Thanks to Hankin
564       <hankin@dunno.com> for this bug report.
565
566     * Fix problems with some string format specifiers.
567
568     * Fix use of $CASENUM in expressions.  Thanks to Dirk Melcher
569       <BZN-mdksh@t-online.de> for reporting this bug.
570
571     * Additional DATA LIST FREE and DATA LIST LIST fixes.  Thanks to
572       Hankin <hankin@dunno.com> again on this one.
573
574     * Sometimes you may encounter a PSPP script that has to be
575       interpreted in interactive mode.  Now you can use the -i flag to
576       do this.
577
578     * Warnings for egcs 1.1.1 cleaned up.  (However you'll get lots of
579       `unused variable' warnings under gcc 2.7.2.3, fixing this will
580       take more effort.)
581
582     * Tests fixed.
583
584     * The files in gmp need the internationalization directory in
585       their include path.  Thanks to OKUJI Yoshinori
586       <okuji@kuicr.kyoto-u.ac.jp> for pointing this out.
587
588 Version 0.2.1 changes since 0.2.0:
589
590   Bugs fixed:
591
592     * Remember to include examples/ directory in distribution :-)
593
594     * Fixed gmp compile problems for some non-i386 architectures.
595       Thanks to Hans Olav Eggestad <olav@jordforsk.nlh.no> and others
596       for reporting this.
597
598     * DATA LIST FREE and DATA LIST LIST parsing of input files is now
599       matches the documented behavior exactly, and error messages are
600       more helpful.  Thanks to Mark H. Wood <mwood@IUPUI.Edu>.
601
602 Version 0.2.0 changes since 0.1.0:
603
604   Procedures now implemented:
605     * CROSSTABS.  Please see documentation for caveats.
606
607   Transformations and utilities now implemented:
608     * AGGREGATE
609     * APPLY DICTIONARY
610     * CLEAR TRANSFORMATIONS
611     * DISPLAY (all subcommands).
612     * ERASE
613     * FLIP
614     * EXPORT
615     * HOST
616     * IMPORT
617     * MATCH FILES
618     * MATRIX DATA
619     * NEW FILE
620     * REPEATING DATA
621
622   Support for input and output through pipes: "|command" and
623   "command|" filenames; support for special filenames "-", "stdin",
624   "stdout", "stderr".
625
626   New command-line features:
627     * New option --testing-mode: Invoke heuristics to assist testing.
628     * New option --safer, -s: Don't allow certain unsafe operations.
629     * New option --command=CMD, -c CMD: Perform literal command CMD.
630     * rc file ~/.pspp/rc is executed before any other files.
631     * Now multiple syntax files can be specified.
632
633   Operator LAG is now implemented.
634
635   Added missing FILE subcommand to REREAD.
636
637   Table output manager completely rewritten.
638
639   Device configuration file syntax changed.  You will need to
640   reinstall your `devices' file.
641
642   New output driver for HTML.
643
644   PostScript driver and prologue simplified.
645
646   Many bugs fixed.  General source-code cleanup.
647
648   Added Texinfo documentation for:
649     * PSPP system file format
650     * PSPP portable file format
651     * How to write input for q2c parser generator
652     * HTML driver
653
654   PSPP language is now fully documented.  Please report any
655   inaccuracies or omissions in the documentation.
656
657 Changes for version 0.1.0:
658
659   First public release.  For changes from unreleased development
660   versions, please see ONEWS.
661 \f
662 ----------------------------------------------------------------------
663 Copyright information:
664
665 Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
666
667    Permission is granted to anyone to make or distribute verbatim
668    copies of this document as received, in any medium, provided that
669    the copyright notice and this permission notice are preserved, thus
670    giving the recipient permission to redistribute in turn.
671
672    Permission is granted to distribute modified versions of this
673    document, or of portions of it, under the above conditions,
674    provided also that they carry prominent notices stating who last
675    changed them.
676 \f
677 Local variables:
678 version-control: never
679 mode: indented-text
680 end: