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