summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* Adapt the MS-DOS build to the latest changes.Eli Zaretskii2012-06-301-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | msdos/mainmake.v2 (bootstrap-clean): Do a maintainer-clean in lib, not bootstrap-clean (which doesn't exist). msdos/inttypes.h (PRIuMAX) [__DJGPP__ < 2.04]: Define to "llu". msdos/sedleim.inp (MKDIR_P): Edit to DOS "md" command. msdos/sed1v2.inp: (LIB_CLOCK_GETTIME): Edit to empty. Remove lines that invoke PAXCTL. (clean): Fix recipe not to run Unixy shell commands. msdos/sed2v2.inp (GETTIMEOFDAY_TIMEZONE): Edit to 'struct timezone'. (HAVE_STRNCASECMP): Edit to 1. msdos/sed3v2.inp (LIB_CLOCK_GETTIME): Edit to empty. (C_SWITCH_SYSTEM): Add "-I../msdos". msdos/sedlibmk.inp (GNULIB_GETTIMEOFDAY, GNULIB_PSELECT) (GNULIB_SELECT, HAVE_STRUCT_TIMEVAL, HAVE_SYS_SELECT_H) (HAVE_SYS_TIME_H, NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H) (NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H, NEXT_SYS_SELECT_H) (NEXT_SYS_TIME_H, REPLACE_GETTIMEOFDAY, REPLACE_PSELECT) (REPLACE_STRUCT_TIMEVAL): Edit to appropriate values. (BUILT_SOURCES): Edit out sys/select.h and sys/time.h. (mostlyclean-local, distclean-generic): Fix recipe not to run Unixy shell commands. src/sysselect.h [DOS_NT]: Don't include sys/select.h. src/sysselect.h (pselect) [!HAVE_PSELECT]: Redirect to sys_select. src/sysdep.c: Don't include dos.h and dosfns.h. src/process.c (sys_select): src/msdos.c (sys_select): Accept one more argument and ignore it. src/msdos.c (event_timestamp, sys_select): Use gnulib's gettime; adapt data types and code to that. src/dosfns.c: src/msdos.c (gettime, settime): Define away the prototypes in dos.h, which clashes with the gnulib function of the same name. src/ w32proc.c (sys_select): Accept and ignore one more argument. src/w32.c (emacs_gnutls_pull): Call select with one more argument. lisp/emacs-lisp/timer.el (timer-until): Subtract results of float-time, instead of taking float-time of the result of time-subtract, since float-time signals an error for negative time arguments.
| * Adapt the MS-DOS build to the latest changes.Eli Zaretskii2012-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | msdos/mainmake.v2 (bootstrap-clean): Do a maintainer-clean in lib, not bootstrap-clean (which doesn't exist). msdos/inttypes.h (PRIuMAX) [__DJGPP__ < 2.04]: Define to "llu". msdos/sedleim.inp (MKDIR_P): Edit to DOS "md" command. msdos/sed1v2.inp: (LIB_CLOCK_GETTIME): Edit to empty. Remove lines that invoke PAXCTL. (clean): Fix recipe not to run Unixy shell commands. msdos/sed2v2.inp (GETTIMEOFDAY_TIMEZONE): Edit to 'struct timezone'. (HAVE_STRNCASECMP): Edit to 1. msdos/sed3v2.inp (LIB_CLOCK_GETTIME): Edit to empty. (C_SWITCH_SYSTEM): Add "-I../msdos". msdos/sedlibmk.inp (GNULIB_GETTIMEOFDAY, GNULIB_PSELECT) (GNULIB_SELECT, HAVE_STRUCT_TIMEVAL, HAVE_SYS_SELECT_H) (HAVE_SYS_TIME_H, NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H) (NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H, NEXT_SYS_SELECT_H) (NEXT_SYS_TIME_H, REPLACE_GETTIMEOFDAY, REPLACE_PSELECT) (REPLACE_STRUCT_TIMEVAL): Edit to appropriate values. (BUILT_SOURCES): Edit out sys/select.h and sys/time.h. (mostlyclean-local, distclean-generic): Fix recipe not to run Unixy shell commands. src/sysselect.h [DOS_NT]: Don't include sys/select.h. src/s/ms-w32.h (select, pselect): Don't define here, they are defined in sysselect.h src/sysselect.h (pselect) [!HAVE_PSELECT]: Redirect to sys_select. src/sysdep.c: Don't include dos.h and dosfns.h. src/process.c (sys_select): src/msdos.c (sys_select): Accept one more argument and ignore it. src/msdos.c (event_timestamp, sys_select): Use gnulib's gettime; adapt data types and code to that. src/dosfns.c: src/msdos.c (gettime, settime): Define away the prototypes in dos.h, which clashes with the gnulib function of the same name. lisp/emacs-lisp/timer.el (timer-until): Subtract results of float-time, instead of taking float-time of the result of time-subtract, since float-time signals an error for negative time arguments.
* | * lisp/emacs-lisp/cl-lib.el: Require macroexp.Stefan Monnier2012-06-301-1/+1
| |
* | * lisp/emacs-lisp/cl-lib.el: Require macroexp for its macros.Stefan Monnier2012-06-301-0/+2
|/
* * lisp/emacs-lisp/cl-lib.el (cl-pushnew): Use macroexp-let2.Stefan Monnier2012-06-291-10/+9
|
* lisp/emacs-lisp/cl-lib.el (cl-pushnew): Don't capture X (bug#11811).Juanma Barranquero2012-06-291-9/+10
|
* Make inlining of other-mode interpreted functions work.Stefan Monnier2012-06-272-39/+52
| | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile--refiy-function): New fun. (byte-compile): Use it to fix compilation of lexical-binding closures. * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Compile the function, if needed. Fixes: debbugs:11799
* * lisp/help-mode.el (help-make-xrefs): Don't just withstandStefan Monnier2012-06-271-1/+1
| | | | cyclic-variable-indirection but any error in documentation-property.
* Get rid of all the manual purecopy calls in menu-bar definitions.Stefan Monnier2012-06-271-127/+129
| | | | | | | | | | | | * lisp/loadup.el (purify-flag): Pre-grow the hash-table to reduce the memory use. * lisp/bindings.el (bindings--define-key): New function. * lisp/vc/vc-hooks.el, lisp/replace.el, lisp/menu-bar.el: * lisp/international/mule-cmds.el, lisp/emacs-lisp/lisp-mode.el: * lisp/buff-menu.el, lisp/bookmark.el: * bindings.el: Use it to purecopy define-key bindings. * src/fns.c (maybe_resize_hash_table): Output message when growing the purify-hashtable.
* * lisp/emacs-lisp/cl.el (flet): Mark obsolete.Stefan Monnier2012-06-273-8/+31
| | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-flet*): New macro. * lisp/vc/vc-rcs.el (vc-rcs-annotate-command, vc-rcs-parse): * lisp/progmodes/js.el (js-c-fill-paragraph): * lisp/progmodes/ebrowse.el (ebrowse-switch-member-buffer-to-sibling-class) (ebrowse-switch-member-buffer-to-derived-class): * test/automated/ert-x-tests.el (ert-test-run-tests-interactively-2): * lisp/play/5x5.el (5x5-solver): Use cl-flet. Fixes: debbugs:11780
* * lisp/emacs-lisp/cl.el: Use lexical-binding. Fix flet.Stefan Monnier2012-06-271-4/+17
| | | | | | | (cl--symbol-function): New macro. (cl--letf, cl--letf*): Use it. Fixes: debbugs:11780
* * lisp/emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name):Stefan Monnier2012-06-271-1/+2
| | | | Strip "toggle-" if any.
* Miscellaneous minor cleanups and simplifications.Stefan Monnier2012-06-234-15/+14
| | | | | | | | | | | * lisp/help-fns.el (describe-variable): Don't croak when doc is not found. * lisp/vc/pcvs.el (cvs-retrieve-revision): Avoid toggle-read-only. * lisp/menu-bar.el (menu-bar-line-wrapping-menu): Purecopy a tiny bit more. * lisp/emacs-lisp/syntax.el (syntax-ppss): Simplify with new `if' place. * lisp/emacs-lisp/smie.el (smie-next-sexp): CSE. * lisp/emacs-lisp/macroexp.el (macroexp-let2): Fix edebug spec and avoid ((lambda ..) ..). * lisp/emacs-lisp/eieio.el (eieio-oref, slot-value): Use simpler defsetf.
* * lisp/emacs-lisp/cl-macs.el (cl--make-usage-args): Handle improper lists.Stefan Monnier2012-06-232-24/+32
| | | | Fixes: debbugs:11719
* Further GV/CL cleanups.Stefan Monnier2012-06-226-259/+204
| | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/gv.el (gv-get): Autoload functions to find their gv-expander. (gv--defun-declaration): New function. (defun-declarations-alist): Use it. (gv-define-modify-macro, gv-pushnew!, gv-inc!, gv-dec!): Remove. (gv-place): Autoload. * lisp/emacs-lisp/cl.el (cl--dotimes, cl--dolist): Remember subr.el's original definition of dotimes and dolist. * lisp/emacs-lisp/cl-macs.el (cl-expr-access-order): Remove unused. (cl-dolist, cl-dotimes): Use `dolist' and `dotimes'. * lisp/emacs-lisp/cl-lib.el: Move gv handlers from cl-macs to here. (cl-fifth, cl-sixth, cl-seventh, cl-eighth) (cl-ninth, cl-tenth): Move gv handler to the function's definition. * lisp/emacs-lisp/cl-extra.el (cl-subseq, cl-get, cl-getf): Move gv handler to the function's definition. * lisp/Makefile.in (COMPILE_FIRST): Re-order to speed it up by about 50%. * lisp/window.el: * lisp/files.el: * lisp/faces.el: * lisp/env.el: Don't use CL.
* Support higher-resolution time stamps.Paul Eggert2012-06-221-36/+51
| | | | Fixes: debbugs:9000
* Provide generalized variables in core Elisp.Stefan Monnier2012-06-2214-802/+970
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/gv.el: New file. * lisp/subr.el (push, pop): Extend to generalized variables. * lisp/loadup.el (macroexp): Unload if preloaded and uncompiled. * lisp/emacs-lisp/cl-lib.el (cl-pop, cl-push, cl--set-nthcdr): Remove. * lisp/emacs-lisp/cl-macs.el: Require gv. Use gv-define-setter, gv-define-simple-setter, and gv-define-expander. Remove setf-methods defined in gv. Rename cl-setf -> setf. (cl-setf, cl-do-pop, cl-get-setf-method): Remove. (cl-letf, cl-letf*, cl-define-modify-macro, cl-defsetf) (cl-define-setf-expander, cl-struct-setf-expander): Move to cl.el. (cl-remf, cl-shiftf, cl-rotatef, cl-callf, cl-callf2): Rewrite with gv-letplace. (cl-defstruct): Don't define setf-method any more. * lisp/emacs-lisp/cl.el (flet): Don't autoload. (cl--letf, letf, cl--letf*, letf*, cl--gv-adapt) (define-setf-expander, defsetf, define-modify-macro) (cl-struct-setf-expander): Move from cl-lib.el. * lisp/emacs-lisp/syntax.el: * lisp/emacs-lisp/ewoc.el: * lisp/emacs-lisp/smie.el: * lisp/emacs-lisp/cconv.el: * lisp/emacs-lisp/timer.el: Rename cl-setf -> setf, cl-push -> push. (timer--time): Use gv-define-simple-setter. * lisp/emacs-lisp/macroexp.el (macroexp-let2): Rename from macroexp-let² to avoid coding-system problems in subr.el. Adjust all users. (macroexp--maxsize, macroexp-small-p): New functions. * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't use cl-letf. * lisp/scroll-bar.el (scroll-bar-mode): * lisp/simple.el (auto-fill-mode, overwrite-mode, binary-overwrite-mode) (normal-erase-is-backspace-mode): Don't use the `eq' place. * lisp/winner.el (winner-configuration, winner-make-point-alist) (winner-set-conf, winner-get-point, winner-set): Don't abuse letf. * lisp/files.el (locate-file-completion-table): Avoid list*. Fixes: debbugs:11657
* * lisp/emacs-lisp/pcase.el (pcase--expand): Warn for unused pattern.Stefan Monnier2012-06-181-11/+21
| | | | (pcase--u1, pcase--q1): Don't use apply-partially.
* Fix return value of `defun' and un-define it.Stefan Monnier2012-06-181-1/+3
| | | | | | | | | * src/data.c (Fdefalias): Return `symbol'. * doc/lispref/functions.texi (Defining Functions): * doc/lispref/macros.texi (Defining Macros): Un-define the return value of `defun', `defmacro' and `defalias'. Fixes: debbugs:11686
* * macroexp.el (macroexp--compiler-macro): Fix paren typo.Stefan Monnier2012-06-141-1/+1
|
* * lisp/emacs-lisp/cl-lib.el (cl--defsubst-expand): Autoload inliner.Stefan Monnier2012-06-142-8/+11
| | | | | | | * lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro): New function. (macroexp--expand-all): Use it. Fixes: debbugs:11649
* * lisp/emacs-lisp/cl-macs.el (cl--transform-function-property): Remove.Stefan Monnier2012-06-142-23/+8
| | | | | (cl-define-setf-expander, cl-deftype, cl-define-compiler-macro): Use `cl-function' instead.
* Auto-commit of loaddefs files.Glenn Morris2012-06-141-1/+1
|
* * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't add print-func.Stefan Monnier2012-06-131-8/+11
| | | | | * lisp/files.el: Require cl-lib. (file-name-non-special): Replace case -> cl-case.
* * lisp/emacs-lisp/edebug.el (edebug-read-function): Remove old incorrectStefan Monnier2012-06-131-2/+1
| | | | mapping from #' to function*.
* * lisp/emacs-lisp/byte-opt.el (featurep): Move compiler-macro...Stefan Monnier2012-06-132-10/+10
| | | | | | * lisp/emacs-lisp/bytecomp.el (featurep): ...here. Fixes: debbugs:11692
* * lisp/emacs-lisp/autoload.el (make-autoload): Accept nil doc-string-elt.Stefan Monnier2012-06-131-2/+3
| | | | | | Add cl-defun and cl-defmacro. Fixes: debbugs:11649
* Auto-commit of loaddefs files.Glenn Morris2012-06-131-1/+1
|
* In the Package Menu, indicate packages that are newly-available.Chong Yidong2012-06-131-27/+48
| | | | | | | | | | * lisp/emacs-lisp/package.el (list-packages): Compute a list of packages that are newly-available since the last list-packages invocation. (package-menu--new-package-list): New var. (package-menu--generate, package-menu--print-info) (package-menu--status-predicate, package-menu-mark-install): Handle new status label "new".
* * lisp/emacs-lisp/cl-macs.el (cl-remf): Fix error in recentStefan Monnier2012-06-121-1/+1
| | | | conversion to backquotes.
* Various minor variable/hook cleanups.Chong Yidong2012-06-122-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-inhibit-emacs-lisp-mode-bindings): Rename from gud-inhibit-global-bindings. * lisp/emacs-lisp/eieio.el (eieio-pre-method-execution-hooks): Doc fix. * lisp/erc/erc-dcc.el (erc-dcc-chat-filter-functions): Rename from erc-dcc-chat-filter-hook, since this is an abnormal hook. * lisp/nxml/nxml-glyph.el (nxml-glyph-set-functions): Rename abnormal hook from nxml-glyph-set-hook. * lisp/progmodes/cwarn.el (cwarn-mode): Remove redundant variable declaration. * lisp/progmodes/pascal.el (pascal-toggle-completions): Doc fix. * lisp/textmodes/bibtex.el (bibtex-string-file-path, bibtex-file-path): Convert to defcustom. * lisp/url/url-handlers.el (url-handler-regexp): * lisp/url/url-nfs.el (url-nfs-automounter-directory-spec): * lisp/url/url-vars.el (url-load-hook): Convert to defcustom.
* New input method vietnamese-vni.Nguyen Thai Ngoc Duy2012-06-121-1/+1
| | | | | | * leim/quail/vnvi.el: New file. Fixes: debbugs:11660
* * lisp/emacs-lisp/cl-macs.el (cl-parse-loop-clause): Fix error in recentStefan Monnier2012-06-111-1/+1
| | | | | | conversion to backquotes. Fixes: debbugs:11652
* Fix compiler-expansion of CL's cXXr functions.Stefan Monnier2012-06-113-66/+111
| | | | | | | | | | | | | | | | | | | | | | * emacs-lisp/cl-lib.el (cl--defalias): New function. (cl-values, cl-values-list, cl-copy-seq, cl-svref, cl-first) (cl-second, cl-rest, cl-endp, cl-third, cl-fourth): Use it. (cl-plusp, cl-minusp, cl-fifth, cl-sixth, cl-seventh, cl-eighth) (cl-ninth, cl-tenth): Mark them as inlinable. (cl-caaar, cl-caadr, cl-cadar, cl-caddr, cl-cdaar, cl-cdadr) (cl-cddar, cl-cdddr, cl-caaaar, cl-caaadr, cl-caadar, cl-caaddr) (cl-cadaar, cl-cadadr, cl-caddar, cl-cadddr, cl-cdaaar, cl-cdaadr) (cl-cdadar, cl-cdaddr, cl-cddaar, cl-cddadr, cl-cdddar, cl-cddddr): Add a compiler-macro declaration to use cl--compiler-macro-cXXr. (cl-list*, cl-adjoin): Don't put an autoload manually. * emacs-lisp/cl-macs.el (cl--compiler-macro-adjoin) (cl--compiler-macro-list*): Add autoload cookie. (cl--compiler-macro-cXXr): New function. * help-fns.el (help-fns--compiler-macro): New function extracted from describe-function-1; follow aliases and use `compiler-macro' property. (describe-function-1): Use it. Fixes: debbugs:11673
* Use lexical-binding for all of CL, and clean up its namespace.Stefan Monnier2012-06-117-319/+305
| | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-lib.el: Use lexical-binding. (cl-map-extents, cl-maclisp-member): Remove. (cl--set-elt, cl--set-nthcdr, cl--set-buffer-substring) (cl--set-substring, cl--block-wrapper, cl--block-throw) (cl--compiling-file, cl--mapcar-many, cl--do-subst): Use "cl--" prefix. * lisp/emacs-lisp/cl-extra.el: Use lexical-binding. (cl--mapcar-many, cl--map-keymap-recursively, cl--map-intervals) (cl--map-overlays, cl--set-frame-visible-p, cl--progv-save) (cl--progv-before, cl--progv-after, cl--finite-do, cl--set-getf) (cl--do-remf, cl--do-prettyprint): Use "cl--" prefix. * lisp/emacs-lisp/cl-seq.el: Use lexical-binding. (cl--parsing-keywords, cl--check-key, cl--check-test-nokey) (cl--check-test, cl--check-match): Use "cl--" prefix and backquotes. (cl--alist, cl--sublis-rec, cl--nsublis-rec, cl--tree-equal-rec): * lisp/emacs-lisp/cl-macs.el (cl--lambda-list-keywords): Use "cl--" prefix. * lisp/edmacro.el (edmacro-mismatch): Simplify to remove dependence on CL's internals.
* * lisp/emacs-lisp/pcase.el (pcase-UPAT, pcase-QPAT): New edebug specs.Johan Bockgård2012-06-101-3/+24
| | | | (pcase, pcase-let*, pcase-dolist): Use them.
* * lisp/emacs-lisp/pcase.el (pcase--let*): New function.Stefan Monnier2012-06-101-72/+90
| | | | | (pcase-let*): Use it. Use pcase--memoize to avoid repeated expansions. (pcase--expand): Use macroexp-let².
* Reduce use of cl in lisp/emacs-lisp/.Stefan Monnier2012-06-1012-258/+232
| | | | | | | | | * lisp/emacs-lisp/timer.el, lisp/emacs-lisp/syntax.el, lisp/emacs-lisp/smie.el: * lisp/emacs-lisp/ewoc.el, lisp/emacs-lisp/cconv.el,lisp/emacs-lisp/derived.el: * lisp/emacs-lisp/byte-opt.el, lisp/emacs-lisp/autoload.el: Convert to cl-lib. * lisp/emacs-lisp/easymenu.el, lisp/emacs-lisp/easy-mmode.el: * lisp/emacs-lisp/bytecomp.el: Use pcase instead of `cl'. * lisp/emacs-lisp/cl-lib.el: Get rid of special cl-macs auto load.
* Don't autoload functions too eagerly during macroexpansion.Stefan Monnier2012-06-087-56/+56
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Only autoload a function if there's a clear indication that it has a compiler-macro. * lisp/emacs-lisp/byte-run.el (defun-declarations-alist, defmacro, defun) (macro-declarations-alist): Add arglist to declaration functions. (defun-declarations-alist): Add `obsolete' and `compiler-macro'. * lisp/emacs-lisp/cl-seq.el (cl-member, cl-assoc): * lisp/emacs-lisp/cl-lib.el (cl-list*, cl-adjoin): * lisp/emacs-lisp/cl-extra.el (cl-get): Use the new `declare' statement. Also add autoload to find the compiler macro. * lisp/emacs-lisp/cl-macs.el (eql) [compiler-macro]: Remove. (cl--compiler-macro-member, cl--compiler-macro-assoc) (cl--compiler-macro-adjoin, cl--compiler-macro-list*) (cl--compiler-macro-get): New functions, replacing calls to cl-define-compiler-macro. (cl-typep) [compiler-macro]: Use macroexp-let².
* Clean up scoping rule of predefined single-word vars.Stefan Monnier2012-06-085-58/+56
| | | | | | | | | | | | * lisp/startup.el (argv, argi): Make lexically scoped. * lisp/emacs-lisp/float-sup.el (pi): Use internal-make-var-non-special. * lisp/emacs-lisp/cl-macs.el: Use lexical-binding. Rename cl-bind-* to cl--bind-*. * lisp/files.el: Don't require `cl' since it doesn't use it. * lisp/emacs-lisp/pcase.el, lisp/emacs-lisp/macroexp.el: Add coding cookie. * src/eval.c (Fmake_var_non_special): New primitive. (syms_of_eval): Defsubr it. * src/lread.c (syms_of_lread): Mark `values' as lexically scoped.
* Mention in "C-u C-x =" display how to insert the character w/o input methods.Eli Zaretskii2012-06-081-1/+1
| | | | | | | lisp/descr-text.el (describe-char): Mention how to insert the character, if the current input method doesn't support it. See the discussion in this thread for the details: http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00533.html.
* Get rid of cl-lexical-let, keeping only lexical-let for compatibility.Stefan Monnier2012-06-074-202/+249
| | | | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el: Provide itself. (cl--labels-convert-cache): New var. (cl--labels-convert): New function. (cl-flet, cl-labels): New implementation with new semantics, relying on lexical-binding. * lisp/emacs-lisp/cl.el: Mark compatibility aliases as obsolete. (cl-closure-vars, cl--function-convert-cache) (cl--function-convert): Move from cl-macs.el. (lexical-let, lexical-let*, flet, labels): Move from cl-macs.el and rename by removing the "cl-" prefix. * lisp/emacs-lisp/macroexp.el (macroexp-unprogn): New function.
* Move old compatiblity to cl.el. Remove cl-macroexpand-all.Stefan Monnier2012-06-075-210/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * emacs-lisp/cl-extra.el (cl-map-keymap, cl-copy-tree) (cl-not-hash-table, cl-builtin-gethash, cl-builtin-remhash) (cl-builtin-clrhash, cl-builtin-maphash, cl-gethash, cl-puthash) (cl-remhash, cl-clrhash, cl-maphash, cl-make-hash-table) (cl-hash-table-p, cl-hash-table-count): Move to cl.el. (cl-macroexpand-cmacs): Remove var. (cl-macroexpand-all, cl-macroexpand-body): Remove funs. Use macroexpand-all instead. * emacs-lisp/cl-lib.el (cl-macro-environment): Remove decl. (cl-macroexpand): Move to cl-macs.el and rename to cl--sm-macroexpand. (cl-member): Remove old alias. * emacs-lisp/cl-macs.el (cl-macro-environment): Remove var. Use macroexpand-all-environment instead. (cl--old-macroexpand): New var. (cl--sm-macroexpand): New function. (cl-symbol-macrolet): Use it during macro expansion. (cl--function-convert-cache): New var. (cl--function-convert): New function, extracted from cl-macroexpand-all. (cl-lexical-let): Use it. * emacs-lisp/cl.el (cl-macroexpand, cl-macro-environment) (cl-macroexpand-all, cl-not-hash-table, cl-builtin-gethash) (cl-builtin-remhash, cl-builtin-clrhash, cl-builtin-maphash) (cl-map-keymap, cl-copy-tree, cl-gethash, cl-puthash, cl-remhash) (cl-clrhash, cl-maphash, cl-make-hash-table, cl-hash-table-p) (cl-hash-table-count): Add old compatibility aliases.
* Cleanup cl-macs namespace. Add macro helpers in macroexp.el.Stefan Monnier2012-06-079-495/+507
| | | | | | | | | | | | | | | | | | | | | | | | | | | * emacs-lisp/macroexp.el (macroexp-progn, macroexp-let*, macroexp-if) (macroexp-let², macroexp--const-symbol-p, macroexp-const-p) (macroexp-copyable-p): New functions and macros. * emacs-lisp/edebug.el (edebug-unwrap): * emacs-lisp/disass.el (disassemble-internal): Use macroexp-progn. * emacs-lisp/pcase.el: Use macroexp-let*, macroexp-if, ... (pcase--let*): Remove. * emacs-lisp/bytecomp.el (byte-compile-const-symbol-p) (byte-compile-constp): Remove. Use macroexp--const-symbol-p and macroexp-const-p instead. * emacs-lisp/byte-opt.el: Use macroexp-const-p and macroexp-progn. * emacs-lisp/cl-macs.el: Clean up the name space by using "cl--" instead of "cl-" for internal definitions. Use macroexp-const-p. (cl-old-bc-file-form): Remove var. (cl-const-exprs-p): Remove fun. (cl-labels, cl-macrolet): Use backquote. (cl-lexical-let): Use cl-symbol-macrolet. Don't use cl-defun-expander. (cl-defun-expander, cl-byte-compile-compiler-macro): Remove fun. (cl-define-setf-expander): Rename from cl-define-setf-method. * emacs-lisp/cl.el: Adjust alias for define-setf-method. * international/mule-cmds.el: Don't require CL. (view-hello-file): Don't use `letf'.
* * lisp/emacs-lisp/macroexp.el: Don't require CL since we don't use it.Stefan Monnier2012-06-061-38/+36
| | | | | | | | (macroexp--cons): Rename from maybe-cons. (macroexp--accumulate): Rename from macroexp-accumulate. (macroexp--all-forms): Rename from macroexpand-all-forms. (macroexp--all-clauses): Rename from macroexpand-all-clauses. (macroexp--expand-all): Rename from macroexpand-all-1.
* * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Don't spam the outputStefan Monnier2012-06-061-1/+2
| | | | | | with "loading" messages. Fixes: debbugs:11635
* Remove lib-src/vcdiffGlenn Morris2012-06-051-1/+1
| | | | | | | | | | * lib-src/vcdiff: Remove file. * lib-src/Makefile.in (SCRIPTS, STAMP_SCRIPTS): Remove vcdiff. (stamp-vcdiff): Remove. * INSTALL, make-dist: Remove vcdiff. * lisp/emacs-lisp/authors.el (authors-fixed-entries): Remove vcdiff
* * emacs-list/cust-print.el: Move to obsolete.Stefan Monnier2012-06-051-683/+0
|
* * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Tolerate errors duringStefan Monnier2012-06-052-5/+12
| | | | compiler-macro expansion.
* Add native compiler-macro support.Stefan Monnier2012-06-056-56/+64
| | | | | | | | | | | | * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Support compiler-macros directly. Properly follow aliases and apply the compiler macros more thoroughly. * lisp/emacs-lisp/cl.el: Don't copy compiler-macro properties any more since macroexpand now properly follows aliases. * lisp/emacs-lisp/cl-macs.el (toplevel, cl-define-compiler-macro) (cl-compiler-macroexpand): Use new prop. * lisp/emacs-lisp/byte-opt.el (featurep): Optimize earlier. * lisp/emacs-lisp/cl-lib.el (custom-print-functions): Add compatibility alias.