John Darrington [Sat, 21 Feb 2004 09:41:53 +0000 (09:41 +0000)]
Added a trap on signal 11 requesting a bug report.
Ben Pfaff [Sat, 21 Feb 2004 07:23:59 +0000 (07:23 +0000)]
Fix root cause of bug worked around by previous check-in, and remove
workaround.
John Darrington [Sat, 21 Feb 2004 02:38:53 +0000 (02:38 +0000)]
Changed po/POTFILES.in to be a generated file.
Fixed some problems with the make distcheck target.
John Darrington [Fri, 20 Feb 2004 06:41:14 +0000 (06:41 +0000)]
Fixed a bug causing pspp to crash when computed variables had no format
defined, and were subsequently saved.
Ben Pfaff [Thu, 19 Feb 2004 06:27:22 +0000 (06:27 +0000)]
Got rid of approx.h and replaced all references to approx_eq() by ==,
approx_lt() by <, etc.
Ben Pfaff [Thu, 19 Feb 2004 05:33:11 +0000 (05:33 +0000)]
Prevent procedure() from being called recursively.
Ben Pfaff [Thu, 19 Feb 2004 02:16:10 +0000 (02:16 +0000)]
Improve CROSSTABS description
John Darrington [Wed, 18 Feb 2004 14:13:54 +0000 (14:13 +0000)]
Added Levene test. Added T-TEST section to pspp.texi
Ben Pfaff [Tue, 17 Feb 2004 07:21:16 +0000 (07:21 +0000)]
data-out.c clean ups.
Ben Pfaff [Tue, 17 Feb 2004 06:19:35 +0000 (06:19 +0000)]
Add an Emacs header line to output files that makes generated .c files
read-only by default, to make it difficult to accidentally change
generated files.
FREQUENCIES: Compare by frequency, not bogus a->v.c <=> b->v.c pointer
compare.
Changed data_out() to store string data directly into a `union
value''s s member, not indirectly into c.
Renamed some confusingly named member objects in crosstabs.q.
Ben Pfaff [Tue, 17 Feb 2004 05:38:31 +0000 (05:38 +0000)]
Prepend $SUPERVISOR to invocations of pspp so that we
can run valgrind or gdb easily with `make check'.
John Darrington [Tue, 17 Feb 2004 05:28:31 +0000 (05:28 +0000)]
Added test for T-TEST /GROUPS (Levene values come later).
John Darrington [Tue, 17 Feb 2004 03:47:43 +0000 (03:47 +0000)]
Added tests for the one sample and paired T-TEST commands
Ben Pfaff [Mon, 16 Feb 2004 20:54:17 +0000 (20:54 +0000)]
Clean up struct dictionary's value_cnt usage.
Ben Pfaff [Mon, 16 Feb 2004 08:23:49 +0000 (08:23 +0000)]
Fix comment.
Ben Pfaff [Mon, 16 Feb 2004 08:20:45 +0000 (08:20 +0000)]
Make vfm.c slightly less grotesque.
Ben Pfaff [Mon, 16 Feb 2004 08:17:26 +0000 (08:17 +0000)]
(struct variable) Update comments.
Ben Pfaff [Mon, 16 Feb 2004 07:39:57 +0000 (07:39 +0000)]
Got rid of "struct long_vec", envector(), devector(), etc.
New functions dict_create_var_assert(), dict_lookup_var_assert().
Ben Pfaff [Mon, 16 Feb 2004 04:55:33 +0000 (04:55 +0000)]
Ignore more files.
Ben Pfaff [Mon, 16 Feb 2004 04:54:41 +0000 (04:54 +0000)]
Ignore some files.
Ben Pfaff [Mon, 16 Feb 2004 04:52:36 +0000 (04:52 +0000)]
pfm-write.c: (bufwrite) Get rid of nasty cast that also invoked
undefined behavior.
Ben Pfaff [Mon, 16 Feb 2004 04:17:13 +0000 (04:17 +0000)]
Improve AGGREGATE description.
Ben Pfaff [Fri, 13 Feb 2004 19:23:23 +0000 (19:23 +0000)]
Don't #include "str.h" in stpcpy.c.
Ben Pfaff [Fri, 13 Feb 2004 08:01:45 +0000 (08:01 +0000)]
Add auxiliary argument to procedure() interface. Associated small
clean-ups of vfm interface.
John Darrington [Thu, 12 Feb 2004 12:24:59 +0000 (12:24 +0000)]
Added caculations for the grouped T-TEST
Ben Pfaff [Thu, 12 Feb 2004 08:19:49 +0000 (08:19 +0000)]
Clean up pref.h.orig and deal with the consequences.
John Darrington [Thu, 12 Feb 2004 07:55:53 +0000 (07:55 +0000)]
Update a rather poor Changelog entry, to give better information.
Ben Pfaff [Thu, 12 Feb 2004 04:40:55 +0000 (04:40 +0000)]
Fixed crash from FLIP when a numeric variable is specified on NEWNAMES
and a large value is used, and a couple of other minor bugs in FLIP.
John Darrington [Mon, 9 Feb 2004 10:57:28 +0000 (10:57 +0000)]
Fixed t-test so that multiple /pairs subcommands may be given.
John Darrington [Mon, 9 Feb 2004 03:26:12 +0000 (03:26 +0000)]
Implemented calculations for the paired samples t-test
John Darrington [Sun, 8 Feb 2004 14:59:41 +0000 (14:59 +0000)]
Added calculations for the correlation for paired samples in t-test
John Darrington [Fri, 6 Feb 2004 00:13:52 +0000 (00:13 +0000)]
Added a (currently unpopulated) box for the paired samples correlations
John Darrington [Thu, 5 Feb 2004 06:56:45 +0000 (06:56 +0000)]
Fixed a bug which crashed PSPP under invalid input.
Factored out some translatable strings.
John Darrington [Thu, 5 Feb 2004 05:17:49 +0000 (05:17 +0000)]
Fixed a bug causing PSPP to crash under certain invalid input.
John Darrington [Wed, 4 Feb 2004 23:49:42 +0000 (23:49 +0000)]
Added proper error messages in T-TEST
John Darrington [Wed, 4 Feb 2004 12:22:38 +0000 (12:22 +0000)]
Fixed bug calculating mean difference.
John Darrington [Wed, 4 Feb 2004 08:03:06 +0000 (08:03 +0000)]
Added calculations for the one sample t test
Ben Pfaff [Wed, 4 Feb 2004 04:09:26 +0000 (04:09 +0000)]
(render_strip) Fix bug that sometimes caused joined text in joined
cells to be rendered outside box boundaries.
Ben Pfaff [Wed, 4 Feb 2004 02:31:02 +0000 (02:31 +0000)]
Add item.
John Darrington [Tue, 3 Feb 2004 11:36:55 +0000 (11:36 +0000)]
Removed some vertical whitespace and added some horizontal
John Darrington [Tue, 3 Feb 2004 11:16:25 +0000 (11:16 +0000)]
Fixed bug building while configured with --with-included-gettext
John Darrington [Tue, 3 Feb 2004 11:01:23 +0000 (11:01 +0000)]
Fixed seeding of random number generator.
Ben Pfaff [Tue, 3 Feb 2004 07:47:46 +0000 (07:47 +0000)]
(rng_get_double) Fix always-returning-zero bug in my preferred way,
and at the same time make sure rounding doesn't bite us.
John Darrington [Tue, 3 Feb 2004 07:03:08 +0000 (07:03 +0000)]
Fixed a bug where the random number generator always returned zero.
John Darrington [Tue, 3 Feb 2004 01:28:35 +0000 (01:28 +0000)]
Added workaround for annoying gettextize behaviour
John Darrington [Fri, 30 Jan 2004 11:51:21 +0000 (11:51 +0000)]
Added version.c to the CLEANFILES target (ensures that a new date stamp gets
applied to each build).
John Darrington [Fri, 30 Jan 2004 03:01:28 +0000 (03:01 +0000)]
Rewritten the t-test (no calculations yet).
John Darrington [Fri, 30 Jan 2004 00:29:40 +0000 (00:29 +0000)]
Added bounds checking to tab.c
John Darrington [Thu, 29 Jan 2004 23:54:37 +0000 (23:54 +0000)]
Removed inappropriate assertion from list.q
John Darrington [Tue, 27 Jan 2004 01:22:25 +0000 (01:22 +0000)]
fixed broken dependency in Smake
John Darrington [Tue, 27 Jan 2004 00:50:27 +0000 (00:50 +0000)]
Removed some generated files.
Removed references to `fiasco' (except historical data).
John Darrington [Tue, 27 Jan 2004 00:08:54 +0000 (00:08 +0000)]
Fixed some issues with internationalisation
Ben Pfaff [Fri, 23 Jan 2004 01:23:22 +0000 (01:23 +0000)]
Test commits.
John Darrington [Mon, 5 Jan 2004 06:26:03 +0000 (06:26 +0000)]
Fixed a buglet in the ERASE command, added a test for it, and some documentation.
John Darrington [Mon, 5 Jan 2004 04:35:25 +0000 (04:35 +0000)]
Added documentation for the HOST command.
John Darrington [Sun, 4 Jan 2004 23:19:39 +0000 (23:19 +0000)]
Added test for bug in FREQ command.
Ben Pfaff [Fri, 2 Jan 2004 07:28:39 +0000 (07:28 +0000)]
Thu Jan 1 23:16:41 2004 Ben Pfaff <blp@gnu.org>
* html.c: (change_attributes) Dead code, removed.
(escape_string) Eliminate code to call change_attributes() that
never actually called it.
(output_tab_table) Get rid of dependence on tab_hit
and struct tab_joined_cell's hit member, which are abominations.
* tab.c: (tab_output_text) Don't call
d->class->text_set_font_by_name if it's a null pointer.
(macro UNROLL_LOOP) Eliminate.
(macro UNROLL_3_LOOPS) Eliminate
(tabi_render) Rewrite not to use the above macros.
Thu Jan 1 23:09:07 2004 Ben Pfaff <blp@gnu.org>
Start working on a new output driver system, one that doesn't suck
so much, by adding a "device-independent" output driver. The idea
is to write out only a single output stream, then use separate
processes to translate them into whatever formats we want. This
is similar to how "groff" works with its various output drivers
(grops, grotty, grodvi, ...).
* Makefile.am: (pspp_SOURCES) Add devind.c, devind.h.
* list.q: (write_all_headers) Stub out devind class.
(clean_up) Ditto.
(determine_layout) Ditto.
(list_cases) Ditto.
* output.c: (outp_init) Add devind class.
* devind.c: New file.
* devind.h: New file.
Thu Jan 1 23:08:14 2004 Ben Pfaff <blp@gnu.org>
* frequencies.q: (hash_value_alpha) Fixed up the previous change
to use the proper string length.
John Darrington [Wed, 31 Dec 2003 08:28:06 +0000 (08:28 +0000)]
Fixed a bug in frequencies.q which would crash on alpha values
Ben Pfaff [Wed, 31 Dec 2003 06:46:22 +0000 (06:46 +0000)]
Tue Dec 30 22:42:57 2003 Ben Pfaff <blp@gnu.org>
* Removed bletcherous alloca() workarounds for AIX from top of
many files. AIX can use the alternative alloca() implementation
instead.
Ben Pfaff [Wed, 31 Dec 2003 06:40:48 +0000 (06:40 +0000)]
Tue Dec 30 22:37:04 2003 Ben Pfaff <blp@gnu.org>
* devices: Add "squeeze=on top-margin=0 bottom-margin=0" to
raw-ascii to make test output more readable.
Tue Dec 30 22:35:16 2003 Ben Pfaff <blp@gnu.org>
* ascii.c: (ascii_option) Fix implementation of headers option.
Tue Dec 30 22:32:53 2003 Ben Pfaff <blp@gnu.org>
* ascii.c: Add a "squeeze" option to the ASCII driver to squeeze
multiple blank lines into one.
(struct ascii_driver_ext) Add squeeze_blank_lines option.
(ascii_preopen_driver) Initialize squeeze_blank_lines.
(static var option_tab) Add squeeze entry.
(ascii_option) Set squeeze_blank_lines.
(output_lines) Implement squeezing blank lines.
John Darrington [Tue, 30 Dec 2003 23:22:03 +0000 (23:22 +0000)]
Removed redundant code from output.h
John Darrington [Tue, 30 Dec 2003 14:25:24 +0000 (14:25 +0000)]
Fixed floating point rounding problem
Ben Pfaff [Tue, 30 Dec 2003 04:42:15 +0000 (04:42 +0000)]
Sat Dec 27 16:16:49 2003 Ben Pfaff <blp@gnu.org>
* configure.ac: Add -Wmissing-prototypes flag to gcc.
* TODO: Updated.
Sat Dec 27 22:17:52 2003 Ben Pfaff <blp@gnu.org>
Dictionary classes: each variable is "ordinary", "system", or
"scratch".
* var.h: (enum dict_class) New enum.
* vars-prs.c: (dict_class_from_id) New function.
(dict_class_to_name) New function.
Sat Dec 27 22:16:06 2003 Ben Pfaff <blp@gnu.org>
* var.h: (struct freq_tab_set) Removed (not used).
Sat Dec 27 22:15:21 2003 Ben Pfaff <blp@gnu.org>
* value-labels.c: (val_labs_destroy) vls needs to be freed too.
Sat Dec 27 22:10:49 2003 Ben Pfaff <blp@gnu.org>
* stats.c: (hypercube) Rename pow4(). All references updated.
Sat Dec 27 22:05:49 2003 Ben Pfaff <blp@gnu.org>
* rename-vars.c: (cmd_rename_variables) Rewritten.
(compare_name) Removed.
Sat Dec 27 22:03:51 2003 Ben Pfaff <blp@gnu.org>
var_set feature, and code taking advantage of it.
* crosstabs.q: (static var var_dict) Removed.
(static var variables) New variable.
(static var variables_cnt) New variable.
(cmd_crosstabs) Free variables instead of var_dict.
(internal_cmd_crosstabs) Initialize and use variables,
variables_cnt instead of var_dict.
(free_var_dict) Removed.
(crs_custom_tables) Use var_set instead of a copied dictionary.
(crs_custom_variables) Set up variables, variables_cnt instead of
var_dict.
[DEBUGGING] (debug_print) Ditto.
* means.q: (mns_custom_tables) Use var_set instead of a copied
dictionary.
* vars-prs.c: (parse_vs_variable) New function.
(parse_dict_variable) Rewritten.
(parse_variable) Rewritten.
(parse_variables) Renamed parse_var_set_vars(), rewritten.
(parse_variables) New function in terms of parse_var_set_vars().
Now requires its first argument to be non-null. All references
that passed a null pointer updated to pass default_dict instead.
(macro id_dict) Removed.
(parse_DATA_LIST_vars) Add assertions.
(parse_mixed_vars) Ditto.
(struct var_set) New structure.
(var_set_get_cnt) New function.
(var_set_get_var) New function.
(var_set_lookup_var) New function.
(var_set_destroy) New function.
(dict_var_set_get_cnt) New function.
(dict_var_set_get_var) New function.
(dict_var_set_lookup_var) New function.
(dict_var_set_destroy) New function.
(var_set_create_from_dict) New function.
(struct array_var_set) New structure.
(array_var_set_get_cnt) New function.
(array_var_set_get_var) New function.
(array_var_set_lookup_var) New function.
(array_var_set_destroy) New function.
(var_set_create_from_array) New function.
* q2c.c: (dump_parser) Use parse_variables(default_dict, ...)
instead of parse_variables(NULL, ...) in output code.
Sat Dec 27 21:38:53 2003 Ben Pfaff <blp@gnu.org>
Change inp_init from a 2-bit vector to an ordinary array.
Initialize it all in cmd_end_input_program() instead of in
create_variable().
* inpt-pgm.c: (enum value_init_type) New enum.
(global var inp_init) Change to `enum value_init_type *', make
static.
(inp_init_size) Removed.
(inp_nval) Change to `size_t', make static.
(cmd_input_program) Don't initialize inp_init or inp_init_size.
(cmd_end_input_program) Initialize inp_init, inp_nval.
(init_case) Rewrite.
(clear_case) Rewrite.
* inpt-pgm.h: Removed.
Sat Dec 27 21:36:38 2003 Ben Pfaff <blp@gnu.org>
* hash.c: (hsh_hash_bytes) Use Fowler-Noll-Vo hash instead of
Colin Plumb hash. It is simpler and should better resist
collisions.
(hsh_hash_string) Ditto.
Sat Dec 27 21:34:57 2003 Ben Pfaff <blp@gnu.org>
* get.c: (export_write_case_func) Remove debug printing code.
Sat Dec 27 21:11:09 2003 Ben Pfaff <blp@gnu.org>
* get.c: (cmd_save_internal) Rename parameter. Use &t->h instead
of cast.
(save_write_case_func) Use &trns->h instead of cast.
(cmd_export) Use &t->h instead of cast.
Sat Dec 27 20:57:42 2003 Ben Pfaff <blp@gnu.org>
Moved vectors into the dictionary.
* var.h: (struct vector) Moved here from vector.h. `index' member
renamed `idx', `v' renamed `var', `nv' renamed `cnt'. All
references updated.
* vector.h: Removed.
* vector.c: (global var vec) Removed.
(global var nvec) Removed.
(cmd_vector) Rewritten.
(find_vector) Removed.
* dictionary.c: (dict_create_vector) New function.
(dict_get_vector) New function, replaces reading global vec[]
array.
(dict_get_vector_cnt) New function, replaces reading global nvec
variable.
(dict_lookup_vector) New function, replaces find_vector().
(dict_clear_vectors) New function.
Sat Dec 27 20:54:01 2003 Ben Pfaff <blp@gnu.org>
Start to move away from `struct variable' p `union' member to void
* aux member.
* var.h: (struct variable) Add `aux' member.
Sat Dec 27 20:36:25 2003 Ben Pfaff <blp@gnu.org>
Get rid of struct variable `foo' member.
* frequencies.q: (internal_cmd_frequencies) Use p.frq.used instead
of foo.
(frq_custom_variables) Ditto.
(frq_custom_grouped) Ditto.
* get.c: (struct save_trns) Change `var' member from `int *' to
`struct variable **'.
(cmd_save_internal) Use aux instead of foo.
(save_trns_proc) Use revised `var' member.
(static var mtf_seq_no) Renamed mtf_seq_num.
(static var mtf_seq_nums) New static var.
(cmd_match_files) Initialize mtf_seq_nums.
(mtf_free) Free mtf_seq_nums.
(mtf_processing) Use mtf_seq_nums instead of foo.
(mtf_merge_dictionary) No need to initialize mv->foo.
(cmd_export) Use aux instead of foo. Use revised `var' member.
(mns_custom_tables) Don't use foo to check for duplicates, that's
what PV_NO_DUPLICATE is for.
* var.h: (struct variable) Remove `foo' member.
(struct frequencies_proc) New member.
Sat Dec 27 19:46:13 2003 Ben Pfaff <blp@gnu.org>
Clean up COMPUTE and IF.
* compute.c: More or less rewrite the darn thing.
(struct compute_trns) Rename and reorder and add and delete
members.
(cmd_compute) Rewrite.
(compute_num) Make conditional on test expression. Now used for
both COMPUTE and IF.
(compute_num_vec) Ditto.
(compute_str) Ditto.
(compute_str_vec) Ditto.
(cmd_if) Rewrite.
(if_num) Removed.
(if_num_vec) Removed.
(if_str) Removed.
(if_str_vec) Removed.
(parse_target_expression) Renamed parse_rvalue_expression(),
rewritten.
(new_trns) Renamed compute_trns_create(), rewritten.
(delete_trns) Removed.
(free_trns) Renamed compute_trns_free(), rewritten.
(struct lvalue) New structure.
(parse_var_or_vec) Renamed lvalue_parse(), rewritten.
(lvalue_get_type) New function.
(lvalue_is_vector) New function.
(lvalue_finalize) New function.
(lvalue_destroy) New function.
Sat Dec 27 19:44:14 2003 Ben Pfaff <blp@gnu.org>
* command.def: Disallow MODIFY VARS in input mode, so that
variables can't get dropped and confuse cmd_end_input_program()'s
attempt to fill inp_init[].
* modify-vars.c: (static var forward_positional_ordering) New
variable.
(struct var_modification) Entirely changed.
(rearrange_dict) Interface changed, rewritten.
(cmd_modify_vars) Deal with modified struct var_modification, much
rewritten.
(struct var_renaming) New structure.
(compare_var_renaming_by_new_name) New function.
(validate_var_modification) New function.
* var.h: (struct modify_vars_proc) Removed.
(struct variable) Removed member p.mfv.
Sat Dec 27 19:40:26 2003 Ben Pfaff <blp@gnu.org>
Make EVALUATE a valid command whether we're debugging or not, so
that `make check' can succeed regardless of whether debugging is
turned on.
* command.def: [GLOBAL_DEBUGGING] Drop the #if.
* compute.c: [GLOBAL_DEBUGGING] (cmd_evaluate) Drop the #if.
Sat Dec 27 19:34:40 2003 Ben Pfaff <blp@gnu.org>
* apply-dict.c: (cmd_apply_dictionary) Replace a ghastly switch
statement by a simple if test.
* dfm.c: (dfm_get_record) Add assertion.
Sat Dec 27 17:51:26 2003 Ben Pfaff <blp@gnu.org>
For each file x.c, move #include "x.h" to the very top of the
include list, to catch x.h failing to include the proper headers.
Sat Dec 27 17:50:19 2003 Ben Pfaff <blp@gnu.org>
* algorithm.c: (find) New function.
(remove_equal) New function.
(set_difference) New function.
(adjacent_find_equal) New function.
[TEST_UNIQUE] Removed test case.
(copy_if) Find end test.
Sat Dec 27 17:42:45 2003 Ben Pfaff <blp@gnu.org>
* dictionary.c: (dict_get_case_weight) New convenience function.
* aggregate.c: (accumulate_aggregate_info) Use
dict_get_case_weight().
* frequencies.q: (calc_general) Ditto.
(calc_integer) Ditto.
(calc) Ditto.
* t-test.q: (groups_calc) Ditto.
(z_calc) Ditto.
Sat Dec 27 17:29:45 2003 Ben Pfaff <blp@gnu.org>
* glob.c: (global var default_dict) Change from `struct
dictionary' to `struct dictionary *'. All references changed.
(init_glob) Initialize default_dict with dict_create().
Sat Dec 27 17:06:06 2003 Ben Pfaff <blp@gnu.org>
struct dictionary now made opaque. All related functions:
* get.c: (rename_variables) Removed.
(dict_delete_run) Removed.
* temporary.c: (copy_variable) Removed.
(new_dictionary) Removed.
(save_dictionary) Removed.
(restore_dictionary) Removed.
(free_dictionary) Removed.
* vars-atr.c: (clear_default_dict) Removed.
(find_variable) Removed.
(find_dict_variable) Removed.
(create_variable) Removed.
(delete_variable) Removed.
(common_init_stuff) Removed.
(init_variable) Removed. Updating of inp_init moved into
cmd_end_input_program().
(replace_variable) Removed.
(rename_variable) Removed.
(clear_variable) Removed.
(dup_variable) Removed.
* vars-prs.c: (is_varname) Removed.
(is_dict_varname) Removed.
(fill_all_vars) Removed.
* vector.c: (find_vector) Removed.
* weight.c: (stop_weighting) Removed.
* dictionary.c: New file.
(dict_create) New, replaces new_dictionary().
(dict_clone) New, replaces save_dictionary() and
restore_dictionary().
(dict_clear) New, replaces clear_default_dict().
(dict_destroy) New, replaces free_dictionary().
(dict_get_var_cnt) New function, replaces references to
dict->nvar.
(dict_get_var) New function, replaces references to dict->var[i].
(dict_get_vars) New function, replaces fill_all_vars().
(dict_create_var) New, replaces create_variable(). Interface
drops `type' parameter, using a zero `width' to designate numeric.
(dict_clone_var) New, replaces dup_variable().
(dict_rename_var) New, replaces rename_variable().
(dict_lookup_var) New, replaces find_variable(),
find_dict_variable(), is_varname().
(dict_contains_var) New function.
(compare_variable_dblptrs) New function.
(dict_delete_var) New function, replaces clear_variable().
(dict_delete_vars) New function, replaces dict_delete_run().
(dict_reorder_vars) New function.
(dict_rename_vars) New function, replaces rename_variables().
(dict_get_weight) New function, replaces reading dict->weight_var.
(dict_set_weight) New function, replaces writing dict->weight_var
or calling stop_weight(dict).
(dict_get_filter) New function, replaces reading dict->filter_var.
(dict_set_filter) New function, replaces writing dict->filter_var.
(dict_get_case_limit) New function, replaces reading dict->N.
(dict_set_case_limit) New function, replaces writing dict->N.
(dict_get_value_cnt) New function, replaces reading dict->nval.
(dict_compact_values) New function, replaces a loop that was
replicated in several places.
(dict_get_split_vars) New function, replaces reading dict->splits.
(dict_get_split_cnt) New function, replaces reading
dict->n_splits.
(dict_set_split_vars) New function, replaces writing dict->splits.
(dict_get_label) New function, replaces reading dict->label.
(dict_set_label) New function, replaces writing dict->label.
(dict_get_documents) New function, replaces reading
dict->documents.
(dict_set_documents) New function, replaces writing
dict->documents.
All references to above functions updated.
* aggregate.c: (cmd_aggregate) Copy file label and documents from
old dictionary to new by hand, because dict_create() can't do it
itself. Use dict_set_documents(), dict_set_split_vars().
* temporary.c: (cancel_temporary) Also set temp_dict to NULL after
calling dict_destroy().
* data-list.c: (dls_var_spec) Remove `type' member, replace by
`width'.
(fixed_parse_compatible) Some slightly nontrivial changes for
dict_create_var().
(dump_fmt_list) Ditto.
(parse_free) Ditto.
* file-type.c: (create_col_var) Ditto.
* get.c: (cmd_get) Use dict_compact_values() instead of a loop.
(trim_dictionary) Use dict_delete_vars(), dict_reorder_vars().
(rename_variables) Use dict_rename_vars().
(mtf_merge_dictionary) Use dict_get_documents(),
dict_set_documents(), dict_compact_values().
* pfm-read.c: (read_variables) Deal with changes to weighting.
* q2c.c: (dump_parser) Use dict_lookup_var() instead of
is_varname() in output code.
* sfm-read.c: (read_header) Use dict_create(), dict_set_label(),
other dictionary functions.
* title.c: (add_document_line) Use dict_get_documents(),
dict_set_documents().
* vars-atr.c: (discard_variables) Use dict_clear(default_dict),
reset default_handle by hand. dict_clear() will clear vectors so
there's no need for that by hand.
* vfm.c: (close_active_file) Move call to finish_compaction()
earlier, so that we can do the compaction as a single step using
dict_compact_values(). Use dict_clear_vectors().
(finish_compaction) Use dict_delete_var(), dict_compact_values().
Some functions don't have replacements:
* vars-atr.c: (force_create_variable) Removed. All references
updated to dict_create_var() followed by an assertion.
(force_dup_variable) Removed. All references updated to
dict_clone_var() followed by an assertion.
* weight.c: (update_weighting) Removed. No longer necessary, so
all references removed.
Sat Dec 27 16:43:01 2003 Ben Pfaff <blp@gnu.org>
Clean up AGGREGATE.
* aggregate.c: Eliminate separation of weighted and unweighted
case. It made the code too obscure and I doubt it was actually
faster. Instead, all code uses the "weighted" code, because
that's a generalization of the "unweighted" code.
(FWEIGHT) Removed.
(FOPTIONS) Ditto.
(parse_aggregate_functions) No need to set FWEIGHT.
(accumulate_aggregate_info) Get rid of FWEIGHT cases.
(dump_aggregate_info) Ditto.
(initialize_aggregate_info) No need for special plain_function
that gets rid of FWEIGHT option.
* aggregate.c: Get rid of approximations.
(accumulate_aggregate_info) Don't use approx_gt(), approx_lt(),
approx_in_range().
(aggregate_single_case) Don't use approx_ne().
Sat Dec 27 16:19:36 2003 Ben Pfaff <blp@gnu.org>
* ascii.c (ascii_line_width): Dead code, removed.
* postscript.c (ps_line_width): Ditto.
* q2c.c (xrealloc): Ditto.
* count.c (internal_cmd_count): Ditto.
* means.q (validate_dependent_endpoint): Ditto.
* set.q: (cmd_gset) Ditto.
* weight.c: [0] (weight_trns_proc) Ditto.
Sat Dec 27 16:18:16 2003 Ben Pfaff <blp@gnu.org>
Make the code -Wmissing-prototypes clean.
* Makefile.am (version.c): Add #include "version.h".
* ascii.c: (ascii_open_global) Make static.
(ascii_close_page) Ditto.
(ascii_font_sizes) Ditto.
(ascii_postopen_driver) Ditto.
(ascii_close_driver) Ditto.
(ascii_option) Ditto.
(ascii_open_page) Ditto.
(ascii_line_horz) Ditto.
(ascii_line_vert) Ditto.
(ascii_line_intersection) Ditto.
(ascii_box) Ditto.
(ascii_polyline_begin) Ditto.
(ascii_polyline_point) Ditto.
(ascii_polyline_end) Ditto.
(ascii_text_set_font_by_name) Ditto.
(ascii_text_set_font_by_position) Ditto.
(ascii_text_set_font_by_family) Ditto.
(ascii_text_get_font_name) Ditto.
(ascii_text_get_font_family) Ditto.
(ascii_text_set_size) Ditto.
(ascii_text_get_size) Ditto.
(ascii_text_metrics) Ditto.
(ascii_text_draw) Ditto.
(ascii_close_page) Ditto.
* cmdline.h: New header for parse_command_line(). Used where
needed.
* command.c: Move prototypes for cmd_*() functions to command.h.
* command.h: Prototypes for cmd_*() functions moved here from
command.c.
* crosstabs.q: (gamma_int) Ditto.
* file-handle.h: Add fh_init_files() prototype.
* getline.c: (welcome) Ditto.
* glob.h: New header for init_glob(). Used where appropriate.
* hash.c: (comparison_helper) Ditto.
* html.c: (html_open_global) Ditto.
(html_close_global) Ditto.
(html_preopen_driver) Ditto.
(html_postopen_driver) Ditto.
(html_close_driver) Ditto.
(html_option) Ditto.
(html_open_page) Ditto.
(html_close_page) Ditto.
(html_submit) Ditto.
* inpt-pgm.c: (input_program_source_read) Ditto.
* output.c: (find_defn_value) Ditto.
(destroy_list) Ditto.
* pfm-read.c: (read_int) Ditto.
* postscript.c: (ps_open_global) Ditto.
(ps_close_global) Ditto.
(ps_font_sizes) Ditto.
(ps_preopen_driver) Ditto.
(ps_postopen_driver) Ditto.
(ps_close_driver) Ditto.
(ps_option) Ditto.
(ps_open_page) Ditto.
(ps_close_page) Ditto.
(ps_line_horz) Ditto.
(ps_line_vert) Ditto.
(ps_line_intersection) Ditto.
(ps_box) Ditto.
(ps_polyline_begin) Ditto.
(ps_polyline_point) Ditto.
(ps_polyline_end) Ditto.
(ps_text_set_font_by_name) Ditto.
(ps_text_set_font_by_position) Ditto.
(ps_text_set_font_family) Ditto.
(ps_text_get_font_name) Ditto.
(ps_text_get_font_family) Ditto.
(ps_text_set_size) Ditto.
(ps_text_get_size) Ditto.
(ps_text_metrics) Ditto.
(ps_text_draw) Ditto.
* q2c.c: (finish_up) Ditto.
(xmalloc) Ditto.
(xstrdup) Ditto.
(get_buffer) Ditto.
(st_lower) Ditto.
(st_upper) Ditto.
(skip_ws) Ditto.
(get_line) Ditto.
(add_symbol) Ditto.
(find_symbol) Ditto.
(lex_get) Ditto.
(force_id) Ditto.
(force_string) Ditto.
(match_id) Ditto.
(match_token) Ditto.
(skip_token) Ditto.
(parse) Ditto.
(parse_setting) Ditto.
(parse_specifier) Ditto.
(parse_specifiers) Ditto.
(parse_subcommand) Ditto.
(dump_specifier_vars) Ditto.
(is_keyword) Ditto.
(make_identifier) Ditto.
(dump_declarations) Ditto.
(dump_specifier_init) Ditto.
(dump_vars_init) Ditto.
(make_match) Ditto.
(dump_specifier_parse) Ditto.
(dump_subcommand) Ditto.
(dump_parser) Ditto.
(dump_header) Ditto.
(dump_free) Ditto.
(recognize_directive) Ditto.
* recode.c: (string_to_long) Ditto.
* repeat.c: (find_DO_REPEAT_substitution) Ditto.
* repeat.h: New header for perform_DO_REPEAT_substitutions, used
where appropriate.
* sort.c: (sort_stream_read) Ditto.
(sort_stream_mode) Ditto.
Ben Pfaff [Tue, 30 Dec 2003 04:40:05 +0000 (04:40 +0000)]
Sat Dec 27 16:37:07 2003 Ben Pfaff <blp@gnu.org>
* Makefile.am: (EXTRA_DIST) Add getopt.c, getopt1.c, memcpy.c,
strstr.c, which weren't being distributed for whatever reason.
* gettext.h: Removed. We use the copy in intl/.
Ben Pfaff [Tue, 30 Dec 2003 04:38:03 +0000 (04:38 +0000)]
Sat Dec 27 16:36:05 2003 Ben Pfaff <blp@gnu.org>
* Makefile.am (MAKEINFO): Removed, since the manual validates (and
should validate from now on).
* pspp.texi: Updated.
John Darrington [Tue, 23 Dec 2003 03:35:19 +0000 (03:35 +0000)]
Updated the message strings
Ben Pfaff [Mon, 22 Dec 2003 18:33:06 +0000 (18:33 +0000)]
Update authorship.
John Darrington [Sun, 21 Dec 2003 23:58:04 +0000 (23:58 +0000)]
Factored out the bug report mailing address.
John Darrington [Sat, 20 Dec 2003 12:26:17 +0000 (12:26 +0000)]
Corrected a few typos and clarified some things in the user manual
John Darrington [Sat, 20 Dec 2003 10:27:57 +0000 (10:27 +0000)]
Fixed a howler with pluralism --- impossible to internationalise
Ben Pfaff [Sat, 20 Dec 2003 07:40:44 +0000 (07:40 +0000)]
Fri Dec 19 23:35:04 2003 Ben Pfaff <blp@gnu.org>
* algorithm.c (binary_search): Fix comparison.
Ben Pfaff [Sat, 20 Dec 2003 07:33:12 +0000 (07:33 +0000)]
Fri Dec 19 23:27:45 2003 Ben Pfaff <blp@gnu.org>
* algorithm.c: (binary_search) Fix assertion.
Ben Pfaff [Sat, 20 Dec 2003 05:37:03 +0000 (05:37 +0000)]
Fri Dec 19 21:31:48 2003 Ben Pfaff <blp@gnu.org>
* sysfile-info.c: (compare_vectors_by_name) Rewrite.
Ben Pfaff [Sat, 20 Dec 2003 05:35:51 +0000 (05:35 +0000)]
Fri Dec 19 21:30:24 2003 Ben Pfaff <blp@gnu.org>
* sort.c: (compare_case_lists) Rewrite.
John Darrington [Sat, 20 Dec 2003 03:31:55 +0000 (03:31 +0000)]
Fixed the make distcheck target
John Darrington [Sat, 20 Dec 2003 03:14:26 +0000 (03:14 +0000)]
Fixed some buglets in the tests
Ben Pfaff [Sat, 20 Dec 2003 00:50:27 +0000 (00:50 +0000)]
Fri Dec 19 16:44:22 2003 Ben Pfaff <blp@gnu.org>
* quicksort.c: Removed (not used).
* quicksort.h: Removed (not used).
* sort.c: Removed blp_quicksort() prototype.
Ben Pfaff [Sat, 20 Dec 2003 00:47:56 +0000 (00:47 +0000)]
Fri Dec 19 16:42:13 2003 Ben Pfaff <blp@gnu.org>
* postscript.c: (int_2_compare) Rewrite.
(compare_line) Rewrite.
Ben Pfaff [Sat, 20 Dec 2003 00:44:35 +0000 (00:44 +0000)]
Fri Dec 19 16:38:35 2003 Ben Pfaff <blp@gnu.org>
* matrix-data.c (compare_factors) Use lexicographical_compare()
algorithm.
(compare_doubles) New function.
* algorithm.c: (lexicographical_compare) New algorithm.
Ben Pfaff [Sat, 20 Dec 2003 00:28:58 +0000 (00:28 +0000)]
Fri Dec 19 16:23:45 2003 Ben Pfaff <blp@gnu.org>
* matrix-data.c (compare_variables_by_mxd_vartype): Rewrite.
Ben Pfaff [Sat, 20 Dec 2003 00:25:23 +0000 (00:25 +0000)]
Fri Dec 19 15:54:45 2003 Ben Pfaff <blp@gnu.org>
* expr-prs.c: (cmp_func) Removed.
(parse_function) Use binary_search() algorithm.
(compare_functions) New function.
(init_func_tab) Use sort() algorithm.
* algorithm.c: (binary_search) New algorithm.
Ben Pfaff [Fri, 19 Dec 2003 23:57:18 +0000 (23:57 +0000)]
Fri Dec 19 15:50:45 2003 Ben Pfaff <blp@gnu.org>
* descript.q: (display) Use sort() algorithm instead of qsort().
(compare_func) Removed.
(descriptives_compare_variables) New function.
Ben Pfaff [Fri, 19 Dec 2003 23:42:07 +0000 (23:42 +0000)]
Fri Dec 19 15:08:38 2003 Ben Pfaff <blp@gnu.org>
Get rid of AVL trees. Hashes are more appropriate for everything
PSPP does.
* Makefile.am: (pspp_SOURCES) Remove avl.c, avl.h.
* avl.c: Removed.
* avl.h: Removed.
Fri Dec 19 14:33:31 2003 Ben Pfaff <blp@gnu.org>
Much code can be clarified by using C++ STL-like algorithms. Not
all uses of these algorithms are listed below, only the ones where
the change to an algorithm was the only change of interest.
* Makefile.am: (pspp_SOURCES) Add algorithm.c, algorithm.h.
* algorithm.c: New file.
* algorithm.h: New file.
* modify-vars.c: (static var forward) Removed.
(static var positional) Removed.
(compare_variables) Removed.
(struct ordering) New.
(cmd_modify_vars) Use sort() algorithm.
(compare_variables_given_ordering) New function.
(rearrange_dict) Use sort() algorithm.
* sysfile-info.c: (cmd_display) Use sort() algorithm.
(cmp_var_by_name) Removed.
Fri Dec 19 14:26:17 2003 Ben Pfaff <blp@gnu.org>
Make file handles use a hash table.
* file-handle.q: (files) Change to hash table, make static.
(cmd_file_handle) Use hash table functions.
(fh_get_handle_by_filename) Ditto.
(fh_get_handle_by_name) Ditto.
(hash_file_handle) New function.
(cmp_file_handle) Rewrite.
(fh_init_files) Use hash table functions.
Fri Dec 19 14:24:38 2003 Ben Pfaff <blp@gnu.org>
Clean up FREQUENCIES.
* Makefile.am: (pspp_SOURCES) Remove frequencies.g.
* frequencies.q: Remove a lot of old #if'd out code at the end.
(internal_cmd_frequencies) Use calc() instead of calc_no_weight()
or calc_weight(). Initialize percentile_values.
(calc) New function based on calc_weight() from frequencies.g.
(precalc) Use hash functions.
(static var comparison_func) Removed.
(static var comparison_param) Removed.
(comparison_helper) Removed.
(get_freq_comparator) New function.
(not_missing) New function.
(add_freq) Removed.
(postprocess_freq_tab) Use hash table functions, algorithms,
get_freq_comparator(). Rewrite.
(cleanup_freq_tab) Rephrase.
(add_percentile) Clean up spacing.
(hash_value_numeric) New function.
(hash_value_alpha) New function.
(compare_value_numeric_a) Rewrite.
(compare_value_alpha_a) Rewrite.
(compare_value_numeric_d) Rewrite.
(compare_value_alpha_d) Rewrite.
(compare_freq_numeric_a) Rewrite.
(compare_freq_alpha_a) Rewrite.
(compare_freq_numeric_d) Rewrite.
(compare_freq_alpha_d) Rewrite.
(calc_stats) Clean up mode, percentiles, max.
(dump_statistics) Clean up spacing.
* frequencies.g: Removed.
* var.h: (struct freq_tab) Change `data' to hash table.
Fri Dec 19 14:15:46 2003 Ben Pfaff <blp@gnu.org>
* file-handle.h: Remove declaration of global variable `files',
which wasn't used anywhere.
* postscript.c: (add_encoding) Remove superfluous cast.
(line) Ditto.
* sfm-read.c: [linux] (bswap_int32) Drop ntohl() non-portable
version.
* temporary.c: [0] (display_tree) Removed.
Fri Dec 19 14:13:04 2003 Ben Pfaff <blp@gnu.org>
Implement a new random number generator based on the alleged RC4
algorithm.
* expr-evl.c: (expr_evaluate) Use rng_get_double_normal() instead
of rand_normal().
* random.c: [!HAVE_GOOD_RANDOM] (real_rand) Removed.
[!HAVE_GOOD_RANDOM] (real_srand) Removed.
(macro k) Removed.
(static var V[]) Removed.
(static var Y) Removed.
(static var X2) Removed.
(setup_randomize) Removed.
(shuffle) Removed.
(rand_uniform) Removed.
(rand_normal) Removed.
(struct rng) New structure.
(rng_create) New function.
(rng_destroy) New function.
(swap_byte) New static function.
(rng_seed) New function.
(rng_get_bytes) New function.
(rng_get_int) New function.
(rng_get_unsigned) New function.
(rng_get_double) New function.
(rng_get_double_normal) New function.
(pspp_rng) New function.
* random.h: Sync up to random.c.
* sample.c: (struct sample_trns) Make `frac' unsigned and a
fraction of UINT_MAX, not 65536.
(cmd_sample) Use rng_get_unsigned(), rng_get_double(), UINT_MAX
fraction.
* vfm.c: (open_active_file) No need to call setup_randomize() any
longer.
Fri Dec 19 12:05:56 2003 Ben Pfaff <blp@gnu.org>
Change dictionary name indexes to use hash tables instead of AVL
trees.
* crosstabs.q: (free_var_dict) Use hash tables.
(crs_custom_tables) Ditto.
(calc_general) Ditto.
(compare_table_entry) Rewrite.
(enum_var_values) Reorder parameters. All references updated.
Rewrite.
* get.c: (rename_variable) Use hash tables.
(mtf_merge_dictionary) Ditto.
* glob.c: (init_glob) Use hash tables.
(cmp_variable) Removed.
* means.q: (mns_custom_tables) Use hash tables.
* modify-vars.c: (rearrange_dict) Use hash tables.
* rename-vars.c: (cmd_rename_variables) Use hash tables.
* sfm-read.c: (read_header) Use hash tables.
(read_variables) Ditto.
* temporary.c: (new_dictionary) Use hash tables.
(save_dictionary) Ditto.
(restore_dictionary) Ditto.
* var.h: (struct dictionary) Change AVL tree `var_by_name' into
hash table `name_tab'.
* vars-atr.c: [DEBUGGING] (dump_one_var_node) Removed.
[DEBUGGING] (dump_var_tree) Removed.
(find_variable) Use hash tables.
(find_dict_variable) Ditto.
(common_init_stuff) Ditto.
(rename_variable) Ditto.
(clear_variable) Ditto. Also, remove debug code.
(dup_variable) Use hash tables.
* vars-prs.c: (fill_all_vars) Use hash tables.
(is_dict_varname) Ditto.
(parse_dict_variable) Ditto.
Fri Dec 19 11:46:23 2003 Ben Pfaff <blp@gnu.org>
Change value labels to use hash tables instead of AVL trees, and
change value labels into an ADT.
* Makefile.am: (pspp_SOURCES) Add value-labels.c, value-labels.h.
* value-labels.c: New file.
* value-labels.h: New file.
* apply-dict.c: (cmd_apply_dictionary) Use value label ADT.
Get rid of a stupid use of goto.
* autorecode.c: (compare_alpha_value) Rewrite.
(hash_alpha_value) Ditto.
(compare_numeric_value) Rewrite.
(hash_numeric_value) Ditto.
* frequencies.q: (dump_full) Use value label ADT.
* pfm-read.c: (read_value_label) Use value label ADT.
* pfm-write.c: (write_value_labels) Use value label ADT.
* sfm-read.c: (read_variables) Use value label ADT.
(read_value_labels) Rewrite.
* sfm-write.c: (write_value_labels) Rewrite.
* sysfile-info.c: (cmd_sysfile_info) Use value label ADT.
(display_variables) Ditto.
(describe_variable) Ditto.
* t-test.q: (print_t_groups) Use value label ADT.
* temporary.c: (copy_variable) Use value label ADT.
(free_dictionary) Ditto.
* val-labs.c: (verify_val_labs) Use value label ADT.
(get_label) Ditto.
(debug_print) Ditto.
(val_lab_cmp) Removed.
(inc_ref_count) Removed.
(copy_value_labels) Removed.
* var.h: (struct value_label) Removed.
(struct variable) Change AVL tree `val_lab' into hash table
`val_labs'.
* vars-atr.c: (init_variable) Use value label ADT.
(clear_variable) Ditto.
(free_value_label) Removed.
(free_val_lab) Removed.
(get_val_lab) Removed.
(compare_variables) New function.
(hash_variable) New function.
* vfm.c: (dump_splits) Use value label ADT.
Fri Dec 19 11:18:11 2003 Ben Pfaff <blp@gnu.org>
Add to the hash table interface.
* hash.c: (hsh_hash_bytes) Add assertion.
(hsh_hash_string) Ditto.
(hsh_clear) Ditto.
(hsh_rehash) Ditto.
(hsh_probe) Ditto.
(hsh_create) Ditto. Also make minimum `size'.
(hsh_destroy) Rephrase.
(sort_nulls_last) Removed.
(not_null) New function.
(hsh_data) Ditto.
(comparison_helper) Ditto.
(hsh_sort) Rewritten.
(hsh_data_copy) New function.
(hsh_sort_copy) Ditto.
(hsh_insert) Ditto.
(hsh_replace) Ditto.
(hsh_hash_double) Ditto.
(hsh_delete) Fix stupid bug.
John Darrington [Fri, 19 Dec 2003 07:17:59 +0000 (07:17 +0000)]
Added an implementation for FREQUENCIES/PERCENTILES
Ben Pfaff [Fri, 19 Dec 2003 07:02:52 +0000 (07:02 +0000)]
Update.
John Darrington [Thu, 18 Dec 2003 04:25:59 +0000 (04:25 +0000)]
Added a calculation of mode to FREQUENCIES
John Darrington [Thu, 18 Dec 2003 02:12:11 +0000 (02:12 +0000)]
Added a test for the FILTER command
John Darrington [Thu, 18 Dec 2003 00:42:13 +0000 (00:42 +0000)]
Fixed buglet in gmp CHECK_LIB
Ben Pfaff [Wed, 17 Dec 2003 18:12:31 +0000 (18:12 +0000)]
Fix complaints by recent Texinfo versions.
John Darrington [Wed, 17 Dec 2003 06:03:19 +0000 (06:03 +0000)]
Added a test for the WEIGHT command
John Darrington [Wed, 17 Dec 2003 05:39:14 +0000 (05:39 +0000)]
Added a test for the compute command.
John Darrington [Wed, 17 Dec 2003 04:58:49 +0000 (04:58 +0000)]
Added a --enable-debug option to configure and
moved (un)def of DEBUGGING from src files to config.h
John Darrington [Wed, 17 Dec 2003 01:28:10 +0000 (01:28 +0000)]
Added a test for the LIST command
John Darrington [Wed, 17 Dec 2003 01:09:47 +0000 (01:09 +0000)]
Added a test for the FILE LABEL and DOCUMENT commands
John Darrington [Wed, 17 Dec 2003 01:08:29 +0000 (01:08 +0000)]
Added a couple more tests
John Darrington [Wed, 17 Dec 2003 00:30:15 +0000 (00:30 +0000)]
Added tests for LOOP and SAMPLE commands
John Darrington [Tue, 16 Dec 2003 23:44:28 +0000 (23:44 +0000)]
Fixed a problem with some tests
Ben Pfaff [Tue, 16 Dec 2003 17:53:07 +0000 (17:53 +0000)]
Sample proportion is only approximate.
John Darrington [Tue, 16 Dec 2003 11:19:51 +0000 (11:19 +0000)]
Fixed another problem with print.sh
John Darrington [Tue, 16 Dec 2003 10:48:34 +0000 (10:48 +0000)]
Fixed up the PRINT test