1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-15 03:11:54 -07:00
Commit graph

149293 commits

Author SHA1 Message Date
Glenn Morris
1e3f94fad4 ; Merge from origin/emacs-27
The following commit was skipped:

2aa4be89cd (emacs-27) ; Auto-commit of loaddefs files.
2020-07-07 07:50:40 -07:00
Glenn Morris
3b36b38713 Merge from origin/emacs-27
59e768d64a Fix undefined behavior in json.c (Bug#42113)
cce00bef03 Fix ACTION argument of 'display-buffer' call in gud.el
0121db2702 * src/keyboard.c (Fclear_this_command_keys): Doc fix.
b9abf5ceb2 Improve do string of 'man'
b87fc938a0 ; * src/xdisp.c (pos_visible_p): Yet another minor fix for...
2020-07-07 07:50:39 -07:00
Eli Zaretskii
71fc003860 Avoid infloop in 'format-mode-line'
* src/xdisp.c (decode_mode_spec): Don't use W->start if it is
outside of the buffer's accessible region.  (Bug#42220)
2020-07-07 17:08:19 +03:00
Stefan Monnier
6b80ff3c46 * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add keyword 2020-07-06 18:04:54 -04:00
Mattias Engdegård
3f990c3ccc Simplify byte-code optimisation of pure functions
Most pure functions need no explicit optimisation; we can do away with
almost all uses of byte-optimize-predicate (now renamed to
byte-optimize-constant-args, since it is not just for predicates).
Also remove some superfluous arity warnings.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-identity, byte-optimize-memq)
(byte-optimize-nth, byte-optimize-nthcdr):
Remove arity warnings and simplify.
* lisp/emacs-lisp/byte-opt.el (<, >, <=, >=, not, null, consp, listp)
(symbolp, stringp, string<, string-lessp, proper-list-p, logand)
(logior, logxor, lognot, car, cdr, car-safe, cdr-safe):
Remove superfluous byte-optimizer property.
(byte-optimize-predicate): Rename to byte-optimize-constant-args.
All uses changed.
2020-07-06 18:08:06 +02:00
Mattias Engdegård
fb63a64d21 Mark more functions pure (bug#42147)
Extend the list of 'pure' functions to many predicates and numerical
functions that we are reasonably confident will give portable results.
Also include various list and array accessors, because our use of purity
in the byte compiler isn't affected by the mutability of arguments.

* lisp/emacs-lisp/byte-opt.el: Update example in comment.
(pure-fns): Add many functions.
(byte-optimize-form-code-walker) Don't signal errors during evaluation
of calls to pure functions with constant arguments at compile time,
since such calls are not necessarily reachable.
2020-07-06 12:54:17 +02:00
Dmitry Gutov
10a0941f4d ; Revert "; Add a note about a bottleneck"
This reverts commit 9f9ce631a2.

It's still a bottleneck, but so are mapcar (with its effect on GC) and
concat. So our limits show in several places at once.
2020-07-06 04:29:52 +03:00
Dmitry Gutov
9f9ce631a2 ; Add a note about a bottleneck 2020-07-06 03:50:59 +03:00
Dmitry Gutov
3c7bae2337 * lisp/progmodes/project.el: Bump the version. 2020-07-06 00:51:24 +03:00
Dmitry Gutov
bcde7952b3 ; Add a couple of FIXMEs 2020-07-06 00:51:24 +03:00
Dmitry Gutov
4ca13d98c9 project-switch-to-buffer: Don't filter based on default-directory
* lisp/progmodes/project.el (project-switch-to-buffer):
Don't filter based on default-directory
(https://lists.gnu.org/archive/html/emacs-devel/2020-07/msg00075.html).
(project-switch-to-buffer): Ditto.
2020-07-06 00:51:24 +03:00
Wilson Snyder
e3ada2063a Verilog-Mode collected updates.
* lisp/progmodes/verilog-mode.el (verilog-auto-inst): Support regexp of
what AUTOINST I/O to include, issue #1682.  Reported by Mrainy.
(verilog-font-lock-keywords-1): Fix highlighting module names with no
following (, issue #1679.  Reported by Vinam Arora.
(verilog-font-lock-keywords) Adds syntax highlighting for identifiers in
declaration statements, #1678.
(verilog-calculate-indent, verilog-inject-arg)
(verilog-keywords, verilog-showscopes): Support AMS
connectmodule/endconnectmodule, #1665. Reported by Dan McMahill.
2020-07-05 13:31:39 -04:00
Mattias Engdegård
58e27ebb92 Don't confuse errors with nil in bytecomp-tests.el
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-check-1)
(bytecomp-explain-1, test-byte-opt-arithmetic, bytecomp-lexbind-check-1)
(bytecomp-lexbind-explain-1):
If an expression raises an error when evaluated, don't treat it as if
it had succeeded with the value nil; use 'bytecomp-check-error' as the
result instead.
2020-07-05 17:44:34 +02:00
Eli Zaretskii
247dcb4b1b Clarify the documentation of 'left/right-fringe' display spec
* doc/lispref/display.texi (Other Display Specs, Fringe Bitmaps):
Clarify how the optional FACE parameter of the left-fringe and
right-fringe display spec is used.  Reported by Gregory Heytings
<ghe@sdf.org>.
2020-07-05 18:30:21 +03:00
Mattias Engdegård
c10293e168 Relax portable number check in byte compiler (bug#42147)
With bignums, the set of representable integers is no longer
platform-dependent, and since we use nothing but IEEE754 64-bit
floats, all numbers are now portable.  Take advantage of this fact
to simplify constant-folding in the byte compiler, allowing it to
be applied more widely.

* lisp/emacs-lisp/byte-opt.el (byte-opt--portable-max)
(byte-opt--portable-min, byte-opt--portable-numberp): Remove.
(byte-opt--arith-reduce, byte-optimize-minus, byte-optimize-1+)
(byte-optimize-1-): Simplify: any number will do, and if N is a
number, then so are -N, N+1 and N-1.
2020-07-05 16:56:32 +02:00
Alan Mackenzie
1560c92c9c Remove long obsolete c-looking-at-bos. Make c-at-expression-start-p obsolete
* lisp/progmodes/cc-engine.el (c-looking-at-bos): Remove.
(c-at-expression-start-p): Make obsolete, with no alternative function.
2020-07-04 16:35:47 +00:00
Andrea Corallo
2593bbee51 * Relax constant folding rules
* lisp/emacs-lisp/comp.el (comp-function-optimizable-p): No need to
check for operands or result to be fixnums.
2020-07-04 15:55:48 +01:00
Alan Mackenzie
eae028b9e2 Fix filling in js-mode and mhtml-mode (js-mode parts), fixing bug #41897
* lisp/progmodes/js.el (js-mode): Use "\\(?:" in the value of
comment-start-skip rather than "\\(", fixing the second half of bug #41952.
Call c-foreign-init-lit-pos-cache and install c-foreign-truncate-lit-pos-cache
on before-change-functions, to connect up correctly with CC Mode's filling
mechanism.

* lisp/textmodes/mhtml-mode.el (mhtml--crucial-variable-prefix): Add prefixes
"adaptive-fill-", "fill-", "normal-auto-fill-function" and "paragraph-" to
pull in variables crucial to filling.
(mhtml-syntax-propertize): Read the current submode from the piece of text
being propertized rather than one character before it, and do so before
erasing the submode text-property.
(mhtml-mode): Set the js-mode value of auto-fill-function to js-do-auto-fill.
Correctly initialize and use CC Mode's filling facilities, as above.
2020-07-04 12:55:49 +00:00
Alan Mackenzie
697942f9a0 CC Mode: Fix wrong value of comment-start-skip, fixing half of bug #41952
Also add functions to enable correct use of CC Mode's filling functionality
from major modes which don't initialize CC Mode fully.  These modes are
currently js-mode and mhtml-mode.

* lisp/progmodes/cc-langs.el (comment-start-skip): Replace "\\(" by "\\(?:" so
that (match-end 1) isn't falsely taken to be the start of the comment.

* lisp/progmodes/cc-engine.el (c-foreign-truncate-lit-pos-cache)
(c-foreign-init-lit-pos-cache): New functions.
2020-07-04 11:56:18 +00:00
Daniel Koning
32b3856f85 Use 'emacs-lisp-mode-syntax-table' for reading Lisp expressions
* lisp/simple.el (read--expression): Set syntax table to
'emacs-lisp-mode-syntax-table' when reading a Lisp expression
from the minibuffer.  (Bug#41781)

Copyright-paperwork-exempt: yes
2020-07-04 10:55:42 +03:00
Eli Zaretskii
d453cee177 Minor improvement in ELisp manual
* doc/lispref/frames.texi (Position Parameters): Clarify the
description of the 'above' frame parameter.  (Bug#42154)
2020-07-04 10:19:56 +03:00
Andrea Corallo
b0f683ec16 * Fix missing tail recursion elimination
* lisp/emacs-lisp/comp.el (comp-tco-func): Fix tail recursion
	elimination given now functions in LIMPLE are expressed with
	the C name.
2020-07-02 22:55:42 +02:00
Andrea Corallo
7e004d24a4 * Add a test to verify tail recursion elimination
* test/src/comp-tests.el (comp-tests-tco): Compile a recursive
	functions at speed 3 and verify the tail recursion elimination.
	(comp-tests-tco-checker, comp-tests-mentioned-p)
	(comp-tests-mentioned-p-1): New support functions.
2020-07-02 22:55:42 +02:00
Andrea Corallo
8f81859497 Rework `comp-c-func-name' arguments
* lisp/emacs-lisp/comp.el (comp-c-func-name): Add FIRST argument
	to ignore the compiler context and return the first name.

	* lisp/emacs-lisp/disass.el (disassemble-internal): Update the
	`comp-c-func-name' call.
2020-07-02 22:39:39 +02:00
Andrea Corallo
b67e156041 * Add to possibility to write per pass specific tests
* lisp/emacs-lisp/comp.el (comp-post-pass-hooks): New special
	variable.
	(native-compile): Run what is registered in
	`comp-post-pass-hooks'.
2020-07-02 22:39:32 +02:00
Andrea Corallo
25bdf99713 Merge remote-tracking branch 'savahnna/master' into HEAD 2020-07-02 22:30:37 +02:00
Alan Mackenzie
5d1bac0ac9 * lisp/progmodes/cc-mode.el (c-or-c++-mode--regexp): Change WS to [ \t] in it 2020-07-02 18:14:30 +00:00
Phillip Lord
256bb844b0 Remove Emacs-27 reference
* admin/nt/dist-build/README-windows-binaries:
2020-07-02 18:03:23 +01:00
Michael Albinus
3c778c443c * doc/misc/tramp.texi (Customizing Methods): Fix typo. 2020-07-02 13:06:25 +02:00
Juri Linkov
c70a3a4163 Revert feature added in bfd96e995d using project directories in vc (bug#41821) 2020-07-02 01:08:18 +03:00
Eli Zaretskii
aa6c35e95f ; * etc/NEWS: Announce dropping of support for OpenBSD 5.3. 2020-07-01 17:25:52 +03:00
YASUOKA Masahiko
af313f5b9e Support pty's on OpenBSD
* configure.ac (PTY_TTY_NAME_SPRINTF): OpenBSD has posix_openpt
nowadays.  (Bug#42059)

Copyright-paperwork-exempt: yes
2020-07-01 17:22:25 +03:00
Glenn Morris
3e72ca1fc3 ; Auto-commit of loaddefs files. 2020-07-01 06:27:56 -07:00
Glenn Morris
2aa4be89cd ; Auto-commit of loaddefs files. 2020-07-01 06:12:10 -07:00
Juri Linkov
e98ddd6fc1 Bind 'C-x 4 1' to 'same-window-prefix' and document new commands (bug#41691)
* lisp/window.el (ctl-x-4-map): Bind 'C-x 4 1' to 'same-window-prefix'.

* doc/emacs/windows.texi (Pop Up Window): Add 'C-x 4 4' and 'C-x 4 1'.
* doc/emacs/frames.texi (Creating Frames): Add 'C-x 5 5'.
(Tab Bars): Add 'C-x t t'.
2020-07-01 00:30:18 +03:00
Andrea Corallo
0f964db327 Add a test for lambda list containing uninterned symbols
* test/src/comp-test-funcs-dyn.el
	(comp-tests-cl-uninterned-arg-parse-f): New function.

	* test/src/comp-tests.el (comp-tests-cl-uninterned-arg-parse-f):
	New test.
2020-06-30 21:30:44 +02:00
Andrea Corallo
4681f33071 Fix lambda-list relocation class
Lambda-lists must stay in the same relocation class of the object
referenced by code to respect uninterned symbols.

	* lisp/emacs-lisp/comp.el (comp-prepare-args-for-top-level): Break
	the original function in a generic specializing for
	dynamic/lexical functions.  When allocating the lambda-list for
	dynamic functions do that in the default relocation class.
	(comp-emit-for-top-level): Make use of the new
	`comp-prepare-args-for-top-level'.
	(comp-emit-lambda-for-top-level): Likewise.
2020-06-30 21:30:35 +02:00
James N. V. Cash
bc8089a3fa Subject: Frame-local tab-bar for numeric value of tab-bar-show (bug#42052)
* lisp/tab-bar.el (tab-bar-new-tab-to): Set frame parameter
tab-bar-lines to 1 when tab-bar-show is the same as number of tabs.
(tab-bar-close-tab, tab-bar-close-other-tabs): Set frame parameter
tab-bar-lines to 0 when tab-bar-show is the same as number of tabs.

Copyright-paperwork-exempt: yes
2020-06-30 02:45:15 +03:00
Alan Mackenzie
519e64f981 CC Mode: optimize for repeated simple operations.
Do this by recognising that unterminated strings in a buffer are typically
going to be few and close together.  Also optimize code for C++ attributes.

* lisp/progmodes/cc-defs.el (c-previous-single-property-change): New macro.
(c-put-syn-tab, c-clear-syn-tab): Turned from macros into functions, and moved
to cc-mode.el.
(c-clear-syn-tab-properties): Amended to use c-min/max-syn-tab-mkr.
(c-with-extended-string-fences): Removed.

* lisp/progmodes/cc-engine-el (c-enclosing-c++-attribute): Rewritten for
speed.
(c-slow-enclosing-c++-attribute): Removed.
(c-semi-pp-to-literal): Remove a superfluous call to
c-with-extended-string-fences.

* lisp/progmodes/cc-mode.el (c-min-syn-tab-mkr, c-max-syn-tab-mkr): two new
marker variables which bound the region occupied by positions with
c-fl-syn-tab text properties.
(c-basic-common-init): Initialize these two variables.
(c-fl-syn-tab-region): Removed.
(c-put-syn-tab, c-clear-syn-tab): Functions moved from cc-defs.el.
(c-clear-string-fences): Amended to use the new scheme.
(c-restore-string-fences): Now takes no arguments; amended to use the new
scheme.
(c-font-lock-fontify-region): Amended to use the new scheme.
2020-06-29 19:10:09 +00:00
Paul Eggert
d0872638b4 * test/src/fns-tests.el (test-secure-hash): Test getrandom format. 2020-06-29 09:55:33 -07:00
Andrea Corallo
d3ac3534b4 Revert "* src/comp.c (Fcomp__register_subr): Remove code duplication using Fdefalias."
This reverts commit 6c7f615ae5.
2020-06-29 17:26:29 +02:00
Philipp Stephani
59e768d64a Fix undefined behavior in json.c (Bug#42113)
* src/json.c (lisp_to_json_toplevel_1, Fjson_parse_string): Check
whether input strings are actually strings.

* test/src/json-tests.el (json-parse-string/wrong-type)
(json-serialize/wrong-hash-key-type): New regression tests.
2020-06-29 12:32:56 +02:00
Paul Eggert
665014452d Update from Gnulib.
This incorporates:
2020-06-28 getrandom: do not depend on ‘open’ on mingw
2020-06-28 getrandom: fix compilation errors on older versions of mingw
* build-aux/config.sub, lib/getrandom.c, m4/getrandom.m4:
Copy from Gnulib
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
2020-06-28 13:24:06 -07:00
Andrea Corallo
0ce4bf3ede * Do not skip native compilation for leim subfolder during boostrap
* lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): Remove
	"^leim/".
2020-06-28 21:23:45 +01:00
Andrea Corallo
1dd2c8cd07 * Enable deferred compilation for dynamic scoped code
* src/comp.c (maybe_defer_native_compilation): Trigger for dynamic
	code and add a comment.
2020-06-28 21:23:45 +01:00
Eli Zaretskii
162f375bac MS-Windows fixes as followup to import of Gnulib 'getrandom'
* nt/mingw-cfg.site (gl_cv_lib_assume_bcrypt): Set to "no" to
disable linking against bcrypt.dll.  (Bug#42095)

* src/gnutls.c (gnutls_rnd) [WINDOWSNT]: Don't define a function
pointer, and don't load it from GnuTLS DLL.
(w32_gnutls_rnd) [WINDOWSNT]: Delete unused function.
* src/fns.c (gnutls_rnd) [WINDOWSNT]: Don't redirect to
w32_gnutls_rnd.
2020-06-28 18:26:20 +03:00
Andrea Corallo
98196b03c1 Merge remote-tracking branch 'savannah/master' into uninterned 2020-06-28 15:54:57 +01:00
Andrea Corallo
6c7f615ae5 * src/comp.c (Fcomp__register_subr): Remove code duplication using Fdefalias. 2020-06-28 15:53:08 +01:00
Andrea Corallo
5b8b298283 Add a test to verify CL macro expansion in dynamic scope
* test/src/comp-tests.el (comp-tests-cl-macro-exp): New test.

	* test/src/comp-test-funcs-dyn.el: Require `cl-lib'.
	(comp-tests-cl-macro-exp-f): New function.
2020-06-28 15:53:08 +01:00
Andrea Corallo
7f8512765a * Setup correctly the printer while dumping objs in native CU (bug#42088)
* src/comp.c (emit_static_object): Bind a bunch of special
	variables to setup `prin1-to-string' as
	`byte-compile-output-file-form' does.  This to preserve
	uninterned symbols.
2020-06-28 15:53:08 +01:00