1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-07 06:50:23 -08:00
Commit graph

78664 commits

Author SHA1 Message Date
Andrea Corallo
43d0e8483e Fix `functionp' contraining (bug#45576)
* 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.
2021-01-02 13:07:41 +01:00
Andrea Corallo
03be03d366 * Rename dom' slot into idom' in `comp-block' struct
* lisp/emacs-lisp/comp.el (comp-block): Rename dom `slot' into
	`idom'.
	(comp-clean-ssa, comp-compute-dominator-tree)
	(comp-compute-dominator-frontiers, comp-dom-tree-walker)
	(comp-remove-unreachable-blocks): Update accordingly.
2021-01-02 12:36:40 +01:00
Andrea Corallo
5db5064395 Merge remote-tracking branch 'savannah/master' into HEAD 2021-01-02 10:11:15 +01:00
Dmitry Gutov
0f561ee553 ruby-smie-rules: Avoid one case of infinite recursion
* lisp/progmodes/ruby-mode.el (ruby-smie-rules):
Avoid one case of infinite recursion (bug#29107).
2021-01-02 04:19:09 +02:00
Roland Winkler
aac17c9dca bibtex-mode: Handle biblatex field aliases (bug#44976)
* lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Define
field aliases.
(bibtex-vec-incr): Remove.
(bibtex-format-entry, bibtex-validate): Check for field aliases.
(bibtex--skip-field-aliases): New function.
(bibtex-field-list): Use it.
2021-01-01 16:35:15 -06:00
Glenn Morris
a4f0b8d85a ; Auto-commit of loaddefs files. 2021-01-01 06:30:23 -08:00
Andrea Corallo
9420ea6e08 Add `throw' to non returning functions
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add throw.
2021-01-01 14:19:35 +01:00
Dmitry Gutov
a516e69863 xref-show-definitions-completing-read: Default to the first location
* lisp/progmodes/xref.el (xref-show-definitions-completing-read):
Default to the first location.
2021-01-01 15:18:41 +02:00
Andrea Corallo
807471f9ff ; * lisp/emacs-lisp/comp.el (comp-compute-dominator-tree): Reindent. 2021-01-01 14:07:27 +01:00
Andrea Corallo
c29037c877 * lisp/emacs-lisp/comp.el (comp-compute-dominator-tree): Fix. 2021-01-01 14:07:27 +01:00
Andrea Corallo
93ff838575 * Clean unreachable block using dominance tree to handle circularities
With this commit unreachable basic blocks are pruned automatically by
comp-ssa relying on dominance analysis.  This solves the issue of
unreachable cluster of basic blocks referencing each other.

	* lisp/emacs-lisp/comp.el (comp-block-lap): New `no-ret' slot.
	(comp-compute-dominator-tree): Update.
	(comp-remove-unreachable-blocks): New functions.
	(comp-ssa): Update to call `comp-remove-unreachable-blocks'.
	(comp-clean-orphan-blocks): Delete.
	(comp-rewrite-non-locals): Update and simplify.
2021-01-01 14:06:00 +01:00
Andrea Corallo
67c443adc1 Introduce 'unreachable' LIMPLE operator
Introduce 'unreachable' as LIMPLE operater so we can handle correctly
in the CFG functions throwing values or signaling errors.

	* src/comp.c (retrive_block): Better error diagnostic.
	(emit_limple_insn): Add `unreachable'.
	(compile_function): Fix block iteration.
	(syms_of_comp): Define 'Qunreachable'.
	* lisp/emacs-lisp/comp.el (comp-block): New variable.
	(comp-block-lap): Add `non-ret-insn' slot.
	(comp-branch-op-p): New predicate.
	(comp-limple-lock-keywords): Color `unreachable' as red.
	(comp-compute-edges): Add `unreachable'.
	(comp-fwprop-call): Store non returning function call.
	(comp-fwprop*): Update.
	(comp-clean-orphan-blocks, comp-rewrite-non-locals): New functions.
	(comp-fwprop): Call `comp-rewrite-non-locals'.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add two
	tests.
	* test/src/comp-test-funcs.el (comp-test-non-local-1)
	(comp-test-non-local-2, comp-test-non-local-3)
	(comp-test-non-local-4): New functions.
2021-01-01 14:04:58 +01:00
Dmitry Gutov
3ea7cec4c0 ; ruby-smie--bosp: Fix the breakage 2021-01-01 14:36:37 +02:00
Philipp Stephani
0273cb61a4 Fix a compilation warning.
ruby-mode uses 'cl-evenp' at runtime, so cl-lib must be available at
runtime as well.

* lisp/progmodes/ruby-mode.el (cl-lib): Require at runtime as well.
2021-01-01 12:39:14 +01:00
Andrea Corallo
e9f5fadb0e * Fix two predicates for missing negation handling
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p)
	(comp-cstr-null-p): Fix missing negation handling.
2021-01-01 12:29:50 +01:00
Andrea Corallo
f78580a0f5 * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Color returns as red. 2021-01-01 12:29:40 +01:00
Andrea Corallo
e81643bef5 * Add `comp-insert-insn'
* lisp/emacs-lisp/comp.el (comp-insert-insn): New inline.
	(comp-emit-call-cstr): Split logic and call `comp-insert-insn'.
2021-01-01 12:28:27 +01:00
Paul Eggert
50f3949119 Merge from origin/emacs-27
33d159c36f Fix copyright years by hand
2021-01-01 01:28:16 -08:00
Paul Eggert
8bc552ffa5 Merge from origin/emacs-27
74a77ef299 Improve documentation of 'network-lookup-address-info'
c6d5555646 Display messages sent using ERC's /say
c156723769 Fix Rmail summary display when From: header is malformed
2021-01-01 01:14:58 -08:00
Paul Eggert
ba05d005e5 Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
2021-01-01 01:13:56 -08:00
Paul Eggert
33d159c36f Fix copyright years by hand
These are dates that admin/update-copyright did not update.
2021-01-01 00:33:28 -08:00
Paul Eggert
8c1fe1e5ef Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2021-01-01 00:32:32 -08:00
Lars Ingebrigtsen
d22e74795d Revert recent add-to-ordered-list changes
* doc/lispref/lists.texi (List Variables): Revert.

* lisp/subr.el (add-to-ordered-list): Revert recent changes
because the semantics are too muddled.
2021-01-01 05:48:02 +01:00
Alan Mackenzie
58bdfd7c54 CC Mode: increment version numbers to 5.35 due to standalone release
* doc/misc/cc-mode.texi.  Increment the mode to 5.35, twice.

* lisp/progmodes/cc-defs.el.  Increment the mode to "5.35.1".
2020-12-31 20:32:14 +00:00
Dmitry Gutov
761d3f3cdc ruby-mode: Optimize expression expansion too
This speeds up syntax-propertize almost 2x.

* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Optimize expression expansion too.
(ruby-syntax-propertize-expansion, ruby-font-lock-keywords)
(ruby-expression-expansion-re): Update to match.
2020-12-31 20:59:00 +02:00
Dmitry Gutov
0e41e89d7e ruby-syntax-propertize: Optimize two rules a little
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Optimize two rules a little.
2020-12-31 19:50:48 +02:00
Dmitry Gutov
b47b98bc4b ruby-mode: Recognize setter symbols
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Add a rule for setter symbols (bug#42846).
(ruby-font-lock-keywords): Remove dead code, left over from before
commit 26f9c507.

* lisp/progmodes/ruby-mode.el (ruby-smie--bosp):
Handle '=' being part of a symbol (bug#42846).

* test/lisp/progmodes/ruby-mode-resources/ruby.rb:
Add corresponding indentation examples.
2020-12-31 18:39:41 +02:00
João Távora
6670972562 Fix type declaration of two Flymake customization variables
* lisp/progmodes/flymake.el (flymake-mode-line-format)
(flymake-mode-line-counter-format): Fix type declaration.
2020-12-31 16:04:42 +00:00
João Távora
1b449af5a1 Must explicitly create unpropertized strings in mode-line
Otherwise, an innocent string like " " will mysteriously
pickup properties from some other minor mode.

Making this a separate commit in hopes of raising attention to this
possible bug.

* lisp/progmodes/flymake.el (flymake--mode-line-counter): Must
explicily create a new string unpropertized string
2020-12-31 14:03:53 +00:00
João Távora
2e6fbb05b6 Make Flymake mode-line indicator customizable (bug#33740)
* lisp/progmodes/flymake.el (flymake-mode): Use
flymake-mode-line-format.
(flymake--mode-line-format): Remove.
(flymake-mode-line-counter-format, flymake-mode-line-format): New
defcustom.
(flymake-mode-line-title, flymake-mode-line-exception)
(flymake-mode-line-counters, flymake-error-counter)
(flymake-warning-counter, flymake-note-counter): New variables.
(flymake--mode-line-title, flymake--mode-line-exception)
(flymake--mode-line-counters, flymake--mode-line-counter): New
helpers.

* doc/misc/flymake.texi (Customizable variables): Mention
flymake-mode-line-format and flymake-mode-line-counter-format

* etc/NEWS: Mention Flymake's customizable mode-line.
2020-12-31 14:03:53 +00:00
João Távora
f0d2b92f8b Protect elisp-flymake-checkdoc against boundless diagnostics
These would be the kind of "This file needs a ;;Code section" and
such.

* lisp/progmodes/elisp-mode.el (elisp-flymake-checkdoc): Resist
checkdoc diagnostics with no end position.
2020-12-31 14:03:53 +00:00
Alan Mackenzie
2f8a7bcdc8 CC Mode. Fix AWK Mode fontification bug, remove some unused variables
* lisp/progmodes/cc-awk.el (awk-font-lock-keywords): Replace a hard use of
c-preprocessor-face-name by an `eval' expression which evaluates it.

* lisp/progmodes/cc-engine.el (c-in-knr-argdecl, c-laomib-put-cache)
(c-laomib-fix-elt): Remove unused bound variables.
2020-12-31 12:18:56 +00:00
Stefan Kangas
72b8430fea Add lexical-binding cookie to autoload files
* build-aux/update-subdirs:
* lisp/emacs-lisp/autoload.el (autoload-rubric): Add lexical-binding
cookie to generated files (bug#44854).
2020-12-31 06:35:49 +01:00
Daniel Martín
144b883eb0 Fix duplicated entry in gnus-mime-action-alist
* lisp/gnus/gnus-art.el (gnus-mime-action-alist): Remove duplicated
"toggle display" entry and call the appropriate function for the "view
as charset" action (bug#45561).
2020-12-31 06:00:24 +01:00
Lars Ingebrigtsen
b1ac23ebef Allow add-to-ordered-list to use a test predicate
* doc/lispref/lists.texi (List Variables): Update manual.

* lisp/subr.el (add-to-ordered-list): Allow using a test
predicate, and make slightly more efficient (bug#45539).
2020-12-31 05:28:47 +01:00
Alan Mackenzie
059f1863a2 CC Mode: correct the handling of empty strings
In particular, have the macro cache invalidated after its last use in
c-before-change.

* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Remove
c-invalidate-macro-cache from the entries it's in, moving it to....

* lisp/progmodes/cc-mode.el (c-before-change): Call c-invalidate-macro-cache
directly from the functions, after the call to c-invalidate-state-cache.
2020-12-30 18:31:56 +00:00
Andrea Corallo
db2a49327a * Order function types in aphabetical order
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Reorder in
	aphabetical order and comment.
2020-12-30 14:05:19 +01:00
Andrea Corallo
0593f47876 * Add more function type specifiers
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more
	type specifiers.
2020-12-30 14:03:46 +01:00
Stefan Kangas
fd669fbdeb Remove redundant 'function's around lambda in align.el
* lisp/align.el (align-rules-list, align-exclude-rules-list)
(align-vhdl-rules-list, align-highlight-rule): Remove redundant
'function's around lambda.
2020-12-30 13:07:58 +01:00
Dmitry Gutov
13b59c690a Add 'project-relative' as value for 'xref-file-name-display'
* lisp/progmodes/xref.el (xref-file-name-display): Document new value.
(xref-location-group ((l xref-file-location))): Handle the new value.
(xref--project-root): Extract from the default method of
'xref-backend-references' so it can be used in above's new code.
Also fix an old bug in the "backward compat" branch.

* lisp/progmodes/xref.el (xref--project-root-memo): New variable.

* test/lisp/progmodes/xref-tests.el: Add test cases for the three
possible settings of 'xref-file-name-display'.

Co-authored-by: Tobias Rittweiler <trittweiler@gmail.com>
2020-12-30 13:48:55 +02:00
Stefan Kangas
dd662fc972 Fix some over-wide docstrings
* 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)
2020-12-30 12:44:19 +01:00
Juri Linkov
cd4a51695f Add variables read-char-choice-use-read-key and y-or-n-p-use-read-key
* lisp/subr.el (read-char-choice-use-read-key): New variable.
(read-char-choice): Use read-char-from-minibuffer when
read-char-choice-use-read-key is nil.
(y-or-n-p-use-read-key): New variable.
(y-or-n-p): Restore old code that calls read-key to use it when
y-or-n-p-use-read-key is non-nil.

* lisp/dired-aux.el (dired--no-subst-ask, dired-query):
* lisp/files.el (files--ask-user-about-large-file)
(hack-local-variables-confirm):
* lisp/userlock.el (ask-user-about-supersession-threat):
* lisp/wid-edit.el (widget-choose): Revert to use read-char-choice
instead of read-char-from-minibuffer.

https://lists.gnu.org/archive/html/emacs-devel/2020-12/msg01919.html
2020-12-30 11:54:01 +02:00
Juri Linkov
75191b0af2 In Isearch bind 'C-s M-y' to isearch-yank-pop-only with old code (bug#45483)
* lisp/isearch.el (isearch-menu-bar-yank-map, isearch-mode-map):
(isearch-forward): Use isearch-yank-pop-only instead of isearch-yank-pop.
(isearch-yank-pop): Mention isearch-yank-pop-only.
(isearch-yank-pop-only): New command with old body from Emacs 27.
2020-12-30 11:30:57 +02:00
Lars Ingebrigtsen
dc771b6c40 Also count symbol plists in memory-report
* lisp/emacs-lisp/memory-report.el (memory-report--symbol-plist):
New function.
(memory-report): Use it.
2020-12-30 08:29:06 +01:00
Lars Ingebrigtsen
3c0c47b3a7 Revert "Switch add-to-ordered-list to eql"
This reverts commit b4fd857ead.

I misunderstood the purposed of the function.
2020-12-30 08:08:07 +01:00
Lars Ingebrigtsen
b4fd857ead Switch add-to-ordered-list to eql
* doc/lispref/lists.texi (List Variables): Update documentation.

* lisp/subr.el (add-to-ordered-list): Switch to eql (bug#45539).
2020-12-30 04:48:13 +01:00
Juri Linkov
0a82e66db4 Use explicit "--color=auto" in grep mode to support both GNU grep and ripgrep
* lisp/progmodes/grep.el (grep-highlight-matches):
(grep-compute-defaults, grep-expand-template):
Use "--color=auto" instead of "--color" (bug#44983).
2020-12-29 21:41:24 +02:00
Juri Linkov
c13937ccb6 * lisp/x-dnd.el (x-dnd-get-drop-x-y): Add safer check for top/left (bug#45277) 2020-12-29 21:37:31 +02:00
Dmitry Gutov
3e80653d29 xref-show-definitions-completing-read: Tune up completion
* lisp/minibuffer.el (completion-category-defaults)
Use 'substring' completion style for 'xref-location' category by
default.

* lisp/progmodes/xref.el (xref-show-definitions-completing-read):
Assign the 'xref-location' category to the completions. Pass
REQUIRE-MATCH=t.
2020-12-29 20:25:03 +02:00
Andrea Corallo
3f00d666e9 Fix missing negation handling in a bunch of predicates
* lisp/emacs-lisp/comp.el (comp-mvar-fixnum-p)
	(comp-mvar-symbol-p, comp-mvar-cons-p): Consider neg slot.
	* test/src/comp-tests.el (comp-test-not-cons): New test.
	* test/src/comp-test-funcs.el (comp-test-not-cons-f): New
	function.
2020-12-29 17:49:30 +01:00