Mercurial > hg > xemacs-beta
view etc/README @ 4995:8431b52e43b1
Move the various map* functions to C; add #'map-into.
src/ChangeLog addition:
2010-01-31 Aidan Kehoe <kehoea@parhasard.net>
Move #'mapcar*, #'mapcan, #'mapc, #'map, #'mapl, #'mapcon to C;
extend #'mapvector, #'mapconcat, #'mapcar to support more
SEQUENCES; have them all error with circular lists.
* fns.c (Fsubseq): Call CHECK_SEQUENCE here; Flength can return
from the debugger if it errors with a non-sequence, leading to a
crash in Fsubseq if sequence really is *not* a sequence.
(mapcarX): Rename mapcar1 to mapcarX; rework it comprehensively to
take an optional lisp output argument, and a varying number of
sequences.
Special-case a single list argument, as we used to, saving its
elements in the stack space for the results before calling
FUNCTION, so FUNCTION can corrupt the list all it
wants. dead_wrong_type_argument() in the other cases if we
encounter a non-cons where we expected a cons.
(Fmapconcat):
Accept further SEQUENCES after separator here. Special-case
the idiom (mapconcat 'identity SEQUENCE), don't even funcall.
(FmapcarX): Rename this from Fmapcar. Accept optional SEQUENCES.
(Fmapvector): Accept optional SEQUENCES.
(Fmapcan, Fmapc, Fmap): Move these here from cl-extra.el.
(Fmap_into): New function, as specified by Common Lisp.
(maplist): New function, the guts of the implementation of
Fmaplist and Fmapl.
(Fmaplist, Fmapl, Fmapcon): Move these from cl-extra.el.
(syms_of_fns):
Add a few needed symbols here, for the type tests
used by #'map. Add the new subrs, with aliases for #'mapc-internal
and #'mapcar.
* general-slots.h: Declare Qcoerce here, now it's used in both
indent.c and fns.c
* indent.c (syms_of_indent): Qcoerce is gone from here.
* lisp.h: Add ARRAYP(), SEQUENCEP(), and the corresponding CHECK_*
macros. Declare Fbit_vector, Fstring, FmapcarX, now other files
need to use them.
* data.c (Farrayp, Fsequencep): Use ARRAYP and SEQUENCEP, just
added to lisp.h
* buffer.c (Fbuffer_list): Now Fmapcar has been renamed FmapcarX
and takes MANY arguments, update this function to reflect that.
lisp/ChangeLog addition:
2010-01-31 Aidan Kehoe <kehoea@parhasard.net>
* cl.el (mapcar*): Delete; this is now in fns.c.
Use #'mapc, not #'mapc-internal in a couple of places.
* cl-macs.el (mapc, mapcar*, map): Delete these compiler macros
now the corresponding functions are in fns.c; there's no run-time
advantage to the macros.
* cl-extra.el (coerce): Extend the possible conversions here a
little; it's not remotely comprehensive yet, though it does allow
running slightly more Common Lisp code than previously.
(cl-mapcar-many): Delete.
(map, maplist, mapc, mapl, mapcan, mapcon): Move these to fns.c.
* bytecomp.el (byte-compile-maybe-mapc):
Use #'mapc itself, not #'mapc-internal, now the former is in C.
(mapcar*): Use #'byte-compile-maybe-mapc as this function's
byte-compile method, now a #'mapc that can take more than one
sequence is in C.
* obsolete.el (cl-mapc): Move this compatibility alias to this file.
* update-elc.el (do-autoload-commands): Use #'mapc, not
#'mapc-internal here.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 31 Jan 2010 18:29:48 +0000 |
parents | a883e09e54f7 |
children |
line wrap: on
line source
This directory contains some text files of documentation for XEmacs or of interest to XEmacs users, some programs used by or with XEmacs, and the file of on-line documentation for XEmacs. COPYING GNU Public License ChangeLog ChangeLog for etc/ ETAGS.EBNF Description of TAGS file format Emacs.ad Sample Resource file HELLO Hello in many languages (Mule test file) InstallGuide Fast track to installation NEWS XEmacs 21.5 release information ONEWS Older release information OONEWS Even older release information README This file TUTORIAL Tutorial for first time users (English version) TUTORIAL.* Tutorials in non-English languages VEGETABLES XEmacs 21.5 code names XKeysymDB X Keysym Database with Motif bindings cbx.png "Created by XEmacs" logo (150x54 8bpp) ctags.1 Ctags man page custom/ Images used in Custom mode editclient.sh Either start up XEmacs or connect to a running one emacskeys.sco emacsstrs.sco Special files for running on an SCO console eos/ Images for EOS support (GUD) etags.1 Etags man page gnuattach.1 Gnuattach man page gnuclient.1 Gnuclient man page gnudoit.1 Gnudoit man page gnuserv.1 Gnuserv man page gnuserv.README Original README file from gnuserv gray1.xbm Halftone gray bitmap (16x16) idd/ ? package-index.LATEST.gpg ? photos/* Various pictures of XEmacs developers recycle.xpm Chartreuse recycle cursor (51x51) recycle2.xpm Chartreuse recycle cursor (32x32) refcard.ps.gz Postscript version of XEmacs reference card refcard.tex XEmacs reference card sample.Xdefaults (legacy -- to be removed) sample.Xresources Example ~/.Xresources file sample.init.el Example ~/.xemacs/init.el file sparcworks/ Support files for Sparcworks tests/ Testcases for external widget toolbar/ Image files for the toolbar trash.xpm B&W garbage can icon (32x46) unicode/ Unicode conversion tables xemacs-X-16.png Violet boxed X icon (16x16) xemacs-X-32.png Violet boxed X icon (32x32) xemacs-X.ico Violet boxed X icon in MS Windows format xemacs-beta.xpm XEmacs Beta logo for splashscreen (388x145) xemacs-enhanced.png "XEmacs-enhanced" logo (90x32) xemacs-fe.sh XEmacs frontend driver xemacs-icon.xpm Color XE on page icon (48x48) xemacs-icon2.xbm B&W kitchen sink icon (50x50) xemacs-icon2.xpm Color kitchen sink icon (50x50) xemacs-icon3.xpm Grayscale X icon (48x48) xemacs.1 XEmacs man page xemacs.xbm Half-tone XEmacs logo (266x61) xemacs.xpm XEmacs logo for splashscreen (388x145)