Joakim Verona
c6b5fe1e94
auto upstream
2013-01-03 00:06:25 +01:00
Paul Eggert
0877d0dc24
Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca
2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68
Update copyright notices for 2013.
2013-01-01 09:11:05 +00:00
Joakim Verona
f38699858c
auto upstream
2012-12-07 07:27:24 +01:00
Stefan Monnier
4611a3cce7
* lisp/emacs-lisp/cl-macs.el (cl-tagbody): New macro.
2012-12-06 22:56:57 -05:00
Stefan Monnier
338bfefacb
Further cleanup of the "cl-" namespace. Fit CL in 80 columns.
...
* lisp/emacs-lisp/cl-macs.el (cl--pop2, cl--optimize-safety)
(cl--optimize-speed, cl--not-toplevel, cl--parse-loop-clause)
(cl--expand-do-loop, cl--proclaim-history, cl--declare-stack)
(cl--do-proclaim, cl--proclaims-deferred): Rename from the "cl-" prefix.
(cl-progv): Don't rely on dynamic scoping to find the body.
* lisp/emacs-lisp/cl-lib.el (cl--optimize-speed, cl--optimize-safety)
(cl--proclaims-deferred): Rename from the "cl-" prefix.
(cl-declaim): Use backquotes.
* lisp/emacs-lisp/cl-extra.el (cl-make-random-state, cl-random-state-p):
Use "cl--" prefix for the object's tag.
2012-12-06 16:29:29 -05:00
Joakim Verona
85157ae085
auto upstream
2012-11-29 21:25:35 +01:00
Glenn Morris
5c9cf0a3f9
Merge from emacs-24; up to 2012-11-20T20:06:17Z!monnier@iro.umontreal.ca
2012-11-26 19:10:32 -08:00
Stefan Monnier
35a1051652
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Add back `declare' in
...
the constructs to keep outside of the `cl-block'.
Fixes: debbugs:12977
2012-11-24 16:34:28 -05:00
Joakim Verona
e6206db426
upstream
2012-11-18 12:33:54 +01:00
Glenn Morris
96e055075d
Merge from emacs-24; up to 2012-11-13T18:57:26Z!dgutov@yandex.ru
2012-11-16 09:20:23 -08:00
Juanma Barranquero
662b0ee67c
lisp/emacs-lisp/cl-macs.el (cl-loop, cl-do, cl-do*): Doc fixes.
2012-11-15 22:01:25 +01:00
Stefan Monnier
eb31fa401d
* lisp/emacs-lisp/cl-macs.el (cl-flet, cl-flet*): Fix docstring.
...
Fixes: debbugs:12895
2012-11-15 13:35:05 -05:00
Stefan Monnier
589fc4791f
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Defend against
...
potential binding of print-gensym to t, and prettify (back)quotes in
case they appear in args's default values.
Fixes: debbugs:12884
2012-11-14 20:26:52 -05:00
Stefan Monnier
413d4689c0
* lisp/emacs-lisp/cl.el (dolist, dotimes, declare): Use advice-add to
...
override the default.
* lisp/emacs-lisp/cl-macs.el (cl-dolist, cl-dotimes): Rewrite without using
cl--dotimes/dolist.
* lisp/subr.el (dolist, dotimes, declare): Redefine them normally, even when
`cl' is loaded.
* lisp/emacs-lisp/nadvice.el (advice--normalize): New function, extracted
from add-advice.
(advice--strip-macro): New function.
(advice--defalias-fset): Use them to handle macros.
(advice-add): Use them.
(advice-member-p): Correctly handle macros.
2012-11-12 22:00:09 -05:00
Joakim Verona
74fa27af7f
upstream
2012-11-13 03:01:33 +01:00
Joakim Verona
643b189334
upstream
2012-11-06 23:01:10 +01:00
Glenn Morris
5593ed900d
Misc small cl doc fixes
...
* emacs-lisp/cl-extra.el (cl-maplist, cl-mapcan): Doc fix.
* emacs-lisp/cl-extra.el (cl-prettyexpand):
* emacs-lisp/cl-lib.el (cl-proclaim, cl-declaim):
* emacs-lisp/cl-macs.el (cl-destructuring-bind, cl-locally)
(cl-the, cl-compiler-macroexpand): Add basic doc strings.
2012-11-05 00:29:12 -08:00
Glenn Morris
4913840013
Rename cl-loop-handler, cl-loop-for-handler back to their original names
...
* lisp/emacs-lisp/cl-macs.el (cl-parse-loop-clause):
Rename handler properties back from cl-- to cl-.
Fixes: debbugs:12788
2012-11-03 11:32:09 -07:00
Glenn Morris
5c677d4410
* lisp/emacs-lisp/cl-macs.el (cl-do-all-symbols): Add doc string.
2012-11-03 11:03:39 -07:00
Joakim Verona
d1eb940020
upstream
2012-10-25 13:00:31 +02:00
Glenn Morris
a05cb6e326
More cl doc updates
...
* doc/misc/cl.texi: Don't mess with the TeX section number counter.
Use Texinfo recommended convention for quotes+punctuation.
(Overview, Sequence Functions): Rephrase for better line-breaking.
(Time of Evaluation, Type Predicates, Modify Macros, Function Bindings)
(Macro Bindings, Conditionals, Iteration, Loop Basics)
(Random Numbers, Mapping over Sequences, Structures)
(Porting Common Lisp): Further updates for cl-lib namespace.
(Modify Macros, Declarations, Macro Bindings, Structures):
Break long lines in examples.
(Dynamic Bindings): Update for changed progv behavior.
(Loop Examples, Efficiency Concerns): Markup fixes.
(Structures): Remove TeX margin change.
* lisp/emacs-lisp/cl-macs.el (cl-progv): Doc fix.
* etc/NEWS: Related markup.
2012-10-24 20:58:40 -04:00
Joakim Verona
6d3ae67115
upstream
2012-10-20 18:14:08 +02:00
Joakim Verona
017a270078
upstream
2012-10-16 17:14:35 +02:00
Stefan Monnier
94c66ce57b
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Obey the :read-only property.
2012-10-09 02:01:10 -04:00
Stefan Monnier
685f87b00f
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Improve docstring.
2012-10-06 13:34:57 -04:00
Glenn Morris
e60b51abaa
* bytecomp.el (byte-compile-cl-file-p): Only "cl.el" counts as cl these days.
...
Remove no longer appropriate file-local suppression of CL warnings in
lisp/emacs-lisp/cl-*.el files.
2012-09-28 19:30:52 -04:00
Joakim Verona
b035a30e5c
upstream
2012-09-10 16:03:53 +02:00
Stefan Monnier
9b851e2550
New emacs-lisp-byte-code-mode; misc minor changes.
...
* lisp/emacs-lisp/lisp-mode.el (emacs-list-byte-code-comment-re): New var.
(emacs-lisp-byte-code-comment)
(emacs-lisp-byte-code-syntax-propertize, emacs-lisp-byte-code-mode):
New functions.
(eval-sexp-add-defvars): Don't skip defvars in column >0.
(eval-defun-2): Remove bogus interactive spec.
(lisp-indent-line): Remove redundant whole-exp code, now done in
indent-according-to-mode.
(save-match-data): Remove redundant indent data.
* lisp/emacs-lisp/benchmark.el (benchmark-run, benchmark-run-compiled):
Use `declare'.
* lisp/gnus/qp.el (quoted-printable-decode-region):
Inline+CSE+strength-reduction.
2012-09-09 21:16:13 -04:00
Stefan Monnier
d458ef98df
* lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Understand _ on &key args.
...
(cl--make-usage-args): Strip _ from argument names.
Fixes: debbugs:12367
2012-09-06 11:35:08 -04:00
Stefan Monnier
972debf2e7
Macro-expand interpreted code during load.
...
* src/lread.c (readevalloop): Call internal-macroexpand-for-load to perform
eager (load-time) macro-expansion.
* src/lisp.mk (lisp): Add macroexp.
* lisp/loadup.el: Load macroexp. Remove hack.
* lisp/emacs-lisp/macroexp.el (macroexp--eval-if-compile): New function.
(macroexp--expand-all): Use it to get better warnings.
(macroexp--backtrace, macroexp--trim-backtrace-frame)
(internal-macroexpand-for-load): New functions.
(macroexp--pending-eager-loads): New var.
(emacs-startup-hook): New hack to replace one in loadup.el.
* lisp/emacs-lisp/cl-macs.el (cl--compiler-macro-list*)
(cl--compiler-macro-cXXr): Move to top, before they can be used.
(cl-psetf): Simplify.
(cl-defstruct): Add indent rule.
2012-09-04 13:40:25 -04:00
Joakim Verona
b648c26ec6
upstream
2012-08-15 21:49:40 +02:00
Stefan Monnier
d301b4133f
* lisp/emacs-lisp/cl-macs.el (cl-loop): Improve debug spec.
2012-08-10 15:34:36 -04:00
Stefan Monnier
ea3768613f
* lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Fix handling of
...
re-binding a symbol that has a symbol-macro.
Fixes: debbugs:12119
2012-08-06 15:53:45 -04:00
Joakim Verona
5fb6319784
upstream
2012-07-27 02:22:03 +02:00
Stefan Monnier
7abaf5ccc9
Autoload more carefully from Lisp. Follow aliases for function properties.
...
* lisp/subr.el (autoloadp): New function.
(symbol-file): Use it.
(function-get): New function.
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Use function-get and
autoload-do-load.
* lisp/emacs-lisp/lisp-mode.el (lisp-font-lock-syntactic-face-function)
(lisp-indent-function):
* lisp/emacs-lisp/gv.el (gv-get):
* lisp/emacs-lisp/edebug.el (get-edebug-spec, edebug-basic-spec):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form):
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
* lisp/emacs-lisp/autoload.el (make-autoload, autoload-print-form):
Use function-get.
* lisp/emacs-lisp/cl.el: Don't propagate function properties any more.
* src/eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
add argument, tune behavior, and adjust all callers.
* lisp/speedbar.el (speedbar-add-localized-speedbar-support):
* lisp/emacs-lisp/disass.el (disassemble-internal):
* lisp/desktop.el (desktop-load-file):
* lisp/help-fns.el (help-function-arglist, find-lisp-object-file-name)
(describe-function-1):
* lisp/emacs-lisp/find-func.el (find-function-noselect):
* lisp/emacs-lisp/elp.el (elp-instrument-function):
* lisp/emacs-lisp/advice.el (ad-has-proper-definition):
* lisp/apropos.el (apropos-safe-documentation, apropos-macrop):
* lisp/emacs-lisp/debug.el (debug-on-entry):
* lisp/emacs-lisp/cl-macs.el (cl-compiler-macroexpand):
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand):
* lisp/calc/calc.el (name): Use autoloadp & autoload-do-load.
2012-07-25 21:27:33 -04:00
Stefan Monnier
88ecaf8fa5
* lisp/emacs-lisp/cl-macs.el (cl-progv): Use a properly prefixed var name.
2012-07-17 08:58:25 -04:00
Stefan Monnier
a464a6c73a
More CL cleanups and reduction of use of cl.el.
...
* woman.el, winner.el, vc/vc-rcs.el, vc/vc-hooks.el, vc/vc-hg.el:
* vc/vc-git.el, vc/vc-dir.el, vc/vc-bzr.el, vc/vc-annotate.el:
* textmodes/tex-mode.el, textmodes/sgml-mode.el, tar-mode.el:
* strokes.el, ses.el, server.el, progmodes/js.el, progmodes/gdb-mi.el:
* progmodes/flymake.el, progmodes/ebrowse.el, progmodes/compile.el:
* play/tetris.el, play/snake.el, play/pong.el, play/landmark.el:
* play/hanoi.el, play/decipher.el, play/5x5.el, nxml/nxml-mode.el:
* net/secrets.el, net/quickurl.el, midnight.el, mail/footnote.el:
* image-dired.el, ibuffer.el, ibuf-macs.el, ibuf-ext.el, hexl.el:
* eshell/eshell.el, eshell/esh-io.el, eshell/esh-ext.el:
* eshell/esh-cmd.el, eshell/em-ls.el, eshell/em-hist.el:
* eshell/em-cmpl.el, eshell/em-banner.el:
* url/url.el, url/url-queue.el, url/url-parse.el, url/url-http.el:
* url/url-future.el, url/url-dav.el, url/url-cookie.el:
* calendar/parse-time.el, test/eshell.el: Use cl-lib.
* wid-browse.el, wdired.el, vc/vc.el, vc/vc-mtn.el, vc/vc-cvs.el:
* vc/vc-arch.el, tree-widget.el, textmodes/texinfo.el:
* textmodes/refill.el, textmodes/css-mode.el, term/tvi970.el:
* term/ns-win.el, term.el, shell.el, ps-samp.el:
* progmodes/perl-mode.el, progmodes/pascal.el, progmodes/gud.el:
* progmodes/glasses.el, progmodes/etags.el, progmodes/cwarn.el:
* play/gamegrid.el, play/bubbles.el, novice.el, notifications.el:
* net/zeroconf.el, net/xesam.el, net/snmp-mode.el, net/mairix.el:
* net/ldap.el, net/eudc.el, net/browse-url.el, man.el:
* mail/mailheader.el, mail/feedmail.el:
* url/url-util.el, url/url-privacy.el, url/url-nfs.el, url/url-misc.el:
* url/url-methods.el, url/url-gw.el, url/url-file.el, url/url-expand.el:
Dont use CL.
* ibuf-ext.el (ibuffer-mark-old-buffers): Use float-time.
* eshell/esh-opt.el (eshell-eval-using-options): Quote code with
`lambda' rather than with `quote'.
(eshell-do-opt): Adjust accordingly.
(eshell-process-option): Simplify.
* eshell/esh-var.el:
* eshell/em-script.el: Require `esh-opt' for eshell-eval-using-options.
* emacs-pcase.el (pcase--dontcare-upats, pcase--let*)
(pcase--expand, pcase--u1): Rename pcase's internal `dontcare' pattern
to `pcase--dontcare'.
* emacs-cl.el (labels): Mark obsolete.
(cl--letf, letf): Move to cl-lib.
(cl--letf*, letf*): Remove.
* emacs-cl-lib.el (cl-nth-value): Use defalias.
* emacs-cl-macs.el (cl-dolist, cl-dotimes): Add indent rule.
(cl-progv): Rewrite.
(cl--letf, cl-letf): Move from cl.el.
(cl-letf*): New macro.
* emacs-cl-extra.el (cl--progv-before, cl--progv-after): Remove.
2012-07-11 19:13:41 -04:00
Stefan Monnier
d5c6faf921
* lisp/emacs-lisp/cl.el (flet): Mark obsolete.
...
* 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
2012-06-27 11:11:28 -04:00
Stefan Monnier
b68581e26c
* lisp/emacs-lisp/cl-macs.el (cl--make-usage-args): Handle improper lists.
...
Fixes: debbugs:11719
2012-06-23 00:24:06 -04:00
Stefan Monnier
36cec983d4
Further GV/CL cleanups.
...
* 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.
2012-06-22 17:24:54 -04:00
Stefan Monnier
2ee3d7f0aa
Provide generalized variables in core Elisp.
...
* 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
2012-06-22 09:42:38 -04:00
Joakim Verona
32d8ff0e7c
upstream
2012-06-18 15:46:35 +02:00
Stefan Monnier
4302f5ba6e
* lisp/emacs-lisp/cl-macs.el (cl--transform-function-property): Remove.
...
(cl-define-setf-expander, cl-deftype, cl-define-compiler-macro):
Use `cl-function' instead.
2012-06-14 21:07:03 -04:00
Stefan Monnier
5a315f9ce9
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't add print-func.
...
* lisp/files.el: Require cl-lib.
(file-name-non-special): Replace case -> cl-case.
2012-06-13 16:52:25 -04:00
Joakim Verona
13d6898b06
upstream, doesn build yet
2012-06-13 18:00:21 +02:00
Stefan Monnier
ad4d226cb8
* lisp/emacs-lisp/cl-macs.el (cl-remf): Fix error in recent
...
conversion to backquotes.
2012-06-12 14:10:34 -04:00
Stefan Monnier
2eb8792296
* lisp/emacs-lisp/cl-macs.el (cl-parse-loop-clause): Fix error in recent
...
conversion to backquotes.
Fixes: debbugs:11652
2012-06-11 16:47:33 -04:00
Stefan Monnier
71adb94b71
Fix compiler-expansion of CL's cXXr functions.
...
* 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
2012-06-11 16:35:00 -04:00
Stefan Monnier
bb3faf5b98
Use lexical-binding for all of CL, and clean up its namespace.
...
* 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.
2012-06-11 11:52:50 -04:00