3086444287fc0de8346f67808656a37a51ac4be0
[pspp-builds.git] / src / data / ChangeLog
1 Thu Sep 21 07:00:30 2006  Ben Pfaff  <blp@gnu.org>
2
3         * variable.c: (width_to_bytes) Rephrase code for clarify.
4
5 Sun Jul 16 19:52:03 2006  Ben Pfaff  <blp@gnu.org>
6
7         * format.c: (fmt_type_from_string) New function.
8         (fmt_to_string) Include decimals in output if the format has
9         decimals, even if the format type does not.  This way, we can
10         accurately reproduce incorrect formats in user output.
11         (check_common_specifier) Make the check for a bad format type an
12         assertion, so we get bug reports if they show up.  Fix message.
13         Check for decimal places with a format type that doesn't allow
14         them.
15         (check_input_specifier) Remove check for FMT_X, which has been
16         deleted.
17         (check_output_specifier) Ditto. 
18
19         * format.def: Remove FMT_T, FMT_X, FMT_DESCEND, FMT_NEWREC.
20
21         * format.h: (macro FMT_TYPE_LEN_MAX) New macro.
22         (struct fmt_desc) Use FMT_TYPE_LEN_MAX in definition.
23         (enum fmt_parse_flags) Removed.
24
25 Mon Jul 17 18:26:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
26
27         * casefile.c casefile.h: Converted to  an abstract base class.
28         * casefile-private.h fastfile.c fastfile.h: New files.
29         * automake.mk procedure.c scratch-writer.c storage-stream.c
30
31 Wed Jul 12 21:02:26 2006  Ben Pfaff  <blp@gnu.org>
32
33         * procedure.c (internal_procedure): Create sink_case with only as
34         many values as the compacted dictionary.
35
36 Wed Jul 12 21:01:00 2006  Ben Pfaff  <blp@gnu.org>
37
38         Remove "debugging" code that caused plenty of false positives and
39         no true positives.
40         
41         * case.h (struct ccase): [DEBUGGING] Remove `this' member.
42
43         * case.c: Remove all references to `this' member.
44
45 Thu Jul  6 19:09:53 2006  Ben Pfaff  <blp@gnu.org>
46
47         Fix link error noted by Jason Stover.
48         
49         * storage-stream.c: Include <assert.h>.
50
51 Tue Jul  4 08:47:35 2006  Ben Pfaff  <blp@gnu.org>
52
53         Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
54         ALL) and additional underlying system file issues.
55
56         Thanks to John Darrington for review.
57
58         First problem: var_hash points to variables not owned by the
59         sys-file-reader, which the caller may free or modify.  Use an
60         array of sfm_vars instead, as done earlier (e.g. CVS version
61         1.12).
62         
63         * sys-file-reader.c (struct sfm_reader): Remove var_hash, svars
64         members and remove all code that references it.  Add vars, var_cnt
65         members.  Remove fix_specials member, which was unused.
66         (struct sfm_var) Remove name member, which was unused.
67         (sfm_close_reader) Free vars member instead of var_hash.
68         (compare_var_shortnames) Removed.
69         (hash_var_shortname) Removed.
70         (sfm_open_reader) Fill out vars array.
71         (compare_var_index) Removed.
72         (sfm_read_case) Use vars instead of var_hash.
73         
74         Second problem: we're confused about when we actually have very
75         long strings, causing us to choose incorrectly between slow path
76         and fast path in sfm_read_case.
77
78         * sys-file-reader.c: (sfm_open_reader) Only mark has_vls if we
79         have very long strings, not when we have long variable names,
80         which is an unrelated feature.
81
82 Tue Jun 27 12:06:49 2006  Ben Pfaff  <blp@gnu.org>
83
84         * variable.h: Move var_set and variable parsing declarations to
85         new header, src/language/lexer/variable-parser.h.  Modified lots
86         of files to include the new header.
87
88 Sun Jun 25 22:39:32 2006  Ben Pfaff  <blp@gnu.org>
89
90         * value-labels.c (value_to_string): When there's no value label,
91         format the variable according to its print format, instead of
92         always effectively using A or F format.
93
94 Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
95
96         * casefile.c (casefile_get_random_reader): Nasty hack to get around 
97         the mode assertion.
98
99         * format.c: Removed tortological assertion.
100
101 Fri Jun  9 12:20:09 2006  Ben Pfaff  <blp@gnu.org>
102
103         Reform string library.
104         
105         * file-name.c (fn_interp_vars): Change interface to take a
106         substring as input.  Updated all users.
107         
108 Fri Jun  9 12:11:24 2006  Ben Pfaff  <blp@gnu.org>
109
110         * format.c (measure_is_valid): Really return false when m >=
111         n_MEASURES.
112
113 Tue Jun  6 18:46:26 2006  Ben Pfaff  <blp@gnu.org>
114
115         Implement random access to casefiles, for use in GUI.
116         
117         * casefile.c: (struct casereader) Add `random', `file_ofs',
118         `buffer_ofs' members.
119         (casefile_get_random_reader) New function.
120         (read_open_file) Break part into new function
121         seek_and_fill_buffer().
122         (fill_buffer) Update buffer_ofs, file_ofs.
123         (casereader_seek) New function.
124
125 Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
126
127         * settings.c: Added call to i18n{done, init}.
128
129 Tue May  9 21:09:17 2006  Ben Pfaff  <blp@gnu.org>
130
131         * procedure.h: Add WARN_UNUSED_RESULT to procedure function
132         prototypes.
133
134 Tue May  9 21:08:05 2006  Ben Pfaff  <blp@gnu.org>
135
136         * casefile.c: Convert many uses of `int' to `bool'.
137
138 Sat May  6 22:49:43 2006  Ben Pfaff  <blp@gnu.org>
139
140         * transformations.c (trns_chain_destroy): Destroy chain's trns
141         member, to fix memory leak.
142
143 Sat May  6 22:48:30 2006  Ben Pfaff  <blp@gnu.org>
144
145         * storage-stream.c (storage_source_decapsulate): Destroy case
146         source to fix memory leak.
147
148 Sat May  6 22:46:47 2006  Ben Pfaff  <blp@gnu.org>
149
150         * scratch-reader.c (scratch_reader_read_case): Copy into existing
151         case passed as argument instead of initializing the argument as a
152         case.  Fixes memory leak that showed up in
153         tests/command/aggregate.sh with scratch files.
154
155 Sat May  6 22:45:55 2006  Ben Pfaff  <blp@gnu.org>
156
157         * procedure.c (proc_done): Destroy default_dict, to fix memory
158         leak.
159
160 Sat May  6 22:44:44 2006  Ben Pfaff  <blp@gnu.org>
161
162         Simplify procedure_with_splits().
163         
164         * procedure.c (struct split_aux_data): Removed case_count member.
165         (procedure_with_splits) Don't initialize case_count.
166         (split_procedure_case_func) Check whether prev_case is null
167         instead of case_count.
168         (split_procedure_end_func) Ditto.
169
170 Sat May  6 22:42:23 2006  Ben Pfaff  <blp@gnu.org>
171
172         * case.c (case_move): Do nothing if dst and src are the same
173         object.
174         (case_try_create) Merge two similar cases.
175         (case_copy) Unshare only if data must be actually copied.
176
177 Sun May  7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
178
179         * data-in.c data-out.c dictionary.c sys-file-reader.c
180         sys-file-writer.c variable.c variable.h:  Reworked very long string
181         support for better encapsulation.
182
183 Sat May  6 19:02:00 2006  Ben Pfaff  <blp@gnu.org>
184
185         * value-labels.c (val_labs_can_set_width): New function.
186         (val_labs_set_width) Clear labels if increasing width to long
187         string.
188         (val_labs_destroy) Remove unneeded test for null.
189         
190 Sat May  6 16:14:08 2006  Ben Pfaff  <blp@gnu.org>
191
192         * value-labels.h: Remove unneeded dependency on variable.h.
193
194 Sat May  6 15:58:36 2006  Ben Pfaff  <blp@gnu.org>
195
196         Get rid of `char *c' member in union value, for cleanliness.
197         
198         * value.h: (union value) Remove `c' member.
199
200 Sat May  6 15:36:59 2006  Ben Pfaff  <blp@gnu.org>
201
202         Make dictionary compacting functions a little more general.
203         
204         * sys-file-writer.c (sfm_open_writer): Use
205         dict_compacting_would_change().
206         (does_dict_need_translation) Removed.
207
208 Sat May  6 15:35:42 2006  Ben Pfaff  <blp@gnu.org>
209
210         Make dictionary compacting functions a little more general.
211         
212         * dictionary.c (dict_needs_compaction): Rename
213         dict_compacting_would_shrink().  Update all callers.
214         (dict_compacting_would_change) New function.
215         
216 Sat May  6 14:25:49 2006  Ben Pfaff  <blp@gnu.org>
217
218         * sys-file-writer.c: (does_dict_need_translation) Fix bug:
219         inverted return value (!).
220
221 Sat May  6 13:37:52 2006  Ben Pfaff  <blp@gnu.org>
222
223         Continue reforming procedure execution.  
224
225         * procedure.c: Search and replace "vfm" by "proc".  Notably:
226         (static var vfm_source) Rename proc_source.  Update all
227         references.
228         (static var vfm_sink) Rename proc_sink.  Update all references.
229         
230 Sat May  6 12:38:55 2006  Ben Pfaff  <blp@gnu.org>
231
232         Continue reforming procedure execution.  In this phase, remove
233         PROCESS IF, which was deprecated anyway and can be easily
234         simulated with TEMPORARY followed by SELECT IF.
235
236         * procedure.c: (open_active_file) Don't call
237         add_process_if_trns().
238         (discard_variables) Get rid of redundant call to
239         proc_cancel_all_transformations().
240         (add_process_if_trns) Removed.
241         (process_if_trns_proc) Removed.
242         (process_if_trns_free) Removed.
243
244 Sat May  6 10:58:05 2006  Ben Pfaff  <blp@gnu.org>
245
246         Continue reforming procedure execution.  In this phase, add
247         `const' to the case passed to procedure()'s callback.
248
249         Updated all users of procedure() as well.
250         
251         * procedure.c: (struct write_case_data) Add "const" to ccase
252         parameter for case_func member.
253         (procedure) Add "const" to ccase parameter for proc_func
254         parameter.
255         (multipass_case_func) Make ccase parameter const.
256         (internal_procedure) Add "const" to ccase parameter for case_func
257         parameter.
258         (split_procedure_case_func) Make ccase parameter const.
259         (multipass_split_case_func) Make ccase parameter const.
260         
261 Sat May  6 10:30:33 2006  Ben Pfaff  <blp@gnu.org>
262
263         Continue reforming procedure execution.  In this phase, get rid of
264         the output code for SPLIT FILE groups in procedure.c, which really
265         shouldn't be doing any output.  Move it into the individual
266         procedures instead.  This also adds some flexibility.
267
268         Updated many users of procedure_with_splits() and
269         multipass_procedure_with_splits() to call
270         output_split_file_values() and to deal with increased use of
271         const.
272
273         * procedure.c: (struct split_aux_data) Add "const struct ccase *"
274         parameter to begin_func member.
275         (procedure_with_splits) Add "const struct ccase *" parameter to
276         begin_func parameter.  Make ccase parameter const in proc_func
277         parameter.
278         (split_procedure_case_func) Don't dump split file group.  Pass
279         case to begin_func.
280         (dump_splits) Moved to language/dictionary/split-file.c as
281         output_split_file_values().
282         (struct multipass_split_aux_data) Add "const struct ccase *"
283         parameter to split_func member.
284         (multipass_procedure_with_splits) Add "const struct ccase *"
285         parameter to split_func parameter.
286         (multipass_split_case_func) Save new SPLIT FILE case before
287         outputting case.
288         (multipass_split_output) Pass saved SPLIT FILE case to split_func.
289         
290 Fri May  5 22:48:50 2006  Ben Pfaff  <blp@gnu.org>
291
292         Continue reforming procedure execution.  Change
293         internal_procedure() so that it calls open_active_file() and
294         close_active_file(), which isolates most of the actual procedure
295         functionality.
296
297         * procedure.c: (struct write_case_data) Rename `proc_func' member
298         to `case_func' and update all references.
299         (procedure) Rewrite as one-line wrapper around
300         internal_procedure().
301         (struct multipass_aux_data) New.
302         (multipass_callback) Renamed multipass_case_func().  Use struct
303         multipass_aux_data as auxiliary data.
304         (multipass_end_func) New function.
305         (multipass_procedure) Rewrite as wrapper for internal_procedure()
306         that uses multipass_case_func, multipass_end_func.
307         (internal_procedure) Add `end_func' argument.  Move optimization
308         of trivial case in here.  Move call to open_active_file() and
309         close_active_file() in here.  Now assert that vfm_source is
310         non-null.
311         (procedure_with_splits_callback) Rename
312         split_procedure_case_func().
313         (split_procedure_end_func) New function.
314         (multipass_split_callback) Rename multipass_split_case_func.
315         (multipass_split_end_func) New function.
316         (discard_variables) No need to test for nonnull vfm_source.
317
318 Fri May  5 21:34:02 2006  Ben Pfaff  <blp@gnu.org>
319
320         Continue reforming procedure execution.  Get rid of unused member.
321
322         * procedure.c: (struct write_case_data) Remove `cases_analyzed'
323         member.
324         (write_case) Don't increment cases_analyzed.
325
326 Thu May  4 21:50:11 2006  Ben Pfaff  <blp@gnu.org>
327
328         Continue reforming procedure execution.  In this phase, move
329         procedure.c and procedure.h from src to src/data.  Update
330         makefiles and #includes accordingly.
331
332         * procedure.c: Moved here from src/.
333
334         * procedure.h: Moved here from src/.
335
336 Wed May  3 22:42:12 2006  Ben Pfaff  <blp@gnu.org>
337
338         Continue reforming procedure execution.  In this phase, get rid of
339         many global variables, consolidating procedure execution in
340         procedure.c.  Encapsulate transformations in new "struct
341         trns_chain".  Also, change implementation of N OF CASES, FILTER,
342         and PROCESS IF from special cases to transformations.
343          
344         * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
345         transformations.h.
346
347         * dictionary.c: (global variable default_dict) Move to
348         src/procedure.c.
349
350         * variable.h: (TRNS_*) Move to transformations.h.
351         (struct transformation) Move to transformations.c.
352
353 Thu May  4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
354
355         * sys-file-reader.c: Fixed invalid read problems.
356
357 Tue May  2 15:57:10 2006  Ben Pfaff  <blp@gnu.org>
358
359         * storage-stream.c: Add missing function comments.
360
361 Tue May  2 15:50:21 2006  Ben Pfaff  <blp@gnu.org>
362
363         Continue reforming procedure execution.  In this phase, add some
364         new, needed functionality to storage-stream.
365
366         * storage-stream.c: (storage_source_decapsulate) New function.
367
368 Tue May  2 15:43:36 2006  Ben Pfaff  <blp@gnu.org>
369
370         * variable.c (width_to_bytes): Declarations must precede
371         statements for C90 compliance.
372
373 Tue May  2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
374
375         * data-out.c, data-in.c, variable.c, variable.h: New functions 
376         copy_mangle and copy_demangle for reading/writing cases; emulates the 
377         way SPSS deals with strings > 255 bytes.
378
379         * sys-file-reader.c sys-file-writer.c: Added support for Record 7, 
380         subtype 14 needed for strings longer than 255 bytes.
381
382         * dictionary.c, format.def, value.c : Updated to use MAX_STRING 
383         instead of literal values. Also fixed some constness issues.
384
385         * format.h: Constness
386
387         * sfm-private.h: Renamed the case_size identifier, since I discovered 
388         that SPSS's respect for this variable is very nominal.
389
390 Mon May  1 15:45:42 2006  Ben Pfaff  <blp@gnu.org>
391
392         Change case limit type from int to size_t.
393
394         * dictionary.c: (struct dictionary) Change type of case_limit
395         member.
396         (dict_get_case_limit) Change return type.
397         (dict_set_case_limit) Change parameter type.
398
399 Wed Apr 26 20:01:19 2006  Ben Pfaff  <blp@gnu.org>
400
401         * variable.h: (struct variable) Rename `reinit' member as `leave'
402         and invert sense.  Fix up all references.
403
404 Wed Apr 26 19:39:28 2006  Ben Pfaff  <blp@gnu.org>
405
406         Continue reforming procedure execution.  In this phase, break
407         procedure.c into multiple files.
408         
409         * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
410
411         * case-sink.c: New file.
412
413         * case-sink.h: New file.
414         
415         * case-source.c: New file.
416
417         * case-source.h: New file.
418         
419         * storage-stream.c: New file.
420
421         * storage-stream.h: New file.
422
423 Wed Apr 26 14:55:19 2006  Ben Pfaff  <blp@gnu.org>
424
425         * variable.h: (struct variable) Remove `init' member and all
426         references to it from other files.  It was initialized in several
427         places, but nothing really ever used it for anything worthwhile.
428         Thanks to Jason Stover for pointing out how confusing this
429         member is.
430
431 Sun Apr 23 22:04:45 2006  Ben Pfaff  <blp@gnu.org>
432
433         Continue reforming error message support.  In this phase, get rid
434         of message "titles" and put the message text in `struct error'.
435         Now `struct error' encapsulates a message more properly.
436         
437         * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
438         Format message ourselves.
439
440         * data-in.c: (vdls_error) Ditto.
441
442         * por-file-reader.c: (error) Ditto.
443
444         * sys-file-reader.c: (corrupt_msg) Ditto.
445
446 Sun Apr 16 18:49:51 2006  Ben Pfaff  <blp@gnu.org>
447
448         GNU standards require "file name" instead of "filename" in
449         documentation.  It's nice for our code to follow the convention
450         too.
451         
452         * casefile.c: (struct casefile) Rename `filename' member to
453         `file_name'.  Updated all references.
454
455         * file-name.c: [!unix] (struct file_identity) Rename
456         normalized_filename member to normalized_file_name.  Updated all
457         references.
458
459 Sun Apr 16 18:35:33 2006  Ben Pfaff  <blp@gnu.org>
460
461         We don't really support anything but Unix-like environments well,
462         so we might as well de-obfuscate by writing directory and path
463         separators explicitly.
464
465         * file-name.h: (macro DIR_SEPARATOR) Removed.  Changed all usages
466         to just '/'.
467         (macro PATH_SEPARATOR) Removed.  Changed all usages to just ':'.
468         (macro DIR_SEPARATOR_STRING) Removed.  Changed all usages to just
469         "/".
470         (macro PATH_SEPARATOR_STRING) Removed.  Changed all usages to just
471         ":"
472
473 Sun Apr 16 18:28:35 2006  Ben Pfaff  <blp@gnu.org>
474
475         GNU standards require "file name" instead of "filename" in
476         documentation.  It's nice for our code to follow the convention
477         too.
478         
479         * filename.c: Rename to file-name.c.
480
481         * filename.h: Rename to file-name.h.  Update all inclusions.
482         Update header guards.
483
484         * automake.mk: Update file names.
485
486 Sun Apr 16 16:42:47 2006  Ben Pfaff  <blp@gnu.org>
487
488         * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
489         updated.
490         (fn_basename) Removed (dead code).
491         (fn_absolute_p) Renamed fn_is_absolute(), all references updated.
492         (fn_special_p) Renamed fn_is_special(), all references updated.
493         (fn_exists_p) Renamed fn_exists(), all references updated.
494
495 Sun Apr 16 16:33:58 2006  Ben Pfaff  <blp@gnu.org>
496
497         * filename.c: (fn_tilde_expand) Rewrite for cleaner code.  
498         Also, now it only tilde-expands file names, not paths.
499         (fn_search_path) Tilde-expand one directory at a time.
500
501 Sun Apr 16 16:28:06 2006  Ben Pfaff  <blp@gnu.org>
502
503         * filename.c: (fn_search_path) rewrite for cleaner code.  Also,
504         get rid of non-Unixlike version of the code, which has probably
505         never been tested.
506         (fn_prepend_dir) Removed (dead code).
507
508         * filename.h: (macro DIR_SEPARATOR_STRING) New.
509         (macro PATH_SEPARATOR_STRING) New.
510 Sun Apr 16 16:05:28 2006  Ben Pfaff  <blp@gnu.org>
511
512         Continue reforming error message support.  In this phase, we get
513         rid of VM() and the other msg() support for "verbosity", replacing
514         it by a new function verbose_msg().
515
516         * filename.c: (fn_search_path) Use verbose_msg() instead of
517         msg(VM(), ...).  
518
519 Sat Apr 15 19:53:19 2006  Ben Pfaff  <blp@gnu.org>
520
521         * sfm-private.h: Get rid of #defines after #error, which makes no
522         sense.
523
524 Sat Apr 15 19:48:57 2006  Ben Pfaff  <blp@gnu.org>
525
526         Get rid of our own int32 type in favor of the standard int32_t
527         type.
528         
529         * sfm-private.h: (int32 macro) Don't define this anymore.  Do
530         include <stdint.h>.
531
532         * sys-file-reader.c: Use int32_t instead of int32 throughout.
533         
534         * sys-file-writer.c: Use int32_t instead of int32 throughout.
535
536 Sat Apr 15 19:36:47 2006  Ben Pfaff  <blp@gnu.org>
537
538         Remove ill-considered file routines that are no longer used.
539         
540         * filename.c: (fn_open_ext) Removed.
541         (fn_close_ext) Removed.
542
543         * filename.h: (struct file_ext) Removed.
544
545 Mon Apr  3 13:22:39 2006  Ben Pfaff  <blp@gnu.org>
546
547         * variable.c (var_is_valid_name): Move declarations before code
548         for C90 compliance.
549
550 Tue Apr  4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
551
552         * filename.ch (fn_interp_vars): Fixed small buglet.
553
554 Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
555         
556         * filename.[ch] (fn_interp_vars): Changed the signature and semantics
557         so as to modify the string inline.   Thus makeing it easier to
558         destroy the results when no longer needed.
559         
560 2006-03-25  Jason Stover  <jhs@math.gcsu.edu>
561
562         * category.c (cat_stored_values_destroy): Fixed memory leak.
563
564 Fri Mar 24 18:15:41 2006  Ben Pfaff  <blp@gnu.org>
565
566         Add some missing frees.  Thanks to John Darrington for reporting
567         these.
568
569         * any-writer.c (any_writer_close): Free writer.
570
571         * any-reader.c (any_reader_close): Free reader.
572
573 Mon Mar 20 16:33:53 2006  Ben Pfaff  <blp@gnu.org>
574
575         * por-file-reader.c: (error) Mark as NO_RETURN.
576
577 Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
578
579         * settings.c: Changed default value of scompress to true.
580
581 Sat Mar  4 13:22:51 2006  Ben Pfaff  <blp@gnu.org>
582
583         * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
584
585         * value.h: Remove check on MAX_SHORT_STRING, which I don't think
586         really applies.
587
588         * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
589         here from pref.h.orig.
590
591 Sat Mar  4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
592
593         * sys-file-reader.c: Fixed bug reading compressed files.
594
595 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
596
597         * Numerous renames.  See src/ChangeLog for details.
598         
599         * Moved files from src directory