comparison src/general-slots.h @ 5182:2e528066e2fc

Move #'sort*, #'fill, #'merge to C from cl-seq.el. lisp/ChangeLog addition: 2010-04-01 Aidan Kehoe <kehoea@parhasard.net> * cl-seq.el (fill, sort*, merge): Move these functions to fns.c. (stable-sort): Make this docstring reflect the argument names used in the #'sort* docstring. * cl-macs.el (stable-sort): Make #'stable-sort exactly equivalent to #'sort* in compiled code. * bytecomp.el (byte-compile-maybe-add-*): New macro, for functions like #'sort and #'mapcar that, to be strictly compatible, should only take two args, but in our implementation can take more, because they're aliases of #'sort* and #'mapcar*. (byte-compile-mapcar, byte-compile-sort, byte-compile-fillarray): Use this new macro. (map-into): Add a byte-compile method for #'map-into in passing. * apropos.el (apropos-print): Use #'sort* with a :key argument, now it's in C. * compat.el (extent-at): Ditto. * register.el (list-registers): Ditto. * package-ui.el (pui-list-packages): Ditto. * help.el (sorted-key-descriptions): Ditto. src/ChangeLog addition: 2010-03-31 Aidan Kehoe <kehoea@parhasard.net> * fns.c (STRING_DATA_TO_OBJECT_ARRAY) (BIT_VECTOR_TO_OBJECT_ARRAY, c_merge_predicate_key) (c_merge_predicate_nokey, list_merge, array_merge) (list_array_merge_into_list, list_list_merge_into_array) (list_array_merge_into_array, CHECK_KEY_ARGUMENT, Fmerge) (list_sort, array_sort, FsortX): Move #'sort*, #'fill, #'merge from cl-seq.el to C, extending the implementations of Fsort, Ffillarray, and merge() to do so. * keymap.c (keymap_submaps, map_keymap_sort_predicate) (describe_map_sort_predicate): Change the calling semantics of the C sort predicates to return a non-nil Lisp object if the first argument is less than the second, rather than C integers. * fontcolor-msw.c (sort_font_list_function): * fileio.c (build_annotations): * dired.c (Fdirectory_files): * abbrev.c (Finsert_abbrev_table_description): Call list_sort instead of Fsort, list_merge instead of merge() in these functions. man/ChangeLog addition: 2010-04-01 Aidan Kehoe <kehoea@parhasard.net> * lispref/lists.texi (Rearrangement): Update the documentation of #'sort here, now that it accepts any type of sequence and the KEY keyword argument. (Though this is probably now the wrong place for this function, given that.)
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 01 Apr 2010 20:22:50 +0100
parents 1fae11d56ad2
children 71ee43b8a74d
comparison
equal deleted inserted replaced
5181:a00bfbd64e0a 5182:2e528066e2fc
70 SYMBOL (Qbutton); 70 SYMBOL (Qbutton);
71 SYMBOL_KEYWORD (Q_buttons); 71 SYMBOL_KEYWORD (Q_buttons);
72 SYMBOL_KEYWORD (Q_callback); 72 SYMBOL_KEYWORD (Q_callback);
73 SYMBOL_KEYWORD (Q_callback_ex); 73 SYMBOL_KEYWORD (Q_callback_ex);
74 SYMBOL (Qcancel); 74 SYMBOL (Qcancel);
75 SYMBOL (Qcar);
75 SYMBOL (Qcategory); 76 SYMBOL (Qcategory);
76 SYMBOL (Qccl_program); 77 SYMBOL (Qccl_program);
77 SYMBOL (Qcenter); 78 SYMBOL (Qcenter);
78 SYMBOL (Qchain); 79 SYMBOL (Qchain);
79 SYMBOL (Qchange); 80 SYMBOL (Qchange);
114 SYMBOL (Qdoc_string); 115 SYMBOL (Qdoc_string);
115 SYMBOL (Qdocumentation); 116 SYMBOL (Qdocumentation);
116 SYMBOL (Qduplex); 117 SYMBOL (Qduplex);
117 SYMBOL (Qemergency); 118 SYMBOL (Qemergency);
118 SYMBOL (Qempty); 119 SYMBOL (Qempty);
120 SYMBOL_KEYWORD (Q_end);
119 SYMBOL (Qencode_as_utf_8); 121 SYMBOL (Qencode_as_utf_8);
120 SYMBOL (Qeq); 122 SYMBOL (Qeq);
121 SYMBOL (Qeql); 123 SYMBOL (Qeql);
122 SYMBOL (Qequal); 124 SYMBOL (Qequal);
123 SYMBOL (Qeval); 125 SYMBOL (Qeval);
169 SYMBOL (Qinternal); 171 SYMBOL (Qinternal);
170 SYMBOL_KEYWORD (Q_items); 172 SYMBOL_KEYWORD (Q_items);
171 SYMBOL_KEYWORD (Q_justify); 173 SYMBOL_KEYWORD (Q_justify);
172 SYMBOL_KEYWORD (Q_vertically_justify); 174 SYMBOL_KEYWORD (Q_vertically_justify);
173 SYMBOL_KEYWORD (Q_horizontally_justify); 175 SYMBOL_KEYWORD (Q_horizontally_justify);
176 SYMBOL_KEYWORD (Q_key);
174 SYMBOL (Qkey); 177 SYMBOL (Qkey);
175 SYMBOL (Qkey_assoc); 178 SYMBOL (Qkey_assoc);
176 SYMBOL (Qkey_mapping); 179 SYMBOL (Qkey_mapping);
177 SYMBOL_KEYWORD (Q_key_sequence); 180 SYMBOL_KEYWORD (Q_key_sequence);
178 SYMBOL (Qkeyboard); 181 SYMBOL (Qkeyboard);
187 SYMBOL (Qlevel); 190 SYMBOL (Qlevel);
188 SYMBOL (Qlist); 191 SYMBOL (Qlist);
189 SYMBOL (Qlittle_endian); 192 SYMBOL (Qlittle_endian);
190 SYMBOL (Qlocale); 193 SYMBOL (Qlocale);
191 SYMBOL (Qlow); 194 SYMBOL (Qlow);
195 SYMBOL_GENERAL (Qlss, "<");
192 SYMBOL (Qmagic); 196 SYMBOL (Qmagic);
193 SYMBOL_KEYWORD (Q_margin_width); 197 SYMBOL_KEYWORD (Q_margin_width);
194 SYMBOL (Qmarkers); 198 SYMBOL (Qmarkers);
195 SYMBOL (Qmax); 199 SYMBOL (Qmax);
196 SYMBOL (Qmemory); 200 SYMBOL (Qmemory);
261 SYMBOL (Qsize); 265 SYMBOL (Qsize);
262 SYMBOL (Qsound); 266 SYMBOL (Qsound);
263 SYMBOL (Qspace); 267 SYMBOL (Qspace);
264 SYMBOL (Qspecifier); 268 SYMBOL (Qspecifier);
265 SYMBOL (Qstandard); 269 SYMBOL (Qstandard);
270 SYMBOL_KEYWORD (Q_start);
266 SYMBOL (Qstream); 271 SYMBOL (Qstream);
267 SYMBOL (Qstring); 272 SYMBOL (Qstring);
268 SYMBOL_KEYWORD (Q_style); 273 SYMBOL_KEYWORD (Q_style);
269 SYMBOL_KEYWORD (Q_suffix); 274 SYMBOL_KEYWORD (Q_suffix);
270 SYMBOL (Qsubtype); 275 SYMBOL (Qsubtype);