Commit graph

7628 commits

Author SHA1 Message Date
Stefan Monnier
84e207c811 * lisp/emacs-lisp/subr-x.el (if-let*, if-let): Use looser Edebug spec
This makes the same spec work both for `if-let` and `when-let`.

(when-let*, and-let*, when-let): Simplify accordingly.
2021-05-22 10:21:59 -04:00
Basil L. Contovounesios
43fd13770a Fix native-comp-async-report-warnings-errors :type
* doc/lispref/compile.texi (Native-Compilation Variables): Document
'silent' alternative of native-comp-async-report-warnings-errors.
* lisp/emacs-lisp/comp.el
(native-comp-async-report-warnings-errors): Fix quoting in
:type expression (bug#48586).
2021-05-22 13:22:29 +01:00
Philipp Stephani
33a52cb458 Give 'when-let' and 'when-let*' their own Edebug specification.
The Edebug specification of 'if-let' and 'if-let*' doesn't work if the
body is empty.  While that's a pathological case, it's not wrong per
se, and could arguably happen due to macro expansion.

* lisp/emacs-lisp/subr-x.el (when-let*, when-let): Don't reuse Edebug
specification from 'if-let*' and 'if-let'.
2021-05-22 13:29:50 +02:00
Philipp Stephani
91fa95bde0 * lisp/emacs-lisp/cl-macs.el (cl-loop): Add missing 'when' to spec 2021-05-22 13:17:00 +02:00
Stefan Monnier
2c47eaa18a * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Use a closure 2021-05-18 17:13:52 -04:00
Juri Linkov
502e3ce614 * lisp/emacs-lisp/lisp-mode.el (lisp-outline-level): Fix imprecise numbers.
(lisp-outline-level): Return right levels starting from 1 instead of 5.
Suggested by Howard Melman <hmelman@gmail.com> in bug#46878.
2021-05-18 23:35:57 +03:00
Basil L. Contovounesios
33c0994c7c Look for ElDoc buffer in all visible frames
* lisp/emacs-lisp/eldoc.el (eldoc--echo-area-prefer-doc-buffer-p):
Look for a window displaying the ElDoc documentation buffer in all
visible frames, as promised by the user option
eldoc-echo-area-prefer-doc-buffer (bug#48278).
2021-05-18 16:31:19 +01:00
Alexandr Vityazev
2c90aa93a9 Fix the length= shortdoc example
* lisp/emacs-lisp/shortdoc.el (list): Fix the length= example
(bug#48495).

Copyright-paperwork-exempt: yes
2021-05-18 15:36:25 +02:00
Mattias Engdegård
be9db2b94d Fix pcase 'rx' patterns with a single named submatch (bug#48477)
pcase 'rx' patterns with a single named submatch, like

  (rx (let x "a"))

would always succeed because of an over-optimistic transformation.
Patterns with 0 or more than 1 named submatches were not affected.

Reported by Philipp Stephani.

* lisp/emacs-lisp/rx.el (rx--pcase-macroexpander):
Special case for a single named submatch.
* test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add tests.
2021-05-18 12:34:30 +02:00
Philipp Stephani
9676d41b83 * lisp/emacs-lisp/subr-x.el (if-let): Swap &or branches (Bug#48489) 2021-05-18 09:26:49 +02:00
Philipp Stephani
42950e9e46 Fix a few Edebug specifications where code is wrapped in lambdas.
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.
2021-05-17 10:09:43 +02:00
Eric Abrahamsen
e761e12498 Add a 'silent option for native-comp-async-report-warnings-errors
* lisp/emacs-lisp/comp.el (native-comp-async-report-warnings-errors):
Set to 'silent to log warnings, but not pop up the *Warnings* buffer.
* lisp/emacs-lisp/comp.el (comp-accept-and-process-async-output):
Check value.
2021-05-16 14:27:53 -07:00
Philipp Stephani
01bd4d1a82 Optimize calls to 'eql', 'memql' and similar for fixnums.
It's good practice to compare integers using 'eql' because two bignum
objects representing the same integer might not be 'eq'.  However,
'eql' is slower and doesn't have its own byte code.  Therefore,
replace it with 'eq' if one argument is guaranteed to be a fixnum on
all platforms.

* lisp/emacs-lisp/byte-opt.el (byte-optimize--fixnump): New helper
function.
(byte-optimize-equal, byte-optimize-member, byte-optimize-assoc): Use
it to optimize 'eql' etc. to 'eq' if it will always compare fixnums.
2021-05-16 14:45:18 +02:00
Lars Ingebrigtsen
43da7f838f Even further `text-property-search-forward' clarifications
* lisp/emacs-lisp/text-property-search.el
(text-property-search-forward): Further doc string clarifications.
2021-05-12 19:01:53 +02:00
Lars Ingebrigtsen
bc1a01172e Further corrections for the text-property-search doc strings
* lisp/emacs-lisp/text-property-search.el
(text-property-search-forward): Correct doc string.
(text-property-search-backward): Ditto.
2021-05-12 16:17:55 +02:00
Eli Zaretskii
98e5639c3c Fix the tests for 'string-limit'
* test/lisp/emacs-lisp/subr-x-tests.el (subr-string-limit-coding):
Fix the expected results of string-limit when encoding with
UTF-16.  Add tests for UTF-8 with BOM.  (Bug#48324)

* lisp/emacs-lisp/subr-x.el (string-limit): Add FIXME comment
about the current implementation, which is faulty by design.
2021-05-12 16:41:03 +03:00
Andrea Corallo
8bc91a6a3f * Rename comp-deferred-compilation-deny-list
* lisp/emacs-lisp/comp.el (native-comp-deferred-compilation-deny-list)
(native-compile-async-skip-p): Rename
comp-deferred-compilation-deny-list ->
native-comp-deferred-compilation-deny-list.
2021-05-11 18:31:45 +02:00
Lars Ingebrigtsen
6d225d82c8 `text-property-search-forward' doc string improvement
* lisp/emacs-lisp/text-property-search.el
(text-property-search-forward): Correct and clarify the doc string
(bug#48317).
2021-05-11 14:30:00 +02:00
Lars Ingebrigtsen
af529f777c Reintroduce autoloads for edebug-all-defs/edebug-all-forms
* lisp/emacs-lisp/edebug.el (edebug-all-defs, edebug-all-forms):
Reintroduce ;;;###autoload of these user options that were removed
in bae2cfe63c, because this leads to errors in a common (and
recommended) use case (bug#47516).
2021-05-09 11:47:01 +02:00
Basil L. Contovounesios
d3344e0a7f ; Fix recent re-builder doc changes. 2021-05-08 15:07:38 +01:00
dalanicolai
fdeb1a3dc7 Mention that Emacs is usually case-insensitive in a couple of places
* doc/lispref/searching.texi (Regular Expressions): Mention
`case-fold-search'.

* lisp/emacs-lisp/re-builder.el (re-builder): Mention case
sensitivity toggles (bug#47534).

Copyright-paperwork-exempt: yes
2021-05-08 13:59:03 +02:00
Eli Zaretskii
615cf550f2 Fix a recent change in rmc.el
* lisp/emacs-lisp/rmc.el (read-multiple-choice): Doc fix.  Improve
the message when entering recursive-edit.
2021-05-07 17:09:44 +03:00
Andrea Corallo
fbbcbed10e Rename comp-eln-load-path → native-comp-eln-load-path
* src/comp.c (Fcomp_el_to_eln_filename): Rename comp-eln-load-path →
native-comp-eln-load-path.
* src/lread.c (maybe_swap_for_eln): Likewise.
* lisp/startup.el (native-comp-eln-load-path)
(normal-top-level): Likewise.
* lisp/emacs-lisp/comp.el (comp-spill-lap-function, comp-final)
(comp-eln-load-path-eff, comp-trampoline-compile)
(comp-clean-up-stale-eln, comp-run-async-workers)
(comp-lookup-eln, batch-byte-native-compile-for-bootstrap): Likewise.
2021-05-06 17:16:09 +02:00
Andrea Corallo
901ce56603 Rename comp-warning-on-missing-source
* src/lread.c (maybe_swap_for_eln): Rename
comp-warning-on-missing-source →
native-comp-warning-on-missing-source.
* src/comp.c (syms_of_comp): Likewise.
* lisp/emacs-lisp/comp.el (native-comp-warning-on-missing-source):
Likewise.
2021-05-06 17:16:09 +02:00
Andrea Corallo
8c429a42c4 Rename comp-native-driver-options → native-comp-driver-options
* src/comp.c (add_driver_options, syms_of_comp): Rename
comp-native-driver-options → native-comp-driver-options.
* lisp/emacs-lisp/comp.el (native-comp-driver-options)
(comp-ctxt, comp-spill-lap-function, comp-final)
(comp-run-async-workers): Likewise.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise.
2021-05-06 17:16:08 +02:00
Andrea Corallo
419852a599 * Rename comp-async-query-on-exit → native-comp-async-query-on-exit
* lisp/emacs-lisp/comp.el (native-comp-async-query-on-exit)
(comp-run-async-workers): Rename comp-async-query-on-exit →
native-comp-async-query-on-exit.
2021-05-06 17:16:08 +02:00
Andrea Corallo
c90129c5e5 * Rename comp-async-report-warnings-errors
* lisp/emacs-lisp/comp.el (native-comp-async-report-warnings-errors)
(comp-accept-and-process-async-output): Rename
comp-async-report-warnings-errors →
native-comp-async-report-warnings-errors.
2021-05-06 17:16:08 +02:00
Andrea Corallo
4e01605efa * Rename comp-async-env-modifier-form → native-comp-async-env-modifier-form
* lisp/emacs-lisp/comp.el (native-comp-async-env-modifier-form)
(comp-final, comp-run-async-workers): Rename
comp-async-env-modifier-form → native-comp-async-env-modifier-form.
2021-05-06 17:16:08 +02:00
Andrea Corallo
4e063bf8eb * Rename comp-async-all-done-hook → native-comp-async-all-done-hook
* lisp/emacs-lisp/comp.el (native-comp-async-all-done-hook)
(comp-run-async-workers): Rename comp-async-all-done-hook →
native-comp-async-all-done-hook.
2021-05-06 17:16:08 +02:00
Andrea Corallo
e73186a446 * Rename comp-async-cu-done-functions → native-comp-async-cu-done-functions
* lisp/emacs-lisp/comp.el (native-comp-async-cu-done-functions)
(comp-run-async-workers): Rename comp-async-cu-done-functions →
native-comp-async-cu-done-functions.
2021-05-06 17:16:08 +02:00
Andrea Corallo
d8f84a1c00 * Rename comp-async-jobs-number → native-comp-async-jobs-number
* lisp/emacs-lisp/comp.el (native-comp-async-jobs-number)
(comp-effective-async-max-jobs, native--compile-async)
(native-compile-async): Rename comp-async-jobs-number →
native-comp-async-jobs-number.
2021-05-06 17:16:08 +02:00
Andrea Corallo
31ca1c3e81 Rename comp-never-optimize-functions → native-comp-never-optimize-functions
* lisp/emacs-lisp/nadvice.el (advice--add-function): Rename
comp-never-optimize-functions → native-comp-never-optimize-functions.
* lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions)
(comp-subr-trampoline-install, comp-call-optim-form-call): Likewise.
2021-05-06 17:16:07 +02:00
Andrea Corallo
85b61c0c58 Rename comp-bootstrap-deny-list → native-comp-bootstrap-deny-list
* lisp/emacs-lisp/comp.el (native-comp-bootstrap-deny-list)
(batch-native-compile): Rename comp-bootstrap-deny-list →
native-comp-bootstrap-deny-list.
2021-05-06 17:16:07 +02:00
Andrea Corallo
6595295078 * Rename comp-always-compile → native-comp-always-compile
* lisp/emacs-lisp/comp.el (native-comp-always-compile)
(comp-run-async-workers): comp-always-compile →
native-comp-always-compile.
2021-05-06 17:16:07 +02:00
Andrea Corallo
6efd7885db * Rename comp-verbose -> native-comp-verbose
* lisp/emacs-lisp/comp.el (native-comp-verbose, comp-log)
(comp-log-func, comp-final, comp-run-async-workers): Rename
comp-verbose -> native-comp-verbose.
2021-05-06 17:16:07 +02:00
Andrea Corallo
94c69eb1d7 Rename comp-debug -> native-comp-debug
* src/comp.c (emit_ctxt_code, syms_of_comp): Rename comp-debug ->
native-comp-debug.
* lisp/emacs-lisp/comp.el (native-comp-debug, comp-ctxt)
(comp-spill-lap-function, comp-run-async-workers): Likewise.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise.
* test/src/comp-tests.el (comp-tests-bootstrap): Likewise.
2021-05-06 17:16:07 +02:00
Andrea Corallo
43f29696ad Rename comp-speed -> native-comp-speed
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename
comp-speed -> native-comp-speed.
* lisp/emacs-lisp/comp.el (native-comp-speed, comp-ctxt, comp-func,
comp-spill-lap-function, comp-trampoline-compile,
comp-run-async-workers): Likewise.
* src/comp.c (emit_ctxt_code, load_comp_unit, syms_of_comp): Likewise.
* test/src/comp-tests.el (comp-tests-tco, comp-tests-fw-prop-1)
(comp-tests-check-ret-type-spec, comp-tests-pure): Likewise.
2021-05-06 17:16:07 +02:00
Andrea Corallo
643cc3fa14 * Rename comp-limple-mode -> native-comp-limple-mode
* lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Doc update.
(native-comp-limple-mode, comp-log-to-buffer): Rename comp-limple-mode
-> native-comp-limple-mode.
2021-05-06 17:16:06 +02:00
Mattias Engdegård
12bab20920 Tidy file-matching regexps and remove some ineffective backslashes
* lisp/emacs-lisp/package.el (package--delete-directory):
* lisp/net/tramp-cmds.el (tramp-recompile-elpa):
Escape dot; replace $ with \'.
* lisp/help.el (help-for-help):
* lisp/transient.el (transient-font-lock-keywords):
Remove useless backslashes.
2021-05-06 15:53:48 +02:00
Lars Ingebrigtsen
896384b542 Make (setf (map-elt ...)) return the value in the alist/plist cases
* lisp/emacs-lisp/map.el (map-elt): Return the value in the list
case (which can signal a `map-not-inplace' error.
(map-elt): Return the value in the list case, too (bug#47572).
2021-05-06 13:32:04 +02:00
Daniel Martín
2705fc4ab0 Extend read-multiple-choice to support free-form help descriptions
* lisp/emacs-lisp/rmc.el (read-multiple-choice): Add a new argument to
override the default help description in `read-multiple-choice'.  Use
the `help-char' variable instead of ?\C-h.  Also support the `edit'
action from `query-replace-map', so that help links can be visited by
entering a recursive edit.
2021-05-06 10:21:59 +02:00
Andrea Corallo
40736357b8 Rename feature nativecomp' into native-compile'
* test/src/comp-tests.el : Rename feature `nativecomp' into
	`native-compile'.
	* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Likewise.
	* src/comp.c (syms_of_comp): Likewise.
	* lisp/startup.el (normal-top-level): Likewise.
	* lisp/loadup.el: Likewise.
	* lisp/help.el (help-function-arglist): Likewise.
	* lisp/emacs-lisp/package.el (package--native-compile-async)
	(package--delete-directory): Likewise.
	* lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise.
	* lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Likewise.
	* lisp/emacs-lisp/advice.el (ad-add-advice): Likewise.
2021-05-05 22:27:29 +02:00
Andrea Corallo
d6ddc97884 * Do not try to load unexistent eln file if async compilation was skipped
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Don't try to
	load if the eln file was not produced.
2021-05-04 21:46:39 +02:00
Glenn Morris
6a030deb3d Merge from origin/emacs-27
101a049f55 Improve doc string of 'tab-width'.
43c154404e * lisp/emacs-lisp/elp.el: Doc fixes.
1984213f62 * lisp/emacs-lisp/pp.el: Doc fixes.
6486c9dc73 * admin/make-tarball.txt: Note to update more files on web...
2021-05-04 07:50:25 -07:00
Nikolay Kudryavtsev
65fe1777e6 Don't use pdumper-stats with unexec
* lisp/emacs-lisp/bytecomp.el (byte-compile-refresh-preloaded): Check if
pdumper-stats is bound before using it.
2021-05-02 13:15:50 +03:00
Mattias Engdegård
1167253f75 Don't signal scan-error in interactive sexp-based commands
This takes care of unfinished business from df0f32f048 (bug#43489).

* lisp/emacs-lisp/lisp.el (end-of-defun, mark-defun):
* lisp/reposition.el (reposition-window):
* lisp/simple.el (transpose-sexps): Convert nasty-looking scan-error
into a human-readable message.
2021-04-30 17:31:20 +02:00
Andrea Corallo
39ebc2689b * Improve `comp-normalize-valset' reproducibility (bug#48021)
* lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Make
	it more reproducible.
2021-04-29 21:07:07 +02:00
Stefan Kangas
43c154404e * lisp/emacs-lisp/elp.el: Doc fixes. 2021-04-29 17:18:09 +02:00
Stefan Kangas
1984213f62 * lisp/emacs-lisp/pp.el: Doc fixes. 2021-04-29 13:45:18 +02:00
Stefan Kangas
086e29d213 * lisp/emacs-lisp/shortdoc.el: Doc fixes. 2021-04-29 13:32:24 +02:00