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