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