X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2FChangeLog;h=45564a95debc89a67597c56b5f5bbc52c6e67b62;hb=5da5a98055ad574120c3e3922af097411a0dcf3a;hp=7c254f1496b18467fc210236d85ed8e2aa66c846;hpb=ecd26ec19e9f8a58079a1c5fa06b39484787ab7e;p=pspp-builds.git diff --git a/src/data/ChangeLog b/src/data/ChangeLog index 7c254f14..45564a95 100644 --- a/src/data/ChangeLog +++ b/src/data/ChangeLog @@ -1,3 +1,453 @@ +2007-06-10 Ben Pfaff + + * casereader-filter.c (casereader_filter_destroy): Make sure to + write all the remaining excluded cases to the casewriter, if any. + + * caseinit.c (init_list_destroy): Rewrite. + (init_list_clear): Ditto. + + * casegrouper.c (casegrouper_get_next_group): Always set *reader + to null when returning false. + +2007-06-06 Ben Pfaff + + Actually implement the new procedure code and adapt all of its + clients to match. Also adapt all of the other case sources and + sinks in the tree and their clients to use the + casereader/casewriter infrastructure. + + * automake.mk: Add and remove files. + + * any-reader.c: Change into a casereader. + * por-file-reader.c: Ditto. + * scratch-reader.c: Ditto. + * sys-file-reader.c: Ditto. + + * any-writer.c: Change into a casewriter. + * por-file-writer.c: Ditto. + * scratch-writer.c: Ditto. + * sys-file-writer.c: Ditto. + + * procedure.c: Change to use casereader, casewriter, caseinit, and + other new infrastructure. + + * scratch-handle.c: Adapt to new infrastructure. + + * case-sink.c: Removed, now dead code. + * case-sink.h: Ditto. + * case-source.c: Ditto. + * case-source.h: Ditto. + * casefile-factory.c: Ditto. + * casefile-private.h: Ditto. + * casefile.c: Ditto. + * casefile.h: Ditto. + * casefilter.c: Ditto. + * casefilter.h: Ditto. + * fastfile.c: Ditto. + * fastfile.h: Ditto. + * fastfile-factory.c: Ditto. + * fastfile-factory.h: Ditto. + * storage-stream.c: Ditto. + * storage-stream.h: Ditto. + +2007-06-06 Ben Pfaff + + Add datasheet code. + + * automake.mk: Add new files. + + * datasheet.c: New file. + + * datasheet.h: New file. + +2007-06-06 Ben Pfaff + + Until now, the procedure code has provided a case to the + case_source, which has filled in the data values that come from + the active file. "Left" data values that don't come from the + active file naturally stay the same from case to case, because the + procedure code keeps using that same case. + + One of the compromises that comes with the new procedure code is + that the active file allocates and provides its own case, which + the procedure code then has to resize to provide room for any + other variables that should go in the case and then fill in the + values of "left" variables. Then, when we're done with that case, + we have to save the values of "left" variables to copy into the + next case read from the active file. + + The caseinit code helps with this. + + * automake.mk: Add new files. + + * caseinit.c: New file. + + * caseinit.h: New file. + +2007-06-06 Ben Pfaff + + * value.h (value_cnt_from_width): New function. + + * variable.c (var_get_value_cnt): Use new function. + +2007-06-06 Ben Pfaff + + Add casegrouper, to allow cases read from a given casereader to be + broken into groups, each of which has its own casereader. + Generally cases are grouped based on having equal values for some + set of variables. + + * automake.mk: Add new files. + + * casegrouper.c: New file. + + * casegrouper.h: New file. + +2007-06-06 Ben Pfaff + + Add interface to lexicographical ordering of cases. + + * automake.mk: Add new files. + + * case-ordering.c: New file. + + * case-ordering.h: New file. + +2007-06-06 Ben Pfaff + + Add casereaders and casewriters, the basis of the new data processing + implementation. A casereader is a uniform interface to reading cases + from a data source; a casewriter is a uniform interface to writing + cases to a data sink. + + * automake.mk: Add new files. + + * casereader-filter.c: New file. + + * casereader-provider.h: New file. + + * casereader-translator.c: New file. + + * casereader.c: New file. + + * casereader.h: New file. + + * casewriter-provider.h: New file. + + * casewriter-translator.c: New file. + + * casewriter.c: New file. + + * casewriter.h: New file. + +2007-06-06 Ben Pfaff + + "casewindow" data structure that extends the deque (from libpspp) + of cases with the ability to dump cases to disk if we get too many + of them in memory. + + * automake.mk: Add new files. + + * casewindow.c: New file. + + * casewindow.h: New file. + +2007-06-06 Ben Pfaff + + sparse_cases data structure that augments a sparse_array of cases + with the ability to dump cases to disk if we get too many cases in + memory. + + * automake.mk: Add new files. + + * sparse-cases.c: New file. + + * sparse-cases.h: New file. + +2007-06-06 Ben Pfaff + + Adds a low-level on-disk case array data structure. + + * automake.mk: Add new files. + + * case-tmpfile.c: New file. + + * case-tmpfile.h: New file. + +2007-06-06 Ben Pfaff + + In a couple of places we calculate the maximum number of cases to + keep in memory based on the user-defined workspace. Enable + centralizing the calculation through a new function. + + * settings.c (get_workspace_cases): New function. + +2007-06-06 Ben Pfaff + + The casenumber type is defined in transformations.h, but case.h is + a more sensible place. Move it. + + * case.h (CASENUMBER_MAX): New macro. + (typedef casenumber): Move here, from transformations.h. + +2007-06-03 Ben Pfaff + + Slightly generalize case_to_values and case_from_values functions. + + * case.c (case_to_values): Rename case_copy_out, change interface. + (case_from_values): Rename case_copy_in, change interface. + + * fastfile.c (fastfilereader_get_next_case): Update caller. + (write_case_to_disk): Ditto. + +2007-06-02 Ben Pfaff + + Clean up after a forgotten part of patch #5829. + + * casedeque.h: Remove unused file. + + * automake.mk: Remove casedeque.h from sources. + +2007-05-10 Jason Stover + + * category.c: Removed redundant #include + +2007-05-06 Ben Pfaff + + Abstract the documents within a dictionary a little better. + Thanks to John Darrington for suggestion, initial version, and + review. Patch #5917. + + * dictionary.c (struct dictionary): Change `documents' member from + char * to struct string. + (dict_clear): Destroy struct string. + (dict_get_documents): Convert struct string to char *. + (dict_set_documents): Set struct string. Pad to 80-character + multiple. + (dict_clear_documents): New function. + (dict_add_document_line): New function. + (dict_get_document_line_cnt): New function. + (dict_get_document_line): New function. + + * dictionary.h (macro DOC_LINE_LENGTH): New macro. + + * sys-file-reader.c (read_documents): Use new document functions. + +2007-04-19 John Darrington + + * sys-file-reader.c: When reading a system file which has no + long name table, automatically create one where the long names + are the lower case versions of the short names. + +2007-04-22 Ben Pfaff + + * dictionary.c (dict_set_split_vars): dict_destroy expects that + dict_clear will free most data related to the dictionary. + dict_clear does a decent job, except that dict_set_split_vars on + some systems won't actually free the dict's "split" member. + Instead, it'll allocate a 1-byte region. Fix this. + + * value.c (value_copy): New function. + (value_set_missing): Ditto. + +2007-04-22 John Darrington + + * Deleted existing category.h and moved cat-routines.h into + category.h Encapsulated struct cat_vals better. + +2007-04-19 John Darrington + + * sys-file-reader.c: When reading a system file which has no + long name table, automatically create one where the long names + are the lower case versions of the short names. + +2007-04-16 John Darrington + + * sys-file-reader.c: Some versions of Other Software seem to + produce system files with string variables' measure set to + zero. We'll assume these are supposed to be nominal variables. + +2007-03-30 Ben Pfaff + + * procedure.c: Adapt to new deque data structure. + +Mon Feb 19 10:53:21 2007 John McCabe-Dansted + Ben Pfaff + + * file-name.c: Mingw compatibility fixes. + (fn_search_path): Use ISSLASH instead of comparing against '/' + directly. + (fn_dir_name): Use dir_name from gnulib. + (fn_is_absolute): Use IS_ABSOLUTE_FILE_NAME from gnulib. + (fn_get_identity): Use GetFullPathName instead of canonicalize + from gnulib, because the latter does not fully support + Windows-style path names. Use this implementation based on the + detected presence of Windows instead of the absence of Unix, since + the new implementation is Windows-specific. + (fn_compare_file_identities): In Windows implementation, compare + names case-insensitively. + +Sun Feb 18 13:28:02 2007 Ben Pfaff + + * make-file.c: Don't include mkstemp.h, because gnulib now causes + to have the same effect. + +Sun Feb 18 11:20:24 2007 Ben Pfaff + + * por-file-reader.c: Add missing _() around messages. + +Sun Feb 11 20:44:13 2007 Ben Pfaff + + * make-file.c: Include "mkstemp.h", without which linking on + mingw32 fails. + +Thu Feb 8 14:59:05 2007 Ben Pfaff + + Reduce platform dependence. + + * file-name.c (fn_tilde_expand): Removed, and removed calls to it. + Everywhere we using this, we really should have just depended on + the shell to expand tildes. + (fn_search_path): Simplify, given that we don't do tilde expansion + any longer. + (fn_normalize): Removed. Caller changed to use the canonicalize + module from gnulib. + (fn_get_cwd): Removed. Only user was fn_normalize. + (fn_is_absolute): Really only test for absolute names. + (fn_is_special): Use pipe files if HAVE_POPEN, not if we're in + unix. + (fn_readlink): Removed, as it was only used fn_normalize. + (fn_exists): Assume the stat function is available; gnulib does. + (fn_open): Use pipe files if HAVE_POPEN, not if we're in unix. + +Sat Feb 3 21:52:17 2007 Ben Pfaff + + * dictionary.c (dict_create_vector_assert): New function. + +Wed Feb 7 21:25:15 2007 Ben Pfaff + + * file-name.c (fn_normalize): Correct name of function + fn_is_special. Thanks to John McCabe-Dansted + for pointing this out. + +Thu Feb 1 16:53:37 2007 Ben Pfaff + + We are using a single member in struct file_handle, the "name" + field, for more than one purpose. When it begins with '"', it's a + file name; otherwise, it's a token that can be used to identify + it. When that assertion fires, it's because we searched for the + name case-sensitively as a file name (so that there was no match), + and then we try to insert it case-insensitively as a token, which + fails because duplicates aren't allowed. + + Solution: break the two purposes into two separate fields. This + fixes the problem and likely makes the code easier to read too. + + Fixes bug #18922. Thanks to John Darrington for bug report and + review. + + * file-handle-def.c (struct file_handle): New `id' member. + (fh_from_name): Rename fh_from_id. Update all callers. + (create_handle): New `id' parameter. Update all callers. + (fh_create_file): Ditto. + (fh_get_id): New function. + +Mon Jan 15 16:18:10 2007 Ben Pfaff + + * case.c (case_is_null): Change return type to bool. + +Mon Jan 15 10:57:28 2007 Ben Pfaff + + Add debugging code. + + * case.c (case_clone) [DEBUGGING]: When debugging, don't use + reference counting to share data. This makes it easy for + valgrind, etc. to find accesses to cases that have been destroyed + but have been kept around by another user's ref-count. This often + happens when the data set is small enough to find in memory; if a + bigger data set that would overflow to disk were used, then data + corruption would occur. + +Mon Jan 15 10:55:18 2007 Ben Pfaff + + Simplify code. + + * case.c (case_unshare): Make it check internally whether the + ref_cnt is greater than 1, so that the callers don't have to. + Update callers not to check. + +Mon Jan 15 10:53:01 2007 Ben Pfaff + + Before, I was thinking that I might want to get rid of reference + counting at some point. Now, I'm pretty sure that it's here to + stay. Thus, because we have to store the value_cnt anyway for + reference-counted cases, we might as well expose it to users. + + * case.c (case_get_value_cnt): New function. + (case_resize): Drop OLD_CNT argument. Update all callers. Only + resize case if its size actually changed. + + * casefile.c (casefile_append_xfer): Use case_get_value_cnt + instead of peeking inside struct case directly. + (casefile_append): Ditto. + +Mon Jan 15 10:50:22 2007 Ben Pfaff + + Get rid of the inlines for the case functions, which made the + header file hard to read. (Also, in testing with "-O2 -DNDEBUG", + the inlines didn't speed up "make check" at all, which is not a + perfect benchmark but seems indicative.) + + * case.c: Remove #ifdef DEBUGGING...#endif around many function + definitions. Remove some assertions on nonnull pointers that were + redundant with a pointer dereference soon after in the function. + Also: + (struct case_data): Move definition here from case.h. + (case_data): Ditto. + (case_num): Ditto. + (case_str): Ditto. + (case_data_wr): Ditto. + +Sun Jan 14 21:41:12 2007 Ben Pfaff + + * automake.mk: Add casedeque.h to sources. + + * casedeque.h: New file. + + * procedure.c: (struct dataset) Change lag_count, lag_head, + lag_queue member into single struct casedeque member. Update all + users to use the casedeque instead. + (lag_case) Removed. + +Sun Jan 14 21:43:12 2007 Ben Pfaff + + * procedure.c: Simplify lagged cases interface. Updated all + clients--well, the only client--to use the simplified interface. + (dataset_n_lag) Removed. + (dataset_set_n_lag) Removed. + (dataset_need_lag) New function. + +Tue Jan 9 07:20:05 WST 2007 John Darrington + + * dictionary.c procedure.c: More changes to ensure that callbacks occur + whenever appropriate, but only when the dataset/dictionary is in a + consistent state. + +Sun Jan 7 08:33:04 WST 2007 John Darrington + + * dictionary.c dictionary.h : Added callbacks for change of filter and + split variables. Refactored some code to ensure that callbacks get + invoked when appropriate. + + * procedure.c (proc_cancel_temporary_transformations): Make sure that + replace_dict callback occurs when permanent_dict replaces the current + dictionary. + +Wed Jan 3 11:02:11 WST 2007 John Darrington + + * dictionary.c dictionary.h : Added callback for when the weight + variable of a dictionary changes. + Mon Jan 1 10:36:26 WST 2007 John Darrington * dictionary.c dictionary.h : Added replace_source and replace_dict