comparison src/ChangeLog @ 5191:71ee43b8a74d

Add #'equalp as a hash test by default; add #'define-hash-table-test, GNU API tests/ChangeLog addition: 2010-04-05 Aidan Kehoe <kehoea@parhasard.net> * automated/hash-table-tests.el: Test the new built-in #'equalp hash table test. Test #'define-hash-table-test. * automated/lisp-tests.el: When asserting that two objects are #'equalp, also assert that their #'equalp-hash is identical. man/ChangeLog addition: 2010-04-03 Aidan Kehoe <kehoea@parhasard.net> * lispref/hash-tables.texi (Introduction to Hash Tables): Document that we now support #'equalp as a hash table test by default, and mention #'define-hash-table-test. (Working With Hash Tables): Document #'define-hash-table-test. src/ChangeLog addition: 2010-04-05 Aidan Kehoe <kehoea@parhasard.net> * elhash.h: * elhash.c (struct Hash_Table_Test, lisp_object_eql_equal) (lisp_object_eql_hash, lisp_object_equal_equal) (lisp_object_equal_hash, lisp_object_equalp_hash) (lisp_object_equalp_equal, lisp_object_general_hash) (lisp_object_general_equal, Feq_hash, Feql_hash, Fequal_hash) (Fequalp_hash, define_hash_table_test, Fdefine_hash_table_test) (init_elhash_once_early, mark_hash_table_tests, string_equalp_hash): * glyphs.c (vars_of_glyphs): Add a new hash table test in C, #'equalp. Make it possible to specify new hash table tests with functions define_hash_table_test, #'define-hash-table-test. Use define_hash_table_test() in glyphs.c. Expose the hash functions (besides that used for #'equal) to Lisp, for people writing functions to be used with #'define-hash-table-test. Call define_hash_table_test() very early in temacs, to create the built-in hash table tests. * ui-gtk.c (emacs_gtk_boxed_hash): * specifier.h (struct specifier_methods): * specifier.c (specifier_hash): * rangetab.c (range_table_entry_hash, range_table_hash): * number.c (bignum_hash, ratio_hash, bigfloat_hash): * marker.c (marker_hash): * lrecord.h (struct lrecord_implementation): * keymap.c (keymap_hash): * gui.c (gui_item_id_hash, gui_item_hash): * glyphs.c (image_instance_hash, glyph_hash): * glyphs-x.c (x_image_instance_hash): * glyphs-msw.c (mswindows_image_instance_hash): * glyphs-gtk.c (gtk_image_instance_hash): * frame-msw.c (mswindows_set_title_from_ibyte): * fontcolor.c (color_instance_hash, font_instance_hash): * fontcolor-x.c (x_color_instance_hash): * fontcolor-tty.c (tty_color_instance_hash): * fontcolor-msw.c (mswindows_color_instance_hash): * fontcolor-gtk.c (gtk_color_instance_hash): * fns.c (bit_vector_hash): * floatfns.c (float_hash): * faces.c (face_hash): * extents.c (extent_hash): * events.c (event_hash): * data.c (weak_list_hash, weak_box_hash): * chartab.c (char_table_entry_hash, char_table_hash): * bytecode.c (compiled_function_hash): * alloc.c (vector_hash): Change the various object hash methods to take a new EQUALP parameter, hashing appropriately for #'equalp if it is true.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 05 Apr 2010 13:03:35 +0100
parents 1c1d8843de5e
children 635f4b506855 94982b8f9485
comparison
equal deleted inserted replaced
5190:1c1d8843de5e 5191:71ee43b8a74d
78 Be much more careful about resizing a string argument, update 78 Be much more careful about resizing a string argument, update
79 pointers to within the string data that may have been relocated 79 pointers to within the string data that may have been relocated
80 with the string resize. Fixes a test hang reported by Vin Shelton; 80 with the string resize. Fixes a test hang reported by Vin Shelton;
81 thanks, Vin. 81 thanks, Vin.
82 82
83 2010-04-05 Aidan Kehoe <kehoea@parhasard.net>
84
85 * elhash.h:
86 * elhash.c (struct Hash_Table_Test, lisp_object_eql_equal)
87 (lisp_object_eql_hash, lisp_object_equal_equal)
88 (lisp_object_equal_hash, lisp_object_equalp_hash)
89 (lisp_object_equalp_equal, lisp_object_general_hash)
90 (lisp_object_general_equal, Feq_hash, Feql_hash, Fequal_hash)
91 (Fequalp_hash, define_hash_table_test, Fdefine_hash_table_test)
92 (init_elhash_once_early, mark_hash_table_tests, string_equalp_hash):
93 * glyphs.c (vars_of_glyphs):
94 Add a new hash table test in C, #'equalp.
95 Make it possible to specify new hash table tests with functions
96 define_hash_table_test, #'define-hash-table-test.
97 Use define_hash_table_test() in glyphs.c.
98 Expose the hash functions (besides that used for #'equal) to Lisp,
99 for people writing functions to be used with #'define-hash-table-test.
100 Call define_hash_table_test() very early in temacs, to create the
101 built-in hash table tests.
102
103 * ui-gtk.c (emacs_gtk_boxed_hash):
104 * specifier.h (struct specifier_methods):
105 * specifier.c (specifier_hash):
106 * rangetab.c (range_table_entry_hash, range_table_hash):
107 * number.c (bignum_hash, ratio_hash, bigfloat_hash):
108 * marker.c (marker_hash):
109 * lrecord.h (struct lrecord_implementation):
110 * keymap.c (keymap_hash):
111 * gui.c (gui_item_id_hash, gui_item_hash):
112 * glyphs.c (image_instance_hash, glyph_hash):
113 * glyphs-x.c (x_image_instance_hash):
114 * glyphs-msw.c (mswindows_image_instance_hash):
115 * glyphs-gtk.c (gtk_image_instance_hash):
116 * frame-msw.c (mswindows_set_title_from_ibyte):
117 * fontcolor.c (color_instance_hash, font_instance_hash):
118 * fontcolor-x.c (x_color_instance_hash):
119 * fontcolor-tty.c (tty_color_instance_hash):
120 * fontcolor-msw.c (mswindows_color_instance_hash):
121 * fontcolor-gtk.c (gtk_color_instance_hash):
122 * fns.c (bit_vector_hash):
123 * floatfns.c (float_hash):
124 * faces.c (face_hash):
125 * extents.c (extent_hash):
126 * events.c (event_hash):
127 * data.c (weak_list_hash, weak_box_hash):
128 * chartab.c (char_table_entry_hash, char_table_hash):
129 * bytecode.c (compiled_function_hash):
130 * alloc.c (vector_hash):
131 Change the various object hash methods to take a new EQUALP
132 parameter, hashing appropriately for #'equalp if it is true.
133
83 2010-04-02 Aidan Kehoe <kehoea@parhasard.net> 134 2010-04-02 Aidan Kehoe <kehoea@parhasard.net>
84 135
85 * fns.c (FsortX, Ffill): 136 * fns.c (FsortX, Ffill):
86 Don't try to be clever with the ascii_begin string header slot in 137 Don't try to be clever with the ascii_begin string header slot in
87 these function, just call init_string_ascii_begin(). 138 these functions, just call init_string_ascii_begin().
88 139
89 2010-04-02 Aidan Kehoe <kehoea@parhasard.net> 140 2010-04-02 Aidan Kehoe <kehoea@parhasard.net>
90 141
91 Avoid build failure, Apple's g++-4.0.1, Mac OS 10.4. 142 Avoid build failure, Apple's g++-4.0.1, Mac OS 10.4.
92 * sysdll.c (search_linked_libs, dll_variable): Correct some casts 143 * sysdll.c (search_linked_libs, dll_variable): Correct some casts