1. 23 Aug, 2015 1 commit
  2. 22 Aug, 2015 1 commit
    • Paul Eggert's avatar
      text-quoting-style in emacs-lisp diagnostics · c87523bd
      Paul Eggert authored
      * lisp/emacs-lisp/advice.el (ad-read-advised-function)
      (ad-read-advice-class, ad-read-advice-name, ad-enable-advice)
      (ad-disable-advice, ad-remove-advice, ad-set-argument)
      * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
      (byte-compile-unfold-lambda, byte-optimize-form-code-walker)
      (byte-optimize-while, byte-optimize-apply):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode)
      (byte-compile-log-file, byte-compile-format-warn)
      (byte-compile-nogroup-warn, byte-compile-arglist-warn)
      (byte-compile-file, byte-compile-fix-header)
      (byte-compile--declare-var, byte-compile-file-form-defmumble)
      (byte-compile-form, byte-compile-normal-call)
      (byte-compile-variable-ref, byte-compile-variable-set)
      (byte-compile-subr-wrong-args, byte-compile-setq-default)
      (byte-compile-condition-case--new, byte-compile-save-excursion)
      (byte-compile-defvar, byte-compile-autoload)
      (byte-compile-make-variable-buffer-local, display-call-tree)
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
      * lisp/emacs-lisp/chart.el (chart-space-usage):
      * lisp/emacs-lisp/check-declare.el (check-declare-scan)
      (check-declare-warn, check-declare-file)
      * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine)
      * lisp/emacs-lisp/cl-extra.el (cl-parse-integer):
      * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause, cl-tagbody)
      * lisp/emacs-lisp/cl.el (cl-unload-function, flet):
      * lisp/emacs-lisp/copyright.el (copyright)
      * lisp/emacs-lisp/edebug.el (edebug-read-list):
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read):
      * lisp/emacs-lisp/eieio-core.el (eieio--slot-override)
      (eieio-oref, eieio-oset-default):
      * lisp/emacs-lisp/eieio-speedbar.el:
      * lisp/emacs-lisp/eieio.el (defclass, change-class):
      * lisp/emacs-lisp/elint.el (elint-file, elint-get-top-forms)
      (elint-init-form, elint-check-defalias-form)
      * lisp/emacs-lisp/ert.el (ert-get-test):
      * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol)
      * lisp/emacs-lisp/generator.el (iter-yield):
      * lisp/emacs-lisp/gv.el (gv-define-simple-setter):
      * lisp/emacs-lisp/lisp-mnt.el (lm-verify):
      * lisp/emacs-lisp/package-x.el (package-upload-file):
      * lisp/emacs-lisp/package.el (package-version-join)
      (package-disabled-p, package-activate-1, package-activate)
      (package-compute-transaction, package-install-from-archive)
      (package-install, package-install-selected-packages)
      (package-delete, package-autoremove)
      (package-install-button-action, package-delete-button-action)
      (package-menu-hide-package, package-menu--list-to-prompt)
      * lisp/emacs-lisp/pcase.el (pcase-exhaustive, pcase--u1):
      * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
      * lisp/emacs-lisp/ring.el (ring-next, ring-previous):
      * lisp/emacs-lisp/rx.el (rx-check, rx-anything):
      * lisp/emacs-lisp/smie.el (smie-config-save):
      * lisp/emacs-lisp/subr-x.el (internal--check-binding):
      * lisp/emacs-lisp/testcover.el (testcover-1value):
      Use curved quotes in diagnostic format strings.
  3. 14 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Prefer ‘format’ to ‘substitute-command-keys’ · 6af5aad2
      Paul Eggert authored
      * src/character.h (uLSQM, uRSQM): Move here ...
      * src/doc.c (uLSQM, uRSQM): ... from here.
      * src/doc.c (Fsubstitute_command_keys):
      * src/syntax.c (Finternal_describe_syntax_value):
      * lisp/cedet/mode-local.el (mode-local-print-binding)
      * lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
      * lisp/cus-theme.el (describe-theme-1):
      * lisp/descr-text.el (describe-text-properties-1, describe-char):
      * lisp/emacs-lisp/cl-extra.el (cl--describe-class):
      * lisp/emacs-lisp/cl-generic.el (cl--generic-describe):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor):
      * lisp/emacs-lisp/package.el (describe-package-1):
      * lisp/faces.el (describe-face):
      * lisp/help-fns.el (help-fns--key-bindings)
      (help-fns--compiler-macro, help-fns--parent-mode)
      (help-fns--obsolete, help-fns--interactive-only)
      (describe-function-1, describe-variable):
      * lisp/help.el (describe-mode):
      Prefer ‘format’ to ‘substitute-command-keys’ when either will do
      to implement quoting style.  This generally makes the code simpler.
  4. 07 Aug, 2015 1 commit
    • Phillip Lord's avatar
      Improve error signalling for seq-subseq. · feadec30
      Phillip Lord authored
      The existing behaviour for seq-subseq is to error when indexes are too
      large, but to silently ignore numbers which are too negative for lists.
      String and vector handling errors in both cases. This has been
      Error signalling behaviour has been explicitly added to the docstring of
      seq-subseq, and also to cl-subseq which largely defers to
      seq-subseq (and is therefore also impacted by this change).
      Tests have been added for these exceptional cases, as well as one non
      exceptional base case.
  5. 02 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Substitute some customization etc. doc strings · bd3b426e
      Paul Eggert authored
      These changes apply substitute-command-keys to some
      doc strings that were going through untranslated
      when creating customization or other widgets.
      * lisp/cus-edit.el (custom-group-value-create):
      * lisp/wid-edit.el (widget-default-create):
      Treat the widget tag as a doc string.
      * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slot):
      Treat the :documentation value as a doc string.
      * lisp/wid-edit.el (widget-choose):
      Treat the choice names as doc strings.
      (widget-default-create): Treat the :doc value as a doc string.
      (widget-toggle-value-create): Treat the :on and :off values
      as doc strings.
      Substitute the doc string.
  6. 07 Jul, 2015 1 commit
    • Stefan Monnier's avatar
      Add online-help support to describe types · 59b5723c
      Stefan Monnier authored
      * lisp/help-fns.el (describe-symbol-backends): Move to help-mode.el.
      (describe-symbol): Improve the selection of default.
      * lisp/help-mode.el: Require cl-lib.
      (describe-symbol-backends): Move from help-fns.el.
      (help-make-xrefs): Use it.
      * lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Add entry
      for types.
      (cl--typedef-regexp): New const.
      (find-function-regexp-alist): Add entry for types.
      (cl-help-type, cl-type-definition): New buttons.
      (cl-find-class): New function.
      (cl-describe-type): New command.
      (cl--describe-class, cl--describe-class-slot)
      (cl--describe-class-slots): New functions, moved from eieio-opt.el.
      * lisp/emacs-lisp/cl-generic.el (cl--generic-method-documentation)
      (cl--generic-all-functions, cl--generic-specializers-apply-to-type-p):
      New functions.  Moved from eieio-opt.el.
      (cl--generic-class-parents): New function, extracted from
      (cl--generic-struct-specializers): Use it.
      * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Use pcase-dolist.
      Improve constructor's docstrings.
      (cl-struct-unknown-slot): New error.
      (cl-struct-slot-offset): Use it.
      * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Record the type
      definition in current-load-list.
      * lisp/emacs-lisp/eieio-core.el (eieio--known-slot-names): New var.
      (eieio--add-new-slot): Set it.
      (eieio-defclass-internal): Use new name for current-load-list.
      (eieio-oref): Add compiler-macro to warn about unknown slots.
      * lisp/emacs-lisp/eieio.el (defclass): Update eieio--known-slot-names
      as compile-time as well.  Improve constructor docstrings.
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
      (eieio--help-print-slot, eieio-help-class-slots): Move to cl-extra.el.
      (eieio-class-def): Remove button.
      (eieio-help-constructor): Use new name for load-history element.
      (eieio--specializers-apply-to-class-p, eieio-all-generic-functions)
      (eieio-method-documentation): Move to cl-generic.el.
      (eieio-display-method-list): Use new names.
      * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression):
      Add "define-linline".
      (lisp-fdefs): Remove "defsubst".
      (el-fdefs): Add "defsubst", "cl-defsubst", and "define-linline".
      * lisp/emacs-lisp/macroexp.el (macroexp--warned): New var.
      (macroexp--warn-and-return): Use it to avoid inf-loops.
      Add `compile-only' argument.
  7. 27 Jun, 2015 1 commit
    • Paul Eggert's avatar
      cl-extra fixes for most-negative-fixnum · da5e0050
      Paul Eggert authored
      * lisp/emacs-lisp/cl-extra.el (cl-gcd, cl-lcm, cl-random):
      Don't mishandle an argument equal to most-negative-fixnum,
      whose absolute value equals itself.
      (cl-gcd, cl-lcm): Use dolist rather than doing it by hand.
  8. 15 Apr, 2015 1 commit
  9. 18 Jan, 2015 1 commit
    • Leo Liu's avatar
      Fix seq-subseq and cl-subseq for bad bounding indices · 253d44bd
      Leo Liu authored
      Fixes: debbugs:19434 debbugs:19519
      * lisp/emacs-lisp/cl-extra.el (cl-subseq): Use seq-subseq and fix
      multiple evaluation.
      * lisp/emacs-lisp/seq.el (seq-subseq): Throw bad bounding indices
      * test/automated/seq-tests.el (test-seq-subseq): Add more tests.
  10. 01 Jan, 2015 2 commits
  11. 24 Nov, 2014 1 commit
    • Leo Liu's avatar
      New macro macroexp-let2* · 6dbaf047
      Leo Liu authored
      * emacs-lisp/macroexp.el (macroexp-let2*): New macro.
      * window.el (with-temp-buffer-window)
      (with-current-buffer-window, with-displayed-buffer-window):
      * emacs-lisp/cl-macs.el (cl--compiler-macro-adjoin):
      * emacs-lisp/cl-lib.el (substring):
      * emacs-lisp/cl-extra.el (cl-getf): Use it.
  12. 09 Nov, 2014 1 commit
    • Stefan Monnier's avatar
      Fix bootstrap failure after last change to eval-and-compile. · 57db3f3a
      Stefan Monnier authored
      * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
      Don't call byte-compile-preprocess since the result will go through cconv.
      (byte-compile-output-docform): Handle uninterned `name' correctly.
      * lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Use interned name
      to circumvent byte-compiler bug.
      * lisp/emacs-lisp/cl-extra.el (cl-get): Silence compiler warning.
      * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Fix typo.
      (macroexp--compiler-macro): Remove left-over debug code.
  13. 23 Oct, 2014 1 commit
  14. 08 Oct, 2014 1 commit
    • Leo Liu's avatar
      Enhance terpri to allow conditionally output a newline · 2dbd7a37
      Leo Liu authored
      * doc/lispref/streams.texi (Output Functions): Document new argument ENSURE to
      * doc/misc/cl.texi (Porting Common Lisp): Remove parse-integer.
      * lisp/emacs-lisp/cl-extra.el (cl-fresh-line): New function.
      * src/keymap.c (describe_vector_princ):
      * src/keyboard.c (Fcommand_error_default_function): Adapt to change to
      * src/print.c (printchar_stdout_last): Declare.
      (printchar): Record the last char written to stdout.
      (Fterpri): Add optional argument ENSURE.
      * test/automated/print-tests.el: New file.
      (terpri): Tests for terpri.  (Bug#18652)
  15. 26 Sep, 2014 2 commits
    • Leo Liu's avatar
    • Leo Liu's avatar
      Add cl-parse-integer based on parse-integer · 89b354a5
      Leo Liu authored
      * doc/misc/cl.texi (Predicates on Numbers): Document cl-digit-char-p.
      (Numerical Functions): Document cl-parse-integer. 
      * lisp/calendar/parse-time.el (parse-time-digits): Remove.
      (digit-char-p, parse-integer) Moved to cl-lib.el.
      (parse-time-tokenize, parse-time-rules, parse-time-string): Use
      * lisp/emacs-lisp/cl-extra.el (cl-parse-integer): New function.
      * lisp/emacs-lisp/cl-lib.el (cl-digit-char-table): New var.
      (cl-digit-char-p): New function.
      * test/automated/cl-lib.el (cl-digit-char-p, cl-parse-integer): New
      Fixes: debbugs:18557
  16. 20 Mar, 2014 1 commit
  17. 01 Jan, 2014 1 commit
  18. 15 May, 2013 1 commit
  19. 01 Jan, 2013 1 commit
  20. 06 Dec, 2012 1 commit
    • Stefan Monnier's avatar
      Further cleanup of the "cl-" namespace. Fit CL in 80 columns. · 338bfefa
      Stefan Monnier authored
      * 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.
  21. 05 Nov, 2012 1 commit
    • Glenn Morris's avatar
      Misc small cl doc fixes · 5593ed90
      Glenn Morris authored
      * 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.
  22. 03 Nov, 2012 1 commit
    • Glenn Morris's avatar
      Rename cl-random-time to cl--random-time · 376a8e83
      Glenn Morris authored
      * emacs-lisp/cl-lib.el (cl--random-time): Rename from cl-random-time. 
      (cl--gensym-counter, cl--random-state): Update callers.
      * emacs-lisp/cl-extra.el (cl-make-random-state): Update callers.
      Fixes: debbugs:12773
  23. 30 Oct, 2012 1 commit
    • Glenn Morris's avatar
      cl-mapc small fixes · f43a5263
      Glenn Morris authored
      * lisp/emacs-lisp/cl-extra.el (cl-mapc): Add autoload cookie.  Doc fix.
      * doc/misc/cl.texi (Mapping over Sequences): Mention cl-mapc naming oddity.
  24. 28 Sep, 2012 1 commit
  25. 11 Jul, 2012 1 commit
    • Stefan Monnier's avatar
      More CL cleanups and reduction of use of cl.el. · a464a6c7
      Stefan Monnier authored
      * 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.
  26. 22 Jun, 2012 2 commits
    • Stefan Monnier's avatar
      Further GV/CL cleanups. · 36cec983
      Stefan Monnier authored
      * lisp/emacs-lisp/gv.el (gv-get): Autoload functions to find their
      (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.
    • Stefan Monnier's avatar
      Provide generalized variables in core Elisp. · 2ee3d7f0
      Stefan Monnier authored
      * 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
      (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
  27. 11 Jun, 2012 1 commit
    • Stefan Monnier's avatar
      Use lexical-binding for all of CL, and clean up its namespace. · bb3faf5b
      Stefan Monnier authored
      * 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.
  28. 09 Jun, 2012 1 commit
    • Stefan Monnier's avatar
      Don't autoload functions too eagerly during macroexpansion. · d9857e53
      Stefan Monnier authored
      * 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-typep) [compiler-macro]: Use macroexp-let².
  29. 07 Jun, 2012 1 commit
    • Stefan Monnier's avatar
      Move old compatiblity to cl.el. Remove cl-macroexpand-all. · 6fa6c4ae
      Stefan Monnier authored
      * 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-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.
  30. 04 Jun, 2012 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-lib.el: Rename from cl.el. · 7c1898a7
      Stefan Monnier authored
      * lisp/emacs-lisp/cl.el: New compatibility file.
      * emacs-lisp/cl-lib.el, lisp/emacs-lisp/cl-seq.el, lisp/emacs-lisp/cl-macs.el:
      * lisp/emacs-lisp/cl-extra.el: Rename all top-level functions and variables
      to obey the "cl-" prefix.
      * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Adjust to new name.
  31. 17 May, 2012 1 commit
    • Stefan Monnier's avatar
      Minor renaming of internal CL functions and variables. · 4735906a
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-seq.el (cl--adjoin): Rename from cl-adjoin.
      (cl--position): Rename from cl-position.
      (cl--delete-duplicates): Rename from cl-delete-duplicates.
      * lisp/emacs-lisp/cl.el (cl--gensym-counter): Rename from *gensym-counter*.
      (cl--random-state): Rename from *random-state*.
  32. 16 Apr, 2012 1 commit
  33. 11 Jan, 2012 1 commit
  34. 05 Jan, 2012 1 commit
  35. 27 Oct, 2011 1 commit
    • Glenn Morris's avatar
      Add doc-strings to some cl float parameters. · 416a2c45
      Glenn Morris authored
      * lisp/emacs-lisp/cl-extra.el (cl-float-limits): Add doc string.
      * lisp/emacs-lisp/cl.el (most-positive-float, most-negative-float)
      (least-positive-float, least-negative-float)
      (least-positive-normalized-float, least-negative-normalized-float)
      (float-epsilon, float-negative-epsilon): Add doc-strings,
      based on those in cl.texi.
      * lisp/emacs-lisp/cl-extra.el (most-positive-float, most-negative-float)
      (least-positive-float, least-negative-float)
      (least-positive-normalized-float, least-negative-normalized-float)
      (float-epsilon, float-negative-epsilon):
      Remove unnecessary declarations.
  36. 25 Feb, 2011 1 commit
    • Stefan Monnier's avatar
      Get rid of funvec. · 876c194c
      Stefan Monnier authored
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Handle new form of
      (byte-compile-close-variables, displaying-byte-compile-warnings):
      Add edebug spec.
      (byte-compile-toplevel-file-form): New fun, split out of
      (byte-compile-from-buffer): Use it to avoid applying cconv
      multiple times.
      (byte-compile): Only strip `function' if it's present.
      (byte-compile-lambda): Add `reserved-csts' argument.
      Use new lexenv arg of byte-compile-top-level.
      (byte-compile-reserved-constants): New var.
      (byte-compile-constants-vector): Obey it.
      (byte-compile-constants-vector): Handle new `byte-constant' form.
      (byte-compile-top-level): Add args `lexenv' and `reserved-csts'.
      (byte-compile-form): Don't check callargs here.
      (byte-compile-normal-call): Do it here instead.
      (byte-compile-resolve-unknown-constant): Remove, unused.
      (byte-compile-make-closure): Use `make-byte-code' rather than `curry',
      putting the environment into the "constant" pool.
      (byte-compile-get-closed-var): Use special byte-constant.
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Handle new
      intermediate special form `internal-make-vector'.
      (byte-optimize-lapcode): Handle new form of `byte-constant'.
      * lisp/help-fns.el (describe-function-1): Don't handle funvecs.
      * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Only convert quote to
      function if the content is a lambda expression, not if it's a closure.
      * emacs-lisp/eieio-come.el: Remove.
      * lisp/emacs-lisp/eieio.el: Don't require eieio-comp.
      (defmethod): Do a bit more work to find the body and wrap it into
      a function before passing it to eieio-defmethod.
      (eieio-defmethod): New arg `code' for it.
      * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Don't hide things in
      debugger backtrace.
      * lisp/emacs-lisp/cl-extra.el (cl-macroexpand-all): Use backquotes, and be
      more careful when quoting a function value.
      * lisp/emacs-lisp/cconv.el (cconv-freevars): Accept defvar/defconst.
      (cconv-closure-convert-rec): Catch stray `internal-make-closure'.
      * lisp/Makefile.in (COMPILE_FIRST): Compile pcase and cconv early.
      * src/eval.c (Qcurry): Remove.
      (funcall_funvec): Remove.
      (funcall_lambda): Move new byte-code handling to reduce impact.
      Treat all args as lexical in the case of lexbind.
      (Fcurry): Remove.
      * src/data.c (Qfunction_vector): Remove.
      (Ffunvecp): Remove.
      * src/lread.c (read1): Revert to calling make_byte_code here.
      (read_vector): Don't call make_byte_code any more.
      * src/lisp.h (enum pvec_type): Rename back to PVEC_COMPILED.
      (XSETCOMPILED): Rename back from XSETFUNVEC.
      (FUNVEC_SIZE): Remove.
      (COMPILEDP): Rename back from FUNVECP.
      * src/fns.c (Felt): Remove unexplained FUNVEC check.
      * src/doc.c (Fdocumentation): Don't handle funvec.
      * src/alloc.c (make_funvec, Ffunvec): Remove.
      * doc/lispref/vol2.texi (Top):
      * doc/lispref/vol1.texi (Top):
      * doc/lispref/objects.texi (Programming Types, Funvec Type, Type Predicates):
      * doc/lispref/functions.texi (Functions, What Is a Function, FunctionCurrying):
      * doc/lispref/elisp.texi (Top): Remove mentions of funvec and curry.
  37. 21 Feb, 2011 1 commit