X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2FChangeLog;h=b3f668142997b06f96c42b84fff7eb0d6ace2bf8;hb=3838b041ea9a749d3a0d604f62f7d9523f91f3d8;hp=6faf0afb6cb4dc4be167491efe4eb3ac79e1f83c;hpb=c663f9861a1425f0858f3f5849a19bdc46c868b7;p=pspp diff --git a/src/ChangeLog b/src/ChangeLog index 6faf0afb6c..b3f6681429 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,17 +1,126 @@ -Thu Dec 11 15:13:58 WST 2003 John Darrington +Fri Dec 12 23:54:37 2003 Ben Pfaff - * output.c: Fixed a bug where pspp would crash if it couldn't find - its startup files. + * autorecode.c: (recode) Replace stupid use of memcpy() by + memberwise copy. + (hash_alpha_value) Use hsh_hash_bytes(). Get rid of nasty casts. + (hash_numeric_value) Ditto. + (autorecode_proc_func) pool_strdup() was wrong here because the + source string was not null-terminated. Use new pool_strndup() + instead. -Thu Dec 11 15:09:04 WST 2003 John Darrington + * crosstabs.q: (enum_var_values) Remove superfluous and bizarre + use of hsh_iterator_init(). - * frequencies.q: Fixed a bug where the program would crash if more that one 'FREQUENCIES' command appeared in a file. + * data-in.c: (parse_N) Initialize i->v->f. -Wed Dec 10 22:03:32 2003 Ben Pfaff + * flip.c: (cmd_flip) Use memmove(), not memcpy(), to copy + overlapping arrays. - * glob.c: Add #include the readline.h #include, which - fixes problems for some readline versions that refer to FILE but - don't #include themselves. + * groff-font.c: Use power-of-2 hash table sizes, not prime. + (groff_read_font) Don't call hsh_next_prime(). Don't call + fclose(NULL). + (static var hash) Remove `size_p', `max_used' members. + (font_char_name_to_index) Don't call hsh_next_prime(). Use + hsh_hash_string() instead of hashpjw(), & instead of %. + (default_font) Don't call hsh_next_prime(). + + * pool.c: (pool_strndup) New function. + (pool_strdup) Reimplement in terms of pool_strndup. + + * postscript.c: (hash_font_entry) Use hsh_hash_string(). Get rid + of nasty casts. + (hash_ps_encoding) Use hsh_hash_string(). + (hash_ps_combo) Use hsh_hash_string(), hsh_hash_int(). + (hash_filename2font) Use hsh_hash_string(). + + * som.c: Add #include . + + * tab.c: (tab_destroy) Don't set t->container after freeing `t' + (by destroying its pool). + +Fri Dec 12 23:18:59 2003 Ben Pfaff + + Miscellaneous hash table code cleanup: + + * hash.h: (struct hsh_table) Moved into hash.c. + (hsh_count) Ditto, and transformed into function. + (hsh_compare_func) New typedef, used for defining otherwise-long + function types here and in hash.c + (hsh_hash_func) Ditto. + (hsh_free_func) Ditto. + + * hash.c: (struct hsh_table) Renamed `n' to `used', `m' to `size', + `table' to `entries'. Removed `mp'. All references updated. + (hsh_clear) Don't shrink entries array; if the hash was this big + once, it probably will be again. + (hsh_rehash) Made static. + (force_hsh_insert) Renamed hsh_force_insert. + (force_hsh_find) Renamed hsh_force_find. + + Made hash table sizes powers of 2, because that's fine with any + reasonable hash function and because taking a power-of-2 modulus + is faster than any other: + + (hsh_prime_tab) Removed; + (hsh_next_prime) Ditto. + (next_power_of_2) New function. + (hsh_create) Use next_power_of_2. + (hsh_rehash) Use & instead of %. + + Cleaned up hsh_sort: + + (internal_comparison_fn) Removed. + (sort_nulls_last) New function. + (hsh_sort) Removed second parameter, switched to using the new + quicksort() function from quicksort.h to avoid using nasty need + for static variables with qsort(). All references updated. + + Changed the hash functions offered, because there are better hash + functions than the ones we had, and cleaned up the names to boot: + + * hash.c: (hashpjw_d) Removed. + (hashpjw) Ditto. + (hsh_hash_bytes) New function. + (hsh_hash_string) New function. + (hsh_hash_int) New function. + + Improved the hash table iteration interface: + + * hash.h: (hsh_iterator_init) Removed. + (struct hsh_iterator) Removed `init' member, change `next' to + size_t. + + * hash.c: (hsh_foreach) Removed. All references updated to use + hsh_first/hsh_next instead. + (hsh_first) New function. Notably, unlike hsh_foreach() it does + not treat a null pointer as an empty hash table. + (hsh_next) New function. + + Made deletion possible, though slow: + + * hash.c: (locate_matching_entry) New function. + (hsh_find) Use locate_matching_entry(). + (hsh_delete) New function also using locate_matching_entry(). + (hsh_force_delete) New function. + +Fri Dec 12 23:16:10 2003 Ben Pfaff + + * quicksort.c: New file implementing a sort routine with a + interface better than qsort() because it passes a user-provided + parameter to the sort routine. + + * Makefile.am: Add quicksort.c, quicksort.h. + +Fri Dec 12 13:31:58 2003 Ben Pfaff + + * All source files: Get rid of nasty special cases for Checker, + which is pretty obsolete now. + +Thu Dec 11 21:38:24 WST 2003 John Darrington + + * Fixed a bug apparent when using the FREQUENCIES command with the + html driver. The html driver was incorrectly trying to display + empty cells. Sun Jan 2 21:40:13 2000 Ben Pfaff