Reduce platform dependence.
[pspp-builds.git] / src / data / ChangeLog
index 352b063e4516d66befd4816d276203b92ae6c917..0f82351bf573d68664fadd9a1b0eceafcbe279f8 100644 (file)
@@ -1,3 +1,200 @@
+Thu Feb  8 14:59:05 2007  Ben Pfaff  <blp@gnu.org>
+       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  <blp@gnu.org>
+
+       * dictionary.c (dict_create_vector_assert): New function.
+
+Wed Feb  7 21:25:15 2007  Ben Pfaff  <blp@gnu.org>
+
+       * file-name.c (fn_normalize): Correct name of function
+       fn_is_special.  Thanks to John McCabe-Dansted <gmatht@gmail.com>
+       for pointing this out.
+
+Thu Feb  1 16:53:37 2007  Ben Pfaff  <blp@gnu.org>
+
+       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  <blp@gnu.org>
+
+       * case.c (case_is_null): Change return type to bool.
+
+Mon Jan 15 10:57:28 2007  Ben Pfaff  <blp@gnu.org>
+
+       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  <blp@gnu.org>
+
+       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  <blp@gnu.org>
+
+       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  <blp@gnu.org>
+
+       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  <blp@gnu.org>
+
+       * 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  <blp@gnu.org>
+
+       * 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 <john@darrington.wattle.id.au>
+
+       * 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 <john@darrington.wattle.id.au>
+
+       * 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 <john@darrington.wattle.id.au>
+
+       * 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 <john@darrington.wattle.id.au>
+
+       * dictionary.c dictionary.h : Added replace_source and replace_dict
+       callbacks, and functions to deal with them.
+
+Fri Dec 22 13:56:08 2006  Ben Pfaff  <blp@gnu.org>
+
+       Simplify missing value handling.
+
+       * missing-values.h (enum mv_class): New type.
+       (enum mv_type): Moved definition into missing-values.c and renamed
+       each MV_* to MVT_*, to distinguish them from the exposed mv_class
+       enums.  Updated all uses.
+       (struct missing_values): Changed type of `type' from `enum
+       mv_type' to `int' because the definition is no longer exposed.
+       
+       * missing-values.c (mv_is_value_missing): Add new enum mv_class
+       parameter.  Update all callers.
+       (mv_is_num_missing): Ditto.
+       (mv_is_str_missing): Ditto.
+       (mv_is_value_user_missing): Removed.  Changed callers to use
+       mv_is_value_missing.
+       (mv_is_num_user_missing): Removed.  Changed callers to use
+       mv_is_num_missing.
+       (mv_is_str_user_missing): Removed.  Changed callers to use
+       mv_is_str_missing.
+       (mv_is_value_system_missing): Removed.  Changed callers to use
+       mv_is_value_missing.
+       (mv_set_type): Removed.  Changed callers to use mv_clear.
+       (mv_clear): New function.
+       
+       * variable.c (var_is_value_missing): Add new enum mv_class
+       parameter.  Update all callers.
+       (var_is_num_missing): Ditto.
+       (var_is_str_missing): Ditto.
+       (var_is_value_user_missing): Removed.  Changed callers to use
+       var_is_value_missing.
+       (var_is_num_user_missing): Removed.  Changed callers to use
+       var_is_num_missing.
+       (var_is_str_user_missing): Removed.  Changed callers to use
+       var_is_str_missing.
+       (var_is_value_system_missing): Removed.  Changed callers to use
+       var_is_value_missing.
+       
+       * casefilter.c (struct casefilter): Use enum mv_class in place of
+       bool.
+       (casefilter_variable_missing): Adapt to new member.
+       (casefilter_create): Change signature to take enum mv_class,
+       update callers.
+
 Fri Dec 22 20:08:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
 
        * casefile-factory.h fastfile-factory.c fastfile-factory.h: New files.