summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-macs.el
Commit message (Collapse)AuthorAgeFilesLines
...
* Autoload cl-struct-slot-infoLars Ingebrigtsen2021-09-051-0/+1
| | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-struct-slot-info): Autoload (bug#50301). * test/lisp/emacs-lisp/memory-report-tests.el: Don't require cl-macs.
* Clarify cl-defstruct doc string and manual entry somewhatLars Ingebrigtsen2021-08-211-10/+15
| | | | | | | | | * doc/misc/cl.texi (Structures): Rename the slot "name" in the examples to "first-name", since we're talking about the names of slots a lot here, and having a slot with the name "name" makes the examples somewhat confusing. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Clarify certain things about slots (bug#14278).
* * lisp/emacs-lisp/cl-macs.el (fixnum, bignum): Fix type definitionsStefan Monnier2021-08-111-3/+3
|
* * lisp/emacs-lisp/cl-macs.el: Add cl-type patternAdam Porter2021-07-301-0/+8
| | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el: ((pcase-defmacro type)): Add 'cl-type' pattern. * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-cl-type): Add test. * doc/lispref/control.texi (pcase Macro): Update manual. With thanks to Stefan Monnier and Eli Zaretskii for their guidance.
* * lisp/emacs-lisp/cl-macs.el: Fix test regressionStefan Monnier2021-06-261-1/+8
| | | | | (cl--alist-to-plist): New function. (cl-struct-slot-info): Use it.
* * lisp/emacs-lisp/cl-macs.el (cl-loop): Add missing 'when' to specPhilipp Stephani2021-05-221-1/+2
|
* Fix a few Edebug specifications where code is wrapped in lambdas.Philipp Stephani2021-05-171-2/+3
| | | | | | | | | | | | | | | | | | | | | | As the Info node `(elisp) Specification List' explains, it is not correct to use `body' or t for a piece of code that the macro wraps in a `lambda' form. These should use `def-body' instead. * lisp/info-xref.el (info-xref-with-file): * lisp/subr.el (subr--with-wrapper-hook-no-warnings, track-mouse) (combine-change-calls, with-eval-after-load): * lisp/emacs-lisp/bytecomp.el (displaying-byte-compile-warnings): * lisp/emacs-lisp/cl-macs.el (cl-do-symbols, cl-progv): * lisp/emacs-lisp/ert-x.el (ert-with-test-buffer): * lisp/emacs-lisp/gv.el (gv-letplace): * lisp/emacs-lisp/nadvice.el (define-advice): * lisp/emacs-lisp/thunk.el (thunk-delay): * lisp/vc/vc-dispatcher.el (vc-run-delayed): Use 'def-body' instead of t or 'body' where applicable. * lisp/emacs-lisp/package.el (package--with-response-buffer): Remove evaluation of the body altogether. I have no idea how to write it correctly in this case.
* Merge remote-tracking branch 'savannah/master' into native-compAndrea Corallo2021-04-191-1/+3
|\
| * Add condition-case success handler (bug#47677)Mattias Engdegård2021-04-151-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow a condition-case handler on the form (:success BODY) to be specified as the success continuation of the protected form, with the specified variable bound to its result. * src/eval.c (Fcondition_case): Update the doc string. (internal_lisp_condition_case): Implement in interpreter. (syms_of_eval): Defsym :success. * lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case): Implement in byte-compiler. * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Allow self-TCO from success handler. * doc/lispref/control.texi (Handling Errors): Update manual. * etc/NEWS: Announce. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases) (bytecomp-condition-case-success): * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test cases.
* | Merge remote-tracking branch 'savannah/master' into native-compAndrea Corallo2021-04-131-0/+7
|\|
| * Self-TCO in `condition-case` error handlersMattias Engdegård2021-04-091-0/+7
| | | | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Recognise `condition-case` handlers as being in the tail position. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Extend test.
* | Merge remote-tracking branch 'savannah/master' into native-compAndrea Corallo2021-03-251-1/+2
|\|
| * Fix cl-progv binding orderToby Cubitt2021-03-201-1/+2
| | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-progv): Bind variables in the correct order (bug#47272).
* | Merge remote-tracking branch 'savannah/master' into native-compAndrea Corallo2021-03-191-6/+18
|\|
| * * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Optimize the "return nil" caseStefan Monnier2021-03-181-6/+12
| |
| * Optimise tail calls in `and` and `or` forms in `cl-labels` functionsMattias Engdegård2021-03-181-0/+6
| | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Handle `and` and `or`. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test cases.
* | Merge commit '9cbdf20316' into native-compAndrea Corallo2021-03-091-10/+9
|\|
| * Fix pcase dontcare pattern in cl--sm-macroexpandBasil L. Contovounesios2021-03-041-1/+1
| | | | | | | | | | | | | | | | For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2021-03/msg00119.html * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Fix recently uncovered use of old name for pcase--dontcare.
| * Fix misuses of `byte-compile-macro-environment`Stefan Monnier2021-03-011-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These seem to be left overs from Emacs<24 when `macroexpand-all` was implemented in the CL library and hence the macros's evaluation environment could come from different places depending on the circumstance (either `byte-compile-macro-environment`, or `cl-macro-environment`, or ...). `byte-compile-macro-environment` contains definitions which expand to code that is only understood by the rest of the byte-compiler, so using it for code which isn't being byte-compiled leads to errors such as references to non-existing function `internal--with-suppressed-warnings`. * lisp/emacs-lisp/cl-extra.el (cl-prettyexpand): Remove left-over binding from when `macroexpand-all` was implemented in the CL library. * lisp/emacs-lisp/ert.el (ert--expand-should-1): * lisp/emacs-lisp/cl-macs.el (cl--compile-time-too): Properly preserve the macroexpand-all-environment. (cl--macroexp-fboundp): Pay attention to `cl-macrolet` macros as well.
| * * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warningsStefan Monnier2021-02-261-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of warning about unused vars during the analysis phase of closure conversion, do it in the actual closure conversion by annotating the code with "unused" warnings, so that the warnings get emitted later by the bytecomp phase, like all other warnings, at which point the line-number info is a bit less imprecise. Take advantage of this change to wrap the expressions of unused let-bound vars inside (ignore ...) so the byte-compiler can better optimize them away. Finally, promote `macroexp--warn-and-return` to "official" status by removing its "--" marker. (cconv-captured+mutated, cconv-lambda-candidates): Remove vars. (cconv-var-classification): New var to replace them. (cconv-warnings-only): Delete function. (cconv--warn-unused-msg, cconv--var-classification): New functions. (cconv--convert-funcbody): Add warnings for unused args. (cconv-convert): Add warnings for unused vars in `let` and `condition-case`. (cconv--analyze-use): Don't emit an "unused var" warning any more, but instead remember the fact in `cconv-var-classification`. * lisp/emacs-lisp/bytecomp.el (byte-compile-force-lexical-warnings): Remove variable. (byte-compile-preprocess): Remove corresponding case. * lisp/emacs-lisp/pcase.el (pcase--if): Don't throw away `test` effects. (\`): * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Use `car-safe` instead of `car`, so it can more easily be removed by the optimizer if the result is not used. * lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): New function. (macroexp-warn-and-return): Rename from `macroexp--warn-and-return`.
* | Merge remote-tracking branch 'savannah/master' into native-compAndrea Corallo2021-02-261-9/+9
|\|
| * * lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function.Stefan Monnier2021-02-241-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Yes, finally: a function that tells you the name of the file where the code is located. Finding this name is non-trivial in practice, as evidenced by the "4 shift/reduce conflicts" warning when compiling CEDET's python.el, because its `wisent-source` got it wrong in that case, thinking the grammar came from `python.el` instead of `python-wy.el`. While at it, also made `macroexp-compiling-p` public, since it's useful at various places. (macroexp-compiling-p): Rename from `macroexp--compiling-p`. * lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables): Bind `load-file-name` to nil so we can distinguish a load that calls the byte compiler from a byte compilation which causes a load. * lisp/cedet/semantic/wisent/python.el (wisent-python--expected-conflicts): Remove; it was just a workaround. * lisp/subr.el (do-after-load-evaluation): Avoid `byte-compile--` vars. * lisp/cedet/semantic/fw.el (semantic-alias-obsolete): Use `macroexp-compiling-p` and `macroexp-file-name`. * lisp/cedet/semantic/wisent/comp.el (wisent-source): Use `macroexp-file-name` (wisent-total-conflicts): Tighten regexp. * lisp/emacs-lisp/cl-lib.el (cl--compiling-file): Delete function and variable. Use `macroexp-compiling-p` instead. * lisp/progmodes/flymake.el (flymake-log): * lisp/emacs-lisp/package.el (package-get-version): * lisp/emacs-lisp/ert-x.el (ert-resource-directory): Use `macroexp-file-name`.
* | Merge remote-tracking branch 'savannah/master' into native-compAndrea Corallo2021-02-171-90/+111
|\|
| * * Edebug: Generalize `&lookup`, use it for `cl-macrolet` and `cl-generic`Stefan Monnier2021-02-141-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the use of (declare (debug ...)) in the lexical macros defined with `cl-macrolet`. It also fixes the names used by Edebug for the methods of `cl-generic` so it doesn't need to use gensym and so they don't include the formal arg names any more. * lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Rename from `edebug--handle-&-spec-op`. (edebug--match-&-spec-op <&interpose>): Rename from `&lookup` and generalize so it can let-bind dynamic variables around the rest of the parse. (edebug-lexical-macro-ctx): Rename from `edebug--cl-macrolet-defs` and make it into an alist. (edebug-list-form-args): Use the specs from `edebug-lexical-macro-ctx` when available. (edebug--current-cl-macrolet-defs): Delete var. (edebug-match-cl-macrolet-expr, edebug-match-cl-macrolet-name) (edebug-match-cl-macrolet-body): Delete functions. (def-declarations): Use new `&interpose`. (edebug--match-declare-arg): Rename from `edebug--get-declare-spec` and adjust to new calling convention. * lisp/subr.el (def-edebug-elem-spec): Fix docstring. (eval-after-load): Use `declare`. * lisp/emacs-lisp/cl-generic.el: Fix Edebug names so we don't need gensym any more and we only include the specializers but not the formal arg names. (cl--generic-edebug-name): New var. (cl--generic-edebug-remember-name, cl--generic-edebug-make-name): New funs. (cl-defgeneric, cl-defmethod): Use them. * lisp/emacs-lisp/cl-macs.el: Add support for `debug` declarations in `cl-macrolet`. (cl-declarations-or-string): Fix use of `lambda-doc` and allow use of `declare`. (edebug-lexical-macro-ctx): Declare var. (cl--edebug-macrolet-interposer): New function. (cl-macrolet): Use it to pass the right `lexical-macro-ctx` to the body. * lisp/emacs-lisp/pcase.el (pcase-PAT): Use new `&interpose`. (pcase--edebug-match-pat-args): Rename from `pcase--get-edebug-spec` and adjust to new calling convention. * test/lisp/emacs-lisp/cl-generic-tests.el (cl-defgeneric/edebug/method): Adjust to the new names. * test/lisp/emacs-lisp/edebug-tests.el (edebug-cl-defmethod-qualifier) (edebug-tests-cl-flet): Adjust to the new names. * doc/lispref/edebug.texi (Specification List): Document &interpose.
| * * lisp/emacs-lisp/edebug.el (edebug--handle-&-spec-op <&name>): New methodStefan Monnier2021-02-131-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (edebug--concat-name): New function. (edebug-match-name, edebug-match-cl-generic-method-qualifier) (edebug-match-cl-generic-method-args): Delete functions. * doc/lispref/edebug.texi (Specification List): Document it. * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Use `&name`. (cl-generic--method-qualifier-p): New predicate. (cl-defmethod): Use it and `&name`. * lisp/emacs-lisp/cl-macs.el (cl-defun, cl-iter-defun, cl-flet): * lisp/emacs-lisp/eieio-compat.el (defmethod): * lisp/emacs-lisp/gv.el (gv-define-setter): * lisp/emacs-lisp/ert.el (ert-deftest): Use `&name`. * lisp/erc/erc-backend.el (define-erc-response-handler): Use `declare` and `&name`.
| * Edebug: Overload `edebug-form-spec` even lessStefan Monnier2021-02-121-85/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `edebug-form-spec` symbol property was used both to map forms's head symbol to the corresponding spec, and to map spec element names to their expansion. This lead to name conflicts which break instrumentation of examples such as (cl-flet ((gate (x) x)) (gate 4)) because of the Edebug spec element `gate`. So introduce a new symbol property `edebug-elem-spec`. * lisp/subr.el (def-edebug-elem-spec): New function. * lisp/emacs-lisp/edebug.el (edebug--get-elem-spec): New function. (edebug-match-symbol): Use it. (Core Edebug elems): Put them on `edebug-elem-spec` instead of `edebug-form-spec`. (ELisp special forms): Set their `edebug-form-spec` via dolist. (Other non-core Edebug elems): Use `def-edebug-elem-spec`. (edebug-\`): Use `declare`. * lisp/emacs-lisp/pcase.el (pcase-PAT, pcase-FUN, pcase-QPAT): * lisp/skeleton.el (skeleton-edebug-spec): * lisp/emacs-lisp/cl-macs.el: Use `def-edebug-elem-spec`. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests--conflicting-internal-names): New test. * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el (edebug-test-code-cl-flet1): New test case. * doc/lispref/edebug.texi (Specification List): Add `def-edebug-elem-spec`. (Specification Examples): Use it. * doc/lispref/loading.texi (Hooks for Loading): Avoid the use of `def-edebug-spec` in example (better use `debug` declaration).
| * * lisp/emacs-lisp/cl-macs.el (cl-flet): Fix edebug specStefan Monnier2021-02-121-1/+1
| |
* | Merge remote-tracking branch 'savannah/master' into native-compAndrea Corallo2021-01-161-9/+114
|\|
| * * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Fix build of gnus-agent.elStefan Monnier2021-01-091-1/+2
| | | | | | | | Don't burp on "naked" variable let bindings.
| * Fix cl-concatenate use in macrosEli Zaretskii2021-01-091-2/+2
| | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (inline): Remove cl-concatenate. (Bug#45610)
| * * lisp/emacs-lisp/cl-macs.el: Optimize self-calls in tail positionStefan Monnier2021-01-081-7/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a limited form of tail-call optimization for the special case of recursive functions defined with `cl-labels`. Only self-recursion is optimized, no attempt is made to handle more complex cases such a mutual recursion. The main benefit is to reduce the use of the stack, tho in my limited tests, this can also improve performance (about half of the way to a hand-written `while` loop). (cl--self-tco): New function. (cl-labels): Use it. * lisp/subr.el (letrec): Optimize single-binding corner case. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add tests to check that TCO is working.
* | Fix `functionp' contraining (bug#45576)Andrea Corallo2021-01-021-2/+1
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-known-predicates) (comp-known-predicates-h): New constants. (comp-known-predicate-p, comp-pred-to-cstr): New functions. * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Don't define. * test/src/comp-tests.el (comp-test-45576): New testcase. * test/src/comp-test-funcs.el (comp-test-45576-f): New function.
* | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2021-01-021-3/+4
|\|
| * Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
| * Fix some over-wide docstringsStefan Kangas2020-12-301-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/cedet/semantic/analyze/refs.el (semantic-analyze-refs-proto) (semantic-analyze-refs-impl): * lisp/cedet/semantic/symref.el (semantic-symref-hit-to-tag-via-buffer): * lisp/emacs-lisp/chart.el (chart-axis-draw): * lisp/emacs-lisp/cl-macs.el (cl-defstruct, cl-loop): * lisp/emacs-lisp/eieio-core.el (eieio--add-new-slot): * lisp/eshell/em-unix.el (eshell/info): * lisp/gnus/deuglify.el (gnus-outlook-rearrange-article): * lisp/gnus/gnus-agent.el (gnus-agent-read-article-number): * lisp/gnus/gnus-util.el (gnus-put-overlay-excluding-newlines) (gnus-put-text-property-excluding-newlines): * lisp/gnus/message.el (message-sort-headers): * lisp/gnus/nntp.el (nntp-with-open-group) (nntp-with-open-group-function): * lisp/gnus/nnvirtual.el (nnvirtual-create-mapping): * lisp/mail/feedmail.el (feedmail-fiddle-list-of-fiddle-plexes) (feedmail-queue-reminder, feedmail-mail-send-hook-splitter): * lisp/net/dictionary.el (dictionary-do-matching): * lisp/obsolete/longlines.el (longlines-auto-wrap): * lisp/org/ob-sql.el (org-babel-sql-dbstring-vertica): * lisp/org/ol-bbdb.el (org-bbdb-date-list): * lisp/progmodes/cc-cmds.el (c-mark-function): * lisp/progmodes/cperl-mode.el (cperl-add-tags-recurse) (cperl-add-tags-recurse-noxs-fullpath) (cperl-add-tags-recurse-noxs): * lisp/progmodes/etags.el (tags-search): * lisp/progmodes/verilog-mode.el (verilog-delete-auto-buffer) (verilog-auto-re-search-do, verilog-expand-vector-internal): * lisp/textmodes/reftex-parse.el (reftex-init-section-numbers): * lisp/textmodes/reftex-toc.el (reftex-toc-load-all-files-for-promotion): * lisp/textmodes/sgml-mode.el (html-mode): * lisp/textmodes/table.el (table--transcoord-cache-to-table) (table--transcoord-table-to-cache, table--remove-eol-spaces) (table--region-in-cell-p, table-goto-bottom-right-corner) (table-split-cell-horizontally): * lisp/url/url-handlers.el (url-insert): * lisp/vc/ediff-util.el (ediff-inferior-compare-regions): Fix doc strings to not exceed 80-column limits. (Bug#44858)
* | * Define `cl-satisfies-deftype' mapping predicate -> typeAndrea Corallo2020-12-291-1/+2
| | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-satisfies-deftype): Define symbol property as reverse of `cl-deftype-satisfies'.
* | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-11-221-14/+12
|\|
| * Don't quote lambdas in emacs-lisp/*.elStefan Kangas2020-11-161-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-seq.el (cl--parsing-keywords, cl-sort): * lisp/emacs-lisp/cl-macs.el (cl-typecase): * lisp/emacs-lisp/cl-extra.el (cl-some, cl-every) (cl--map-keymap-recursively): * lisp/emacs-lisp/advice.el (ad-insert-argument-access-forms): * lisp/emacs-lisp/edebug.el (edebug-sort-alist) (edebug-set-windows): * lisp/emacs-lisp/pp.el (pp-display-expression): * lisp/emacs-lisp/regi.el (regi-interpret): Don't quote lambdas.
* | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-10-231-0/+2
|\|
| * Make more load-hooks obsolete (Bug#21563)Stefan Kangas2020-10-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-complete-structtag.el: Recommend with-eval-after-load instead of load-hooks. * lisp/calc/calc-ext.el (calc-ext-load-hook): * lisp/emacs-lisp/bytecomp.el (bytecomp-load-hook): * lisp/emacs-lisp/cl-extra.el (cl-extra-load-hook): * lisp/emacs-lisp/cl-macs.el (cl-macs-load-hook): * lisp/emacs-lisp/cl-seq.el (cl-seq-load-hook): * lisp/gnus/message.el (message-load-hook): * lisp/gnus/nnheader.el (nnheader-load-hook): * lisp/gnus/nnmail.el (nnmail-load-hook): * lisp/progmodes/dcl-mode.el (dcl-mode-load-hook): * lisp/textmodes/tex-mode.el (tex-mode-load-hook): * lisp/whitespace.el (whitespace-load-hook): Obsolete for with-eval-after-load. Note that these variables are never declared, but the byte-compiler will still warn about them if used.
* | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-10-041-1/+1
|\|
| * Don't quote lambdas in several placesStefan Kangas2020-10-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * admin/find-gc.el (find-gc-unsafe): * lisp/align.el (align-rules-list): * lisp/comint.el (comint-arguments): * lisp/double.el (isearch-mode-map): * lisp/ehelp.el (electric-help-command-loop): * lisp/emacs-lisp/cl-macs.el (cl-defstruct): * lisp/emulation/cua-rect.el (cua--copy-rectangle-as-kill) (cua-copy-rectangle-as-text): * lisp/eshell/esh-var.el (eshell-parse-variable-ref): * lisp/hexl.el (hexl-insert-multibyte-char): * lisp/international/titdic-cnv.el (tsang-quick-converter) (ziranma-converter): * lisp/language/tibet-util.el (tibetan-decompose-precomposition-alist): * lisp/mail/mailalias.el (mail-get-names): * lisp/mh-e/mh-e.el (mh-auto-fields-list, mh-identity-default): * lisp/mouse.el (mouse-buffer-menu-map, mouse-buffer-menu-alist): * lisp/play/gametree.el (gametree-make-heading-function): * lisp/shell.el (shell--command-completion-data): * lisp/talk.el (talk-update-buffers): * lisp/tempo.el (tempo-insert-template, tempo-is-user-element) (tempo-build-collection): * lisp/term.el (term-input-filter, term-pager-help): * lisp/textmodes/table.el (table-delete-column): * lisp/url/url-cache.el (url-cache-create-filename-human-readable): * lisp/textmodes/tex-mode.el (latex-imenu-create-index): Don't quote lambdas.
* | Merge remote-tracking branch 'savannah/master' into clean-upAndrea Corallo2020-09-301-0/+1
|\|
| * * lisp/emacs-lisp/cl-macs.el (hash-table): Define the type's typep testStefan Monnier2020-09-291-0/+1
| |
* | * lisp/emacs-lisp/cl-macs.el (cl--optimize): Add a FIXME.Andrea Corallo2020-09-261-0/+2
| |
* | * lisp/emacs-lisp/cl-macs.el: Define fixnum and bignum.Andrea Corallo2020-09-141-0/+4
| | | | | | | | | | Define fixnum so `cl-typep' recognize it and the type check emitted by `cl-the' is effective.
* | * Add 'cl-optimize' as function declarationAndrea Corallo2020-09-141-0/+20
| | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el: Register cl-optimize into `defun-declarations-alist' and `macro-declarations-alist'. (cl--optimize): New function to serve 'cl-optimize' declaration.
* | * lisp/emacs-lisp/cl-macs.el (cl-the): Emit compiler hints when native.Andrea Corallo2020-09-141-0/+8
|/
* Avoid duplicate Edebug symbols when using ‘cl-flet’ (Bug#41989)Philipp Stephani2020-08-021-1/+6
| | | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-match-:unique): Add a new ‘:unique’ specifier to generate unique names. * lisp/emacs-lisp/cl-macs.el (cl-flet): Use it. This requires inlining the ‘cl-defun’ specification. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-cl-flet): New unit test. * doc/lispref/edebug.texi (Specification List): Document new ‘:unique’ construct.
* * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add `keyword`Stefan Monnier2020-07-061-10/+16
|