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

149293 commits

Author SHA1 Message Date
Paul Eggert
4dcf8f2205 Make live_*_p more accurate
* src/alloc.c (live_string_holding, live_cons_holding)
(live_symbol_holding, live_vector_holding):
Return a C pointer, not a Lisp_Object.  All callers changed.
This helps the compiler a bit.
(live_string_p, live_cons_p, live_symbol_p, live_vector_p):
Require that P point directly at the object, rather than
somewhere within the object.  This fixes some false positives
with valid_lisp_object_p (used only in debugging).
(mark_maybe_object): Rely on the new accuracy.
2020-06-04 22:08:43 -07:00
Basil L. Contovounesios
f51f963478 Fix some side-effecting uses of make-text-button
For discussion, see the following thread:
https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00117.html

* lisp/apropos.el (apropos-library-button):
* lisp/help-fns.el (help-fns--first-release): Return result of
make-text-button instead of relying on its side effects.
* lisp/ibuf-ext.el (ibuffer-old-saved-filters-warning): Avoid
modifying an immutable string.
2020-06-04 23:30:34 +01:00
Juri Linkov
25390b28c4 * lisp/dired.el (dired-toggle-marks): Use region for non-nil dired-mark-region
(dired-mark--region-use-p, dired-mark--region-beginning)
(dired-mark--region-end): New internal functions.
(dired-mark-if): Use new functions.  (Bug#39902)
2020-06-05 01:17:30 +03:00
Simen Heggestøyl
f4568bac56 Change default project list filename to "projects"
* lisp/progmodes/project.el (project-list-file): Change the default
filename to "projects".
2020-06-04 20:16:54 +02:00
Simen Heggestøyl
e7fb0a48a6 Use characters for keys in project-switch-commands
* lisp/progmodes/project.el (project-switch-commands): Use
characters for keys instead of string for better future
compatibility with 'read-multiple-choice'.
(project-switch-project): Adjust to above change.
2020-06-04 20:14:02 +02:00
Simen Heggestøyl
b41be0ee83 ; Small cleanup in project.el
* lisp/progmodes/project.el (project--add-to-project-list-front):
Minor simplification after recent changes.
2020-06-04 20:11:58 +02:00
Stefan Monnier
cdadb7a97c * lisp/font-lock.el (font-lock--syntax-table-affects-ppss): New var
This tries to make `font-lock-syntax-table` work correctly even when
it changes the parsing of strings and comments, as was the case in
`font-latex.el`.

We should probably deprecate the use of `font-lock-syntax-table` since
the present fix is still not 100% and since it comes with performance
problems in large files.

(font-lock-set-defaults): Set it.
(font-lock-fontify-syntactically-region): Don't use `syntax-ppss`
when we think that `font-lock-syntax-table` would interfere.
2020-06-04 09:58:22 -04:00
Andrea Corallo
5684b3420d * Fix build for --enable-check-lisp-object-type=yes (bug#41703)
* src/comp.c (emit_coerce): Add missing declaration.
2020-06-04 11:02:51 +01:00
Andrea Corallo
f5ea65b436 Merge remote-tracking branch 'savannah/master' into HEAD 2020-06-04 10:33:07 +01:00
Mattias Engdegård
4fff650236 ; * test/src/xfaces-tests.el (xfaces-color-distance): Fix bug id 2020-06-04 10:56:20 +02:00
Paul Eggert
638ef45787 Don’t default to Valgrind unless ENABLE_CHECKING
* src/alloc.c (USE_VALGRIND): If not defined, don’t default it to
1 unless ENABLE_CHECKING.  The Valgrind hooks bloat the garbage
collector a bit in production, and there’s no need for them these
days if one has a Valgrind suppressions file (which one needs anyway).
(mark_maybe_pointer): Use ‘#if USE_VALGRIND’ instead of ‘#ifdef
USE_VALGRIND’ for consistency with other uses of USE_VALGRIND.
This is in case someone builds with ‘-DENABLE_CHECKING
-DUSE_VALGRIND=0’ in CFLAGS.
2020-06-03 19:00:04 -07:00
Paul Eggert
65749436d0 Revert make-text-button string copy
* lisp/button.el (make-text-button): Don’t make a copy of
a button’s string label.  This reverts the change made in
2020-05-17T05:23:28Z!eggert@cs.ucla.edu, which broke SLY.
Problem reported by João Távora in:
https://lists.gnu.org/r/emacs-devel/2020-06/msg00117.html
However, we’ll need a better fix for this once string
literals become contents, if SLY uses string constants
for text button labels.
2020-06-03 18:16:33 -07:00
Paul Eggert
6dad339f06 Fix make-text-button bug with string copy
* lisp/button.el (make-text-button): Use the copy of BEG
uniformly, instead of in just one place.  This fixes a typo
introduced in 2020-05-17T05:23:28Z!eggert@cs.ucla.edu.
Problem reported by João Távora in:
https://lists.gnu.org/r/emacs-devel/2020-06/msg00117.html
2020-06-03 15:39:51 -07:00
Andrea Corallo
e4e6bb7fdd * Introduce `comp-loop-insn-in-block'
* lisp/emacs-lisp/comp.el (comp-loop-insn-in-block): New macro.
	(comp-call-optim-func, comp-dead-assignments-func)
	(comp-remove-type-hints-func): Use `comp-loop-insn-in-block'.
2020-06-03 22:06:26 +01:00
João Távora
bd20af2d41 Ensure Jsonrpc processes are created in correct buffer
Report and original implementation by Steve Purcell
<steve@sanityinc.com>.  See also See
https://github.com/joaotavora/eglot/pull/493 for details

* lisp/jsonrpc.el (initialize-instance): Make process in original
buffer.
(Version): Bump to 1.0.12
2020-06-03 20:54:39 +01:00
Mattias Engdegård
7e8c1a6718 Make color-distance symmetric and more accurate
* src/xfaces.c (color_distance): Don't throw away the low 8 bits of
the colours, and make the function symmetric (bug41544)
(Fcolor_distance): Add caution about this not being a true metric.
* test/src/xfaces-tests.el: New file.
2020-06-03 19:09:33 +02:00
Basil L. Contovounesios
74966904b0 ; Clean up recent project.el additions
* lisp/progmodes/project.el (project): Add :version tag.
(project-list-file): Fix custom :type and add :version tag.
2020-06-03 11:45:54 +01:00
Pip Cet
4cabf16e1d Handle mid-gstring face changes
* src/xdisp.c (fill_gstring_glyph_string): Don't extend the glyph
string past face changes.  (Bug#41454)
2020-06-03 07:36:38 +00:00
Paul Eggert
188dc2e5a3 Fix bug in recent byte-code checking hoist
Problem reported by Daniel Colascione (Bug#41680).
* src/lread.c (read1): Check that AREF (tmp, COMPILED_BYTECODE)
is a string before subjecting it to STRING_MULTIBYTE.
Be more consistent about using AREF in the neighborhood,
to help prevent this sort of problem from recurring.
2020-06-02 18:41:02 -07:00
Basil L. Contovounesios
7d323f07c0 Silence some byte-compiler warnings in tests
* test/lisp/emacs-lisp/cl-generic-tests.el:
* test/lisp/progmodes/elisp-mode-tests.el: Declare functions
referred to within macroexpansions.
(xref-elisp-overloadable-no-default)
(xref-elisp-overloadable-co-located-default)
(xref-elisp-overloadable-separate-default): Prefix unused arguments
with underscore.

* test/lisp/international/ccl-tests.el:
* test/lisp/wdired-tests.el:
* test/lisp/emacs-lisp/package-tests.el: Declare functions used.
(package-test-update-archives, package-test-signed): Use
revert-buffer in place of its obsolete alias package-menu-refresh.

* test/lisp/eshell/eshell-tests.el:
* test/lisp/mail/footnote-tests.el:
* test/src/buffer-tests.el: Require dependencies used.

* test/lisp/image/exif-tests.el: Remove unneeded (require 'seq).
(test-exit-direct-ascii-value): Actually perform the test.
* test/lisp/progmodes/sql-tests.el (sql-test-add-existing-product):
Fix typo.

* test/lisp/simple-tests.el (with-shell-command-dont-erase-buffer):
* test/src/data-tests.el (test-bool-vector-bv-from-hex-string)
(test-bool-vector-apply-mock-op): Remove unused local variables.
2020-06-03 01:22:41 +01:00
Basil L. Contovounesios
cf473e742f * test/lisp/battery-tests.el: New file. 2020-06-03 00:54:23 +01:00
Pip Cet
0bfc4b3dd3 Avoid losing composition state in handle_stop_backwards
* src/xdisp.c (handle_stop_backwards): Save composition iterator state
across our forward scan.  (Bug#41626)
2020-06-02 22:33:48 +00:00
Nicolás Bértolo
b619339b7a Fix DLL imports of gccjit version functions.
* src/comp.c (init_gccjit_functions): Use LOAD_DLL_FN_OPT macro to
load gcc_jit_version_major, gcc_jit_version_major and
gcc_jit_version_patchlevel.
* src/w32common.h (LOAD_DLL_FN_OPT): Add macro optionally load a
function from a DLL.
2020-06-02 23:25:24 +01:00
Dmitry Gutov
f3dd3ddd9e ; NEWS updates 2020-06-03 01:10:16 +03:00
Dmitry Gutov
1fe1c84b18 Small cleanup
* lisp/progmodes/project.el (project--add-to-project-list-front):
Small simplification.
(project--remove-from-project-list): Remove oudated comment.
2020-06-03 00:33:14 +03:00
Dmitry Gutov
8b71bfb891 project-list-file: New user option
* lisp/progmodes/project.el (project): New custom group.
(project-vc): Use it as parent.
(project-vc-merge-submodules): Tag with Emacs version.
(project-read-file-name-function): Assign to the 'project' group.
(project-list-file): New user option (bug#41600).
(project--write-project-list, project--read-project-list): Use it.
2020-06-03 00:27:29 +03:00
Eli Zaretskii
acba19e247 ; * src/composite.c (syms_of_composite): Fix last change. 2020-06-02 20:46:26 +03:00
Eli Zaretskii
22b2e9c901 Fix Arabic composition rules
* lisp/language/misc-lang.el (composition-function-table): Reorder
Arabic composition rules in descending order of lookback.

* src/composite.c (syms_of_composite): Document the order of rules
in 'composition-function-table'.
2020-06-02 20:44:59 +03:00
Simen Heggestøyl
9afcf2bd39 Write project list to file only when changed
* lisp/progmodes/project.el (project--add-to-project-list-front):
Write the project list to file only when it has changed.
2020-06-02 19:27:55 +02:00
Simen Heggestøyl
e7065459d9 Remove 'project--ensure-file-exists'
* lisp/progmodes/project.el (project--ensure-file-exists): Remove.
(project--read-project-list): Set 'project--list' to nil when the
project list file doesn't exist.
2020-06-02 19:12:19 +02:00
Eli Zaretskii
7ddfbb98d2 Fix handling of CGJ in Hebrew text
* lisp/language/hebrew.el (hebrew): Add CGJ U+034F to the
combining characters supported in Hebrew compositions. (Bug#41645)
2020-06-02 18:42:09 +03:00
Basil L. Contovounesios
b07e3b1d97 Improve format-spec documentation (bug#41571)
* doc/lispref/text.texi (Interpolated Strings): Move from here...
* doc/lispref/strings.texi (Custom Format Strings): ...to here,
renaming the node and clarifying the documentation.
(Formatting Strings): End node with sentence referring to the next
one.
* lisp/format-spec.el (format-spec): Clarify docstring.
2020-06-02 14:58:25 +01:00
Paul Eggert
3973f68f59 Simplify and regularize some offset tests in alloc.c
* src/alloc.c (live_string_holding, live_cons_holding)
(live_symbol_holding, live_float_p): Simplify and regularize.
2020-06-01 22:42:01 -07:00
Paul Eggert
e10940f3f1 Merge from origin/emacs-27
0260d2d2db Don't call 'mbrtowc' on WINDOWSNT
2020-06-01 22:26:33 -07:00
Paul Eggert
8c3ed298a0 ; Merge from origin/emacs-27
The following commit was skipped:

fb90f46f47 ; Auto-commit of loaddefs files.
2020-06-01 22:26:33 -07:00
Paul Eggert
e10bd9e249 Merge from origin/emacs-27
44c0e074f7 * doc/emacs/buffers.texi (Icomplete): Mention icomplete-mi...
68b6dad1d8 Be more aggressive in marking objects during GC
36f508f589 ; * src/xdisp.c (find_last_unchanged_at_beg_row): Fix a typo.
cc340da1fe Fix bug #41618 "(byte-compile 'foo) errors when foo is a m...
41232e6797 Avoid crashes due to bidi cache being reset during redisplay
f72bb4ce36 * lisp/tab-bar.el (switch-to-buffer-other-tab): Normalize ...
d3e0023aaa ; * etc/TODO: Fix formatting.  (Bug#41497)
a8ad94cd2f Fix mingw.org's MinGW GCC 9 warning about 'execve'

# Conflicts:
#	lisp/tab-bar.el
#	nt/inc/ms-w32.h
#	src/alloc.c
2020-06-01 22:26:32 -07:00
Juri Linkov
2c1e5b9e77 * lisp/progmodes/project.el (project-vc-dir, project-shell): New commands.
(project-compile): Add args and interactive spec like in 'compile'.
(project-switch-commands): Bind project-vc-dir to "v",
project-shell to "s", and rebind project-find-regexp from "s" to "r".

* doc/emacs/maintaining.texi (Project File Commands):
Describe project-vc-dir and project-shell.
2020-06-02 02:01:25 +03:00
Nicolás Bértolo
9f6c12be55 * Throw an ICE when asked to emit a cast with sign extension.
* src/comp.c (cast_kind_of_type): Enum that specifies the kind of type
in the cast enum (unsigned, signed, pointer).
(emit_coerce): Throw an ICE when asked to emit a cast with sign
extension.
(define_cast_from_to): Return NULL for casts involving sign extension.
(define_cast_functions): Specify the kind of each type in the cast
union.
2020-06-01 21:24:33 +01:00
Nicolás Bértolo
035a91dd96 * Define casts using functions.
This is to dump prettier C files.
This does not affect compilation times in my tests.

* src/comp.c: Define a 15x15 cast matrix. Use it in emit_coerce().
2020-06-01 21:24:33 +01:00
Nicolás Bértolo
516575369b * Remove unnecessary DLL load of gcc_jit_block_add_assignment_op.
* src/comp.c (gcc_jit_block_add_assignment_op): Remove unnecessary
	func import.
2020-06-01 21:08:32 +01:00
Eli Zaretskii
0260d2d2db Don't call 'mbrtowc' on WINDOWSNT
* src/emacs.c (using_utf8): Don't call 'mbrtowc' on WINDOWSNT
systems, as it's not available on Windows 9X.
2020-06-01 18:57:39 +03:00
Basil L. Contovounesios
6d6ec1bc1e ; Fix some recent byte-compilation warnings
For discussion of the autoloaded function declaration, see
https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg00910.html.

* lisp/dnd.el (dnd-handle-one-url): It is no longer necessary to
declare the autoloaded function browse-url-select-handler after
ldefs-boot.el was updated.
* lisp/progmodes/elisp-mode.el: Declare xref.el function to silence
byte-compiler.
2020-06-01 16:56:26 +01:00
Alan Mackenzie
1b6bd97440 Bug #41061 patch: Fix typos and amend code slightly
* lisp/progmodes/cc-align.el (c-lineup-ternary-bodies)
* doc/misc/cc-mode.texi (Operator Line-Up): Fix typos and amend code.
2020-06-01 15:21:54 +00:00
Glenn Morris
056200f3eb ; Auto-commit of loaddefs files. 2020-06-01 06:27:51 -07:00
Glenn Morris
fb90f46f47 ; Auto-commit of loaddefs files. 2020-06-01 06:11:55 -07:00
Dmitry Gutov
f929258646 Change xref-find-apropos to pass PATTERN to backend verbatim
* lisp/progmodes/xref.el (xref-backend-apropos): Rename this
generic's second arg to PATTERN, to clarify that it should be
handled entirely in the backend, with no pre-processing by the
command.
(xref-find-apropos): Update accordingly, but keep compatibility
with backends in older Emacs versions.
(xref-apropos-regexp): Extract from xref-find-apropos.

* lisp/progmodes/etags.el (xref-backend-apropos): Use it here.

* lisp/progmodes/elisp-mode.el (xref-backend-apropos): And here.
2020-06-01 05:28:43 +03:00
João Távora
44c0e074f7 * doc/emacs/buffers.texi (Icomplete): Mention icomplete-minibuffer-setup-hook. 2020-06-01 01:29:50 +01:00
Paul Eggert
68b6dad1d8 Be more aggressive in marking objects during GC
Simplified version of a patch from Pip Cet (Bug#41321#299).
* src/alloc.c (maybe_lisp_pointer): Remove.  All uses removed.
(mark_memory): Also look at the pointer offset by ‘lispsym’,
for symbols.
2020-05-31 16:30:54 -07:00
Andrea Corallo
2e25eebfbd Store libgccjit version into generated code
* src/comp.c (emit_ctxt_code): Add libgccjit version into
	stored optimize qualities.
	(syms_of_comp): Define Qgccjit here.

	* src/w32fns.c (syms_of_w32fns): Move out Qgccjit definition.
2020-05-31 22:47:32 +01:00
Andrea Corallo
ce3c1ea83e * Optimize 'emit_static_object' for load-time
* src/comp.c (emit_static_object): Use a chunck size of 200 bytes
	on bugged GCCs and a longer one (1024) in sane ones. Rename
	str in buff to disambiguate and prefer xmalloc to a VLA given
	the buffer is not that small.
2020-05-31 22:22:23 +01:00