Commit graph

7246 commits

Author SHA1 Message Date
Alan Mackenzie
8d2fecdf6c Introduce element &error into edebug specification lists for macros
This fixes bug #37540.

* lisp/emacs-lisp/edebug.el (top level): New entry for &error in alist used to
associate elements with their handling functions.
(edebug-match-&error): New function.
(nested-backquote-form): Use the new element &error to abort instrumentation
on encountering a three deep nesting of backquotes (without intervening
commas).

* doc/lispref/edebug.texi (Specification List): Add an entry for &error.

* etc/NEWS: Add an entry for &error.
2020-01-17 21:53:13 +00:00
Glenn Morris
d97a77c481 Merge from origin/emacs-27
4df0c1c6c4 (origin/emacs-27) ; * src/lread.c (force_new_style_backquo...
069741b2f7 ; * etc/NEWS: Mention latest changes in checkdoc.  (Bug#38...
a785be29bf Fix wording and punctuation of a recent commit
0d3d3be35c Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/e...
5da372e17e ; Minor edit in anti.texi

# Conflicts:
#	etc/NEWS
2020-01-17 07:50:28 -08:00
Eli Zaretskii
a785be29bf Fix wording and punctuation of a recent commit
* lisp/textmodes/ispell.el (ispell-correct-p): Doc fix.
* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-init): Fix
capitalization and punctuation of comments.
2020-01-17 11:35:35 +02:00
Damien Cassou
6338f69102 Add unattended spell-checking to checkdoc
This commit makes checkdoc capable of spell-checking even when the
user isn't using it interactively.  When TAKE-NOTES is non-nil,
checkdoc will run spell-checking (with ispell) and report spelling
mistakes.

Fixes: (bug#38583).

* lisp/textmodes/ispell.el (ispell-word): Extract part of it to
`ispell--run-on-word`.
(ispell--run-on-word): New function, extracted from `ispell-word`.
(ispell-error-checking-word): New function.
(ispell-correct-p): New function.  Use `ispell--run-on-word` and
`ispell-error-checking-word`.
* lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass
TAKE-NOTES to `checkdoc-start`.
(checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`.
(checkdoc-this-string-valid): Add optional argument TAKE-NOTES and
pass it to `checkdoc-this-string-valid-engine`.
(checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES
and pass it to `checkdoc-ispell-docstring-engine`.
(checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and
`ispell-accept-buffer-local-defs`.  These calls are required to
properly use ispell.  The problem went unnoticed until now because
checkdoc was only using ispell through the high-level command
`ispell-word` which takes care of all the initialization for the user.
(checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES
to force reporting of spell-checking errors.  Throw error
when (checkdoc-ispell-init) fails configuring ispell.  Replace a
few (if cond nil body) with (unless cond body). Replace (let ((var
nil))) with (let (var)).  Replace (if (not (eq checkdoc-autofix-flag
'never)) body) with just body because `checkdoc-autofix-flag` is
checked at the beginning of the function.

(cherry picked from commit 25adbc4a5e)
2020-01-17 11:29:06 +02:00
Glenn Morris
e32bae6177 Replace add-hook load-hook with with-eval-after-load
* lisp/info.el (Info-install-speedbar-variables):
* lisp/cedet/ede.el (speedbar):
* lisp/cedet/semantic/imenu.el (speedbar):
* lisp/emacs-lisp/eieio-opt.el (eieio-class-speedbar-key-map):
* lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar-create):
* lisp/erc/erc-speedbar.el (erc-install-speedbar-variables):
* lisp/mail/rmail.el (rmail-install-speedbar-variables):
* lisp/progmodes/gud.el (gud-install-speedbar-variables):
Use with-eval-after-load.
2020-01-16 21:21:29 -08:00
Glenn Morris
ee0e3a792b edebug: remove ancient code for ancient XEmacs support libs
* lisp/emacs-lisp/edebug.el (edebug--require-cl-read): Remove.
(edebug-setup-hook, cl-read-load-hooks): Don't modify.
(edebug-unload-function): Don't modify cl-read-load-hooks.
2020-01-16 21:15:02 -08:00
Stefan Kangas
f18c78e611 Remove a FIXME from package.el
* lisp/emacs-lisp/package.el (package-unpack): Remove FIXME about
maybe deleting the package directory.  It was decided that this was
undesirable.  (Bug#7756)
2020-01-17 00:48:02 +01:00
Damien Cassou
25adbc4a5e Add unattended spell-checking to checkdoc
This commit makes checkdoc capable of spell-checking even when the
user isn't using it interactively. When TAKE-NOTES is non-nil,
checkdoc will run spell-checking (with ispell) and report spelling
mistakes.

Fixes: (bug#38583).

* lisp/textmodes/ispell.el (ispell-word): Extract part of it to
`ispell--run-on-word`.
(ispell--run-on-word): New function, extracted from `ispell-word`.
(ispell-error-checking-word): New function.
(ispell-correct-p): New function.  Use `ispell--run-on-word` and
`ispell-error-checking-word`.
* lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass
TAKE-NOTES to `checkdoc-start`.
(checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`.
(checkdoc-this-string-valid): Add optional argument TAKE-NOTES and
pass it to `checkdoc-this-string-valid-engine`.
(checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES
and pass it to `checkdoc-ispell-docstring-engine`.
(checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and
`ispell-accept-buffer-local-defs`.  These calls are required to
properly use ispell.  The problem went unnoticed until now because
checkdoc was only using ispell through the high-level command
`ispell-word` which takes care of all the initialization for the user.
(checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES
to force reporting of spell-checking errors.  Throw error
when (checkdoc-ispell-init) fails configuring ispell.  Replace a
few (if cond nil body) with (unless cond body). Replace (let ((var
nil))) with (let (var)). Replace (if (not (eq checkdoc-autofix-flag
'never)) body) with just body because `checkdoc-autofix-flag` is
checked at the beginning of the function.
2020-01-16 20:41:48 +02:00
Andrea Corallo
c1d034fc27 Split relocated data into two separate arrays
Rework the functionality of the previous commit to be more efficient.
2020-01-12 13:22:30 +01:00
Andrea Corallo
93ed2c32df Move function reloc data into pure space during bootstrap 2020-01-11 14:34:58 +01:00
Mattias Engdegård
35d5694825 Mark 'catch' and 'condition-case' bytecodes as obsolete
They have not been generated by the byte-compiler since Emacs 25.

* lisp/emacs-lisp/bytecomp.el (byte-catch, byte-condition-case):
* src/bytecode.c (BYTE_CODES, exec_byte_code):
Mark as obsolete (since Emacs 25; they were still generated in 24.4).
2020-01-05 23:30:05 +01:00
Paul Eggert
088bfcc2d8 Move “Fix some broken conditional forms” to master
Revert 2020-01-04T19:17:12Z!eggert@cs.ucla.edu
which recently I installed into the emacs-27 branch by mistake.
These patches are now on master instead (via merging).
Do not merge to master.
2020-01-05 11:50:31 -08:00
Paul Eggert
f909433228 Merge from origin/emacs-27
448df8fec7 Improve doc-strings of 'quit-window' and 'quit-restore-win...
7f01dfca56 Fix MH-E bug #470: Show buffer discards text properties
f95a2b8301 Fix some broken conditional forms
28727444f1 Fix a scoping error in tramp-sudoedit.el
6cbdd048bd * lisp/autorevert.el (auto-revert-notify-handler): Fix bra...
076dd1f69a Fix typo in 'window_box_height'
2020-01-05 11:44:48 -08:00
Mattias Engdegård
2d5d0fa1b4 Remove generation of old bytecodes for catch/unwind
* lisp/emacs-lisp/bytecomp.el (byte-compile--use-old-handlers)
(byte-compile-condition-case, byte-compile-condition-case--old):
Remove.
(byte-compile-condition-case--new):
Rename to byte-compile-condition-case.
(byte-compile-catch, byte-compile-unwind-protect):
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Simplify.
2020-01-05 11:19:52 +01:00
Paul Eggert
e086a9fddc * lisp/emacs-lisp/bindat.el: Remove obsolete comment. 2020-01-04 19:14:50 -08:00
Paul Eggert
f95a2b8301 Fix some broken conditional forms
Problem reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2020-01/msg00088.html
* lisp/cedet/ede/cpp-root.el (ede-create-lots-of-projects-under-dir):
Remove this quick hack, which didn’t do anything anyway.
* lisp/cedet/ede/pconf.el (ede-proj-configure-test-required-file):
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col):
* lisp/net/nsm.el (nsm-check-tls-connection):
Use ‘when’ rather than bypassing it.  This doesn’t affect behavior
and is better style.
* lisp/cedet/srecode/semantic.el (srecode-semantic-handle-:tag):
Fix typo that suppressed an error.
* lisp/filesets.el (filesets-run-cmd): Fix typo that mishandled spacing.
* lisp/gnus/gnus-cloud.el (gnus-cloud-update-newsrc-data):
Fix typo that caused “GROUP has older different info in the cloud
as of DATE, update it here?” prompt result to always be treated as
“yes”.
* lisp/gnus/mml-smime.el (mml-smime-openssl-encrypt): Simplify,
since smime-encrypt-buffer signals error on failure.
* lisp/international/titdic-cnv.el (tsang-quick-converter): Simplify.
The conversion of this file to utf-8-emacs in
2019-01-08T02:18:40Z!monnier@iro.umontreal.ca removed the
distinction between Big5 and CNS fulltitles in the generated docstring.
* lisp/org/org-agenda.el (org-agenda-show-and-scroll-up):
* lisp/textmodes/table.el (table--generate-source-cell-contents):
Simplify by removing useless code.
* lisp/org/ox-odt.el (org-odt--format-timestamp): Fix typo that
always output time-of-day even when the timestamp lacked it.
2020-01-04 11:18:13 -08:00
Mattias Engdegård
8e3868125c Generate fewer useless conditionals in cl-loop
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause):
Don't generate a condition if both branches are the same, which
is the common case.
2020-01-04 13:14:32 +01:00
Andrea Corallo
5a228fefb6 Prevent false warning emission 2020-01-03 17:47:09 +01:00
Andrea Corallo
2239cc81b7 Extend find-library-suffixes and find-library-name for eln support 2020-01-02 23:01:42 +01:00
Andrea Corallo
25332bb0d3 Fix bytecomp message when native compiling 2020-01-02 23:01:38 +01:00
Andrea Corallo
b18f92a942 rework predicates to be homogeneous 2020-01-01 11:38:18 +01:00
Andrea Corallo
6c77a9e046 do not crash compilation trying to optimize wrong code 2020-01-01 11:38:18 +01:00
Andrea Corallo
976b7fcc8c fix aliased function names trampoline removal 2020-01-01 11:38:18 +01:00
Andrea Corallo
f0290502f3 disable propagation when non locals are present 2020-01-01 11:38:18 +01:00
Andrea Corallo
037b9897a4 add batch-byte-native-compile-for-bootstrap 2020-01-01 11:38:18 +01:00
Andrea Corallo
e666bf781f add customize comp-never-optimize-functions 2020-01-01 11:38:18 +01:00
Andrea Corallo
00f7fd7d42 fix non local propagation handling 2020-01-01 11:38:18 +01:00
Andrea Corallo
92e285fdf0 set disassemble buffer in read only 2020-01-01 11:38:17 +01:00
Andrea Corallo
4beb850efb add native support to the build system 2020-01-01 11:38:17 +01:00
Andrea Corallo
e678021f0c add batch-native-compile 2020-01-01 11:38:16 +01:00
Andrea Corallo
2ccce1bc39 some style fixes 2020-01-01 11:38:16 +01:00
Andrea Corallo
ca8d5ed6ec add disassemble support for native compiled functions 2020-01-01 11:38:15 +01:00
Andrea Corallo
42362d9914 remove load_handle_stack and use the implementation one 2020-01-01 11:38:14 +01:00
Andrea Corallo
a647a97320 better scratch slot support 2020-01-01 11:38:13 +01:00
Andrea Corallo
ac08a7f26c clean-up old function relocation code 2020-01-01 11:38:13 +01:00
Andrea Corallo
6c9acd13d0 single function native compilation doc + interactive support + tests 2020-01-01 11:38:12 +01:00
Andrea Corallo
a248dfe2c3 native compile interactive functions support 2020-01-01 11:38:12 +01:00
Andrea Corallo
48f5530e79 add int-spec to comp-func 2020-01-01 11:38:12 +01:00
Andrea Corallo
d7071c6457 spill also interactive functions 2020-01-01 11:38:12 +01:00
Andrea Corallo
e2855d93ee renaming comp-decrypt-lambda-list -> comp-decrypt-arg-list 2020-01-01 11:38:11 +01:00
Andrea Corallo
4a639f3ae9 documentation nit 2020-01-01 11:38:11 +01:00
Andrea Corallo
ce254ffa44 do not emit elc file while native compiling 2020-01-01 11:38:11 +01:00
Andrea Corallo
9a87c4404f native-compile-async accept list as input 2020-01-01 11:38:11 +01:00
Andrea Corallo
7f5f60d543 insert compilation end message at the bottom of the buffer 2020-01-01 11:38:11 +01:00
Andrea Corallo
a214a29e48 fix comp-propagate-insn type propagation 2020-01-01 11:38:11 +01:00
Andrea Corallo
5411beae02 remove unnecessary return when printing blocks 2020-01-01 11:38:11 +01:00
Andrea Corallo
ba51c31b47 gate propagate to comp-speed > 1 2020-01-01 11:38:10 +01:00
Andrea Corallo
44023f3db2 fix comp-log-edges 2020-01-01 11:38:10 +01:00
Andrea Corallo
ba2bbea816 adjust print verbosity according to the doc 2020-01-01 11:38:10 +01:00
Andrea Corallo
9650e5a1a9 revert unnecessary modifications 2020-01-01 11:38:10 +01:00