1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-09 15:50:40 -08:00
Commit graph

78664 commits

Author SHA1 Message Date
Andrea Corallo
89d5a3a760 Enable integer range narrowing under compare and branch
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range)
	(comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): New
	functions.
	* lisp/emacs-lisp/comp.el (comp-equality-fun-p)
	(comp-range-cmp-fun-p): New functions.
	(comp-collect-rhs): Use `comp-assign-op-p' in place of
	`comp-set-op-p'.
	(comp-negate-range-cmp-fun, comp-reverse-cmp-fun): New functions.
	(comp-emit-assume): Rework to be able to emit also comparision
	assumption.
	(comp-add-cond-cstrs-simple): Update for new `comp-emit-assume'.
	(comp-add-cond-cstrs-simple): Update to emit range assumption.
	(comp-fwprop-insn): Execute range assumptions.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add tests.
2020-12-26 10:53:54 +01:00
emacs-f
f9264a3878 Avoid missing email messages due to rmail-spam-filter
* lisp/mail/rmail-spam-filter.el (rsf--rmail-last-seen-message):
New function.
(rmail-spam-filter, rmail-get-new-mail-filter-spam): Call
'rsf--rmail-last-seen-message' instead of
'rmail-first-unseen-message'.  (Bug#45128)

Copyright-paperwork-exempt: yes
2020-12-26 11:46:11 +02:00
Eli Zaretskii
cf1d703444 Fix messages with plural forms in todo-mode.el
* lisp/calendar/todo-mode.el (todo-move-item, todo-item-undone)
(todo-category-completions): Use 'ngettext' instead of hard-coding
plural forms by hand.
2020-12-26 10:23:04 +02:00
Lars Ingebrigtsen
90e40099de Fix infloop in memory-report
* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1):
Fix infloop on circular lists.
2020-12-26 00:57:01 +01:00
Lars Ingebrigtsen
d18b1c8c75 Fix package reloading problems on systems with symlinks
* lisp/emacs-lisp/package.el (package--files-load-history): We're
comparing the truenames, so ensure that we've using that
everywhere.  This fixes problems when there's symlinks in the paths.
2020-12-25 22:44:56 +01:00
Lars Ingebrigtsen
443a53874b Refactor package--list-loaded-files for easier debuggability
* lisp/emacs-lisp/package.el (package--files-load-history)
(package--list-of-conflicts): Factor out from...
(package--list-loaded-files): ... this function for easier
debuggability.
2020-12-25 22:29:46 +01:00
Glenn Morris
90ec81f5b2 Merge from origin/emacs-27
b242bbb073 (origin/emacs-27) ; lisp/org/org.el: Fix Version header.
e0fc939c5f Add more details to the "word processor" section
fda9b3e83a * src/Makefile.in (DO_CODESIGN): Fix expected architecture...
2020-12-25 10:36:48 -08:00
Glenn Morris
2e20749e57 Merge from origin/emacs-27
5d46593568 Support build of Emacs on ARM Macos machines
7f8793e5f1 Update to Org 9.4.4
7b3367a0b5 * lisp/so-long.el: Decrease use of passive voice.
a90836c638 * doc/misc/efaq.texi (New in Emacs 27): Add section.
711fe70dd8 * doc/misc/efaq.texi (Latest version of Emacs): Bump version.
52b30834fb * lisp/face-remap.el (face-remap-set-base): Doc fix.  (Bug...
b3fe0ac62e Correct argument order in comment
2020-12-25 10:36:48 -08:00
Glenn Morris
b242bbb073 ; lisp/org/org.el: Fix Version header.
This is flagged by the single org test that exists in Emacs.
2020-12-25 10:36:25 -08:00
Eli Zaretskii
a9413dd2d1 Fix last change
* lisp/international/mule-conf.el (ebcdic-int1, cp256, cp273)
(ebcdic-be, cp274, ebcdic-br, cp275, ebcdic-cp-dk, ebcdic-cp-no)
(cp277, ebcdic-cp-fi, ebcdic-cp-se, cp278, ebcdic-cp-it, cp280)
(ebcdic-jp-e, cp281, ebcdic-cp-es, cp284, ebcdic-cp-gb, cp285)
(ebcdic-jp-kana, cp290, ebcdic-cp-fr, cp297): Remove charset
aliases, they are not really needed.

* lisp/language/english.el (ibm275): Move from here...
* lisp/language/european.el (ibm275): ...to here.
2020-12-25 15:58:15 +02:00
Timo Myyrä
c3c1863d95 Add support for more EBCDIC code pages IBM2XX
There was already charset file present in etc/charsets for IBM2XX
character sets but there wasn't definitions for them in Emacs.
Add character set and coding system definitions for them.
* lisp/language/japanese.el (ibm281, ibm290):
* lisp/language/european.el (ibm256, ibm273, ibm274, ibm277)
(ibm278, ibm280, ibm284, ibm285, ibm297):
* lisp/language/english.el (ibm275): New coding systems.
* lisp/international/mule-conf.el (ibm256, ibm273, ibm274)
(ibm275, ibm277, ibm278, ibm280, ibm281, ibm284, ibm285, ibm290)
(ibm297): New charsets.
2020-12-25 15:43:52 +02:00
Andrea Corallo
bd693ccea7 * Don't emit byte op-code annotations in LIMPLE to optimize for compile-time
Saves 10~15% in bootstrap time.

	* lisp/emacs-lisp/comp.el (comp-op-case): Don't emit op-code
	annotaitons.
	(comp-limplify-lap-inst, comp-add-cond-cstrs-simple)
	(comp-add-cond-cstrs, comp-tco-func): Update accordingly.
2020-12-25 09:44:30 +01:00
E. Choroba
290ee3474d cperl-mode: Correctly syntax highlight index/value array slices
* lisp/progmodes/cperl-mode.el (cperl-init-faces): %array[0, 1]
should use the array face, not the hash one (bug#45373).

Copyright-paperwork-exempt: yes
2020-12-25 07:02:01 +01:00
Thibault Polge
174327cefa Make `remove-hook' interactive
* lisp/subr.el (remove-hook): Make `remove-hook' interactive
(bug#45393).
2020-12-25 06:44:40 +01:00
Lars Ingebrigtsen
af359de917 Allow `string-limit' to work on encoded strings
* doc/lispref/strings.texi (Creating Strings): Document it.

* lisp/emacs-lisp/subr-x.el (string-limit): Allow limiting on
encoded strings.
2020-12-25 05:58:09 +01:00
Lars Ingebrigtsen
269cec13a2 Remove `string-slice' -- it's not very well defined
* doc/lispref/strings.texi (Creating Strings): Ditto.

* lisp/emacs-lisp/subr-x.el (string-slice): Remove.
2020-12-25 05:16:46 +01:00
Andrea Corallo
b4ee13c942 * Memoize `comp-subtype-p'
* lisp/emacs-lisp/comp-cstr.el (comp-subtype-p): Memoize.
	(comp-cstr-ctxt): Add `subtype-p-mem' slot.
2020-12-24 15:40:53 +01:00
Andrea Corallo
2327a98319 * Constrain only mvars that are actually used
* lisp/emacs-lisp/comp.el (comp-mvar-used-p, comp-collect-mvars)
	(comp-collect-rhs): New functions.
	(comp-add-cond-cstrs-simple, comp-add-cond-cstrs): Update logic.
	(comp-add-cstrs): Call `comp-collect-rhs' before doing anything
	else.
2020-12-24 15:40:50 +01:00
Andrea Corallo
2a6c6bf324 * Use `comp-assign-op-p' into dead code elimination pass
* lisp/emacs-lisp/comp.el (comp-dead-assignments-func): Use
	`comp-assign-op-p' in place of `comp-set-op-p'.
2020-12-24 15:36:46 +01:00
Andrea Corallo
96d4c70412 * Fix logic for constraining block with multiple predecessors
* lisp/emacs-lisp/comp.el (comp-limple-lock-keywords)
	(comp-add-cond-cstrs-target-block): Logic update.
2020-12-24 15:36:46 +01:00
Andrea Corallo
672988e961 Symplify (not t) => nil and (not nil) => t
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-negation): Symplify (not
	t) => nil and (not nil) => t.
	* test/lisp/emacs-lisp/comp-cstr-tests.el
	(comp-cstr-typespec-tests-alist): Add two tests.
2020-12-24 15:36:46 +01:00
Andrea Corallo
538f59806c Extend cstrs pass to match `unless' like code
* lisp/emacs-lisp/comp.el (comp-emit-assume): Add assertion.
	(comp-add-new-block-between): Fix two typos.
	(comp-add-cond-cstrs-target-block): Fix typo.
	(comp-add-cond-cstrs-simple): Logic update.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.
2020-12-24 15:36:39 +01:00
Andrea Corallo
715cac119a * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Opencode byte-not. 2020-12-24 15:36:36 +01:00
Andrea Corallo
c07c9f6bf8 Extend cstrs pass to match `when' like code
* lisp/emacs-lisp/comp.el (comp-emit-assume): Better parameter names.
	(comp-add-cond-cstrs-simple): New function.
	(comp-add-cond-cstrs): Rename assume-target -> block-target.
	(comp-add-cstrs): Call `comp-add-cond-cstrs-simple'.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add test.
2020-12-24 15:36:09 +01:00
Andrea Corallo
4deeb2f2ee Invert basic block argument order in LIMPLE cond-jump
* lisp/emacs-lisp/comp.el (comp-emit-cond-jump)
	(comp-emit-switch, comp-emit-narg-prologue, comp-add-cond-cstrs):
	Invert basic block argument order in LIMPLE cond-jump.
	* src/comp.c (emit_limple_insn): Likewise.
2020-12-24 15:22:32 +01:00
Alan Mackenzie
3096437593 CC Mode: introduce a new cache for brace structures. This fixes bug #45248
Also fix three infinite loops.  The new cache accelerates backward searches
for struct beginnings in c-looking-at-or-maybe-in-bracelist.

* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): In the final loop
over unary operators, add a check (> (point) lim) to avoid certain infinite
loops.
(c-beginning-of-decl-1): In the first loop add a similar check on point and
lim.
(c-laomib-loop): New function extracted from
c-looking-at-or-maybe-in-bracelist.
(c-laomib-cache): New buffer local variable.
(c-laomib-get-cache, c-laomib-put-cache, c-laomib-fix-elt)
(c-laomib-invalidate-cache): New functions which implement the cache.
(c-looking-at-or-maybe-in-bracelist): Replace two invocations of
c-go-up-list-backwards with calls to c-parse-state.  Extract the new function
c-laomib-loop.  Insert code which calls c-laomib-loop minimally, with the help
of the new cache.

* lisp/progmodes/cc-mode.el (c-basic-common-init): Initialise the new cach
(at mode start).
(c-before-change): Invalidate the new cache.
(c-fl-decl-start): Add an extra check (> (point) bod-lim) to prevent looping.
Determine the enclosing brace to pass as arguments to
c-looking-at-or-maybe-in-bracelist.
2020-12-24 11:29:27 +00:00
Stefan Monnier
b68d52c81b * lisp/emacs-lisp/lisp-mnt.el (lm-section-end): Stop at the right heading
`lisp-outline-level` assumes the match-data is that set by
`outline-regexp`.
2020-12-23 18:31:52 -05:00
TEC
3be0dc659f authinfo-mode: add option to not hide any elements (and add font-lock)
* lisp/auth-source.el (authinfo-hide-elements): New user option.
(authinfo--keywords): New variable.
(authinfo-mode): Use it.
(authinfo--hide-passwords): Use doc-face instead of warning for
the passwords.
(authinfo--toggle-display): Ditto.
2020-12-23 22:34:35 +01:00
Adam Porter
33210c8dc0 * lisp/tab-line.el: New options, faces, and functions
* lisp/tab-line.el:
(tab-line-tab-face-functions): New option.
(tab-line-tab-inactive-alternate): New face.
(tab-line-tab-special): New face.
(tab-line-tab-face-inactive-alternating): New function.
(tab-line-tab-face-special): New function.
(tab-line-format-template): Use them.

* etc/NEWS: Update.

With thanks to Juri Linkov and Eli Zaretskii for their guidance.
2020-12-23 23:05:55 +02:00
Andrea Corallo
b99a474482 Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-23 19:49:58 +01:00
Andrea Corallo
ffcd490cb4 Negate only values while constraining variables (bug#45376)
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-value-negation): New
	function.
	* lisp/emacs-lisp/comp.el (comp-fwprop-insn): Use
	`comp-cstr-value-negation'.
	* test/src/comp-test-funcs.el (comp-test-45376-1-f): Rename.
	(comp-test-45376-2-f): New funcion.
	* test/src/comp-tests.el (bug-45376-1): Rename test.
	(bug-45376-2): Add test.
2020-12-23 16:17:58 +01:00
Andrea Corallo
0a89ed7a96 * Fix non range cstr union operation
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-homogeneous): Add
	range parameter and handle the non range case.
	(comp-cstr-union-1-no-mem, comp-cstr-intersection-no-mem): Update
	`comp-cstr-union-homogeneous' call sites.
2020-12-23 16:17:40 +01:00
Andrea Corallo
c90aa68d90 * Follow cstr basic blocks to perform latch recognition
* lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix latch
	recognition.
2020-12-23 12:03:39 +01:00
Andrea Corallo
fd8dd75a71 Make input constraints into memoization hash immutable (bug#45376)
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1)
	(comp-cstr-intersection): Copy input before soting it into the
	memoization hash table.
2020-12-23 10:58:42 +01:00
Andrea Corallo
2a22fa8b68 * lisp/emacs-lisp/comp-cstr.el (comp-cstr-copy): Tweak for perf. 2020-12-23 10:58:20 +01:00
Juri Linkov
268a3d32fb Show image as text when trying to search/replace in image buffer (bug#25905)
* lisp/image-mode.el (image-mode-isearch-filter): New function.
(image-mode--setup-mode): Use it to add it as :before-while to
isearch-filter-predicate.
2020-12-23 11:30:04 +02:00
Lars Ingebrigtsen
5c86a53296 Improve the string-limit doc string
* lisp/emacs-lisp/subr-x.el (string-limit): Mention
truncate-string-to-width in the doc string.
2020-12-23 07:59:24 +01:00
Lars Ingebrigtsen
22c1f00d99 Allow string-slice to take zero-length matches
* lisp/emacs-lisp/subr-x.el (string-slice): Allow zero-length
matches.  Code adapted from s.el by Magnar Sveen.
2020-12-23 07:45:19 +01:00
Lars Ingebrigtsen
21097cdd32 Revert recent server.el frame-focus changes
* lisp/server.el (server-switch-buffer, server-execute): Revert
9cef8fc8cd and
c5f2eb56c0.  This change led to
regressions in non-new-frame circumstances.
2020-12-23 06:58:12 +01:00
Łukasz Stelmach
1e11f6f59d Handle gracefully href="" in base tags in shr
* net/shr.el (shr-tag-base): shr-parse-base can't handle empty
strings gracefully.  Don't call it unless href is a non-empty
string (bug#45355).
2020-12-23 06:26:06 +01:00
Alan Mackenzie
6af31fd71f Align the word "Function" in profiler's headers over the actual functions
* lisp/profiler.el (profiler-report-render-calltree-1): Replace two
occurrences of "Function" with "  Function".
2020-12-22 18:34:24 +00:00
Eric Abrahamsen
aae44a36f3 Ensure that Gnus servers are open(able) before searching them
* lisp/gnus/gnus-search.el (gnus-search-run-search): Imap servers need
to be opened (made into the "current server") before we manipulate the
nnimap-buffer.
(gnus-search-run-search): Sneakily fix regexp.
(gnus-search-indexed-parse-output): We need to pass the server name in
here, otherwise nnmaildir won't know how to make this the "current
server".
2020-12-22 09:01:25 -08:00
Alan Mackenzie
9449b81f27 Align profiler's header-line-format to column 0, to work correctly on tty's
* lisp/profiler.el (profiler-report-header-line-format): Propertize the first
space with 'display '(space :align-to 0).
2020-12-22 16:57:46 +00:00
Alan Mackenzie
9920929e7b Re-order the items in `profiler-report' output.
Putting the usage figures first on the line will eliminate the truncation of
function names.

lisp/profiler.el (profiler-version): Change to "28.1".
(profiler-format): Enhance, so that a width of zero means print the string
without padding or truncation.
(profiler-report-cpu-line-format, profiler-report-memory-line-format): Amend
for the new layout.  The number of places for the cpu samples has been reduced
from 19 to 12 (enough for ~30 years at 1,000 samples per second).
(profiler-report-line-format, profiler-report-describe-entry): Amend for the
new order of arguments to profiler-format.

etc/NEWS (Specialized Modes): Add an entry documenting this change.

doc/lispref/debugging.texi (Profiling): Describe the new ordering of the items
in place of the old ordering.
2020-12-22 12:06:21 +00:00
Michael Albinus
188b09d6d9 Reorganize Tramp header lines
* lisp/net/tramp.el: Move header lines Version, Package-Requires,
Package-Type and URL ...
* lisp/net/trampver.el: ... here.
2020-12-22 12:13:37 +01:00
Bastien Guerry
7f8793e5f1 Update to Org 9.4.4 2020-12-22 10:29:37 +01:00
Basil L. Contovounesios
e42a63a960 ; Fix docstrings in last change to subr-x.el 2020-12-22 09:01:47 +00:00
Daniel Martín
9015329678 Fix wdired-get-filename when ls -F marks symlinks
* lisp/wdired.el (wdired-get-filename): In some systems like BSD or
macOS, "ls -F" marks symlinks with a trailing "@".  Add logic
accounting for this so that wdired-get-filename returns the correct
filename.  This change also fixes test "wdired-test-bug34915" on macOS
and BSD systems (bug#34915).
2020-12-22 07:36:41 +01:00
Lars Ingebrigtsen
051d8f7535 Make string-pad take an optional START parameter
* lisp/emacs-lisp/subr-x.el (string-pad): Alter the calling
convention.
2020-12-22 06:59:25 +01:00
Lars Ingebrigtsen
9480169f1b Change the string-limit parameter semantics
* lisp/emacs-lisp/subr-x.el (string-limit): Alter the calling
convention.
2020-12-22 06:54:32 +01:00