Mercurial > hg > xemacs-beta
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); |