1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-19 22:50:29 -08:00
Commit graph

43742 commits

Author SHA1 Message Date
Andrea Corallo
5aa42f686c Prevent unnecessary multiple .el hashing in 'maybe_swap_for_eln'
* src/comp.c (Fcomp_el_to_eln_rel_filename): New function.
	(Fcomp_el_to_eln_filename): Make use of.
	(syms_of_comp): Register 'Scomp_el_to_eln_rel_filename'.
	* src/lread.c (maybe_swap_for_eln): Make use of
	'Fcomp_el_to_eln_rel_filename' to hash prevent unnecessary
	multiple hashing.
2021-03-21 20:45:03 +01:00
Andrea Corallo
6ca6c71cd0 Merge remote-tracking branch 'savannah/master' into native-comp 2021-03-19 15:28:00 +01:00
Andrea Corallo
b3ad62f8a3 Do not load native code when `load' is explicitly called on a .elc file
* src/lread.c (Fload): Do not load native code when `load' is
	explicitly called on a .elc file.
	(Flocate_file_internal): Update 'openp' call sites.
	(maybe_swap_for_eln): Add new 'no_native' parameter.
	(openp): Likewise + update 'maybe_swap_for_eln' and 'openp' call
	sites.
	* src/lisp.h: Update 'openp' signature.
	* src/w32proc.c (sys_spawnve): Update 'openp' call sites.
	* src/w32.c (check_windows_init_file): Likewise.
	* src/sound.c (Fplay_sound_internal): Likewise.
	* src/process.c (Fmake_process): Likewise.
	* src/image.c (image_create_bitmap_from_file)
	(image_find_image_fd): Likewise.
	* src/emacs.c (set_invocation_vars): Likewise.
	* src/charset.c (load_charset_map_from_file): Likewise.
	* src/callproc.c (call_process): Likewise.
2021-03-19 10:23:41 +01:00
Michael Albinus
ce1b4acd71 Extend handled events in 'while-no-input-ignore-events' (Bug#47205)
* etc/NEWS: Mention changes to 'while-no-input-ignore-events'.

* src/keyboard.c (kbd_buffer_store_buffered_event): Handle also
Qfile_notify and Qdbus_event as ignore_event.  (Bug#47205)
2021-03-18 12:43:35 +01:00
Lars Ingebrigtsen
60af754170 Document that `buffer-string' retains text properties
* doc/lispref/text.texi (Buffer Contents): Mention text properties
in the `buffer-string' documentation.
* src/editfns.c (Fbuffer_string): Mention text properties in the
doc string (bug#47220).
2021-03-18 05:59:12 +01:00
Daniel Martín
ef122bf45d Add minibuffer input support to commands that set the frame size
* lisp/frame.el (set-frame-property--interactive): Internal function to
produce the interactive form of `set-frame-width' and
`set-frame-height'.  Offer the current size as default.  (Bug#9970)
* src/frame.c (Fset_frame_height): Modify to call
`set-frame-property--interactive'.
(Fset_frame_width): Modify to call `set-frame-property--interactive'.
* doc/lispref/frames.texi (Frame Size): Update the manuals.
* etc/NEWS: Advertise the change (bug#9970).
2021-03-16 01:29:28 +01:00
Eli Zaretskii
aabda4263b Prefer expand-file-name to concat in native-compilation code
* lisp/emacs-lisp/comp.el (comp-eln-load-path-eff):
* src/comp.c (Fcomp_el_to_eln_filename)
(eln_load_path_final_clean_up): Prefer expand-file-name to concat.
(Bug#43725)
2021-03-15 16:56:08 +02:00
Pip Cet
472cd53d93 Don't call setjmp through a function pointer on Windows (bug#47067)
* src/comp.c (ABI_VERSION): Bump.
(emit_setjmp): Call setjmp directly.
(declare_runtime_imported_funcs): Remove setjmp.
(helper_link_table): Remove entry for setjmp.
2021-03-14 15:47:18 +00:00
Eli Zaretskii
f142f5ba46 Fix hang due to failure to clean up *.eln.old files at exit
* src/comp.c (eln_load_path_final_clean_up): Call
internal_delete_file, not Fdelete_file, to ignore any errors.
(Bug#46972)
2021-03-14 15:36:39 +02:00
Alan Third
ebc3b25409 Fix buffer overflow in xbm_scan (bug#47094)
* src/image.c (xbm_scan): Ensure reading a string doesn't overflow the
buffer.
2021-03-13 22:01:31 +00:00
Eli Zaretskii
1f0fb1f6fa Fix rare redisplay glitches when image has been removed from display
* src/dispnew.c (update_window): Make sure all glyph rows below
the last visible one are marked as invalid, even when the loop
which "updates the rest of the lines" didn't examine the last
visible row.  (Bug#47093)
2021-03-13 17:00:15 +02:00
Stefan Monnier
82e3acc9cd * src/keyboard.c parse_solitary_modifier): Accept click modifier 2021-03-12 14:33:41 -05:00
Glenn Morris
7c3ec4ef35 Merge from origin/emacs-27
fc83f37951 Fix initialization of 'while-no-input-ignore-events'
8f603da44c Update documentation of reading passwords
2021-03-12 08:47:41 -08:00
Glenn Morris
74c389526f Merge from origin/emacs-27
2c5f215419 Avoid crashes in Mew due to corrupted tool-bar label
7a23915618 * lisp/tooltip.el (tooltip): Doc fix for GTK.
c4bbe02cc4 * lisp/help.el (help-for-help-internal): Doc fix; use impe...

# Conflicts:
#	lisp/help.el
#	lisp/tooltip.el
2021-03-12 08:47:41 -08:00
Andrea Corallo
82bd6d57d5 Merge remote-tracking branch 'savannah/master' into native-comp 2021-03-12 16:42:51 +01:00
Juri Linkov
b90c658492 Update docstrings of 'delete'/'remove' to interlink each other (bug#47054)
* lisp/subr.el (remove): Add xref to 'delete'.
* src/fns.c (Fdelete): Add xref to 'remove'.
2021-03-11 21:08:09 +02:00
Paul Eggert
b8bf62b60a On MS-Windows, fflush stderr after newline
Problem reported by Ioannis Kappas (Bug#46388).
* src/sysdep.c (errputc) [WINDOWSNT]: Flush stderr after newline.
2021-03-11 10:43:33 -08:00
Philipp Stephani
222d70333f * src/image.c (image_set_transform): Don't use ! for Lisp object. 2021-03-11 11:05:32 +01:00
Philipp Stephani
9ab51428cd * src/image.c (FRAME_SCALE_FACTOR): Define only when needed. 2021-03-11 11:04:57 +01:00
Basil L. Contovounesios
f695fdfef7 ; Fix US spelling in last change. 2021-03-10 23:28:28 +00:00
Alan Third
c93447eac6 Enable selectable image smoothing (bug#38394)
* lisp/doc-view.el (doc-view-insert-image): Always use smoothing in
docview.
* lisp/image-mode.el (image-transform-smoothing): New variable.
(image-mode-map): Add smoothing binding.
(image-transform-properties): Apply smoothing when requested.
(image-transform-set-smoothing): New function.
(image-transform-reset): Reset smoothing.
* src/image.c (image_set_transform): Use new :transform-smoothing
attribute.
(syms_of_image): Add :transform-smoothing attribute.
* doc/lispref/display.texi (Image Descriptors): Document new
:transform-smoothing property.
2021-03-10 21:40:42 +00:00
Paul Eggert
f97e07ea80 Port alternate signal stack to upcoming glibc 2.34
* src/sysdep.c (sigsegv_stack): Increase size to 64 KiB and align
it to max_align_t.  This copies from Gnulib’s c-stack.c, and works
around a portability bug in draft glibc 2.34, which no longer
defines SIGSTKSZ when _GNU_SOURCE is defined.
2021-03-09 11:26:33 -08:00
Stefan Monnier
c6ed17cc70 * src/buffer.c (Fbuffer_swap_text): Swap mark-active as well
This avoids undesirable situations where `mark-active` is set even
though the `mark` isn't.
2021-03-09 13:04:14 -05:00
Andrea Corallo
79c83f79c5 * src/comp.c (ABI_VERSION): Bump following-up 380ba045c4. 2021-03-09 16:37:05 +01:00
Andrea Corallo
43b0df62cd Merge commit '9cbdf20316' into native-comp 2021-03-09 10:03:47 +01:00
Pip Cet
380ba045c4 * Fix comp unit type decl in eln files to fix GC crash (bug#46256)
* src/comp.c (emit_ctxt_code): Allocate comp_unit as a Lisp_Object,
not a pointer to pointer to Lisp_Object.
2021-03-09 09:25:38 +01:00
Pip Cet
93f92cf1ba Zero stale pointer when unloading comp units (bug#46256)
* src/alloc.c (cleanup_vector): Call unload_comp_unit.
* src/comp.c (unload_comp_unit): New function.
2021-03-09 09:25:27 +01:00
Stefan Kangas
4a112fd7a6 Add new face 'help-key-binding' for keybindings in help
* lisp/faces.el (help-key-binding): New face.
* lisp/help.el
(help-for-help): Rename from 'help-for-help-internal'.  Use
'substitute-command-keys' syntax.
(help): Make into alias for 'help-for-help'.
(help-for-help-internal): Make into obsolete alias for
'help-for-help'.
(help--key-description-fontified): New function to add the
'help-key-binding' face.
(help-key-description, substitute-command-keys)
(describe-map-tree, help--describe-command)
(help--describe-translation, describe-map):
* lisp/help-fns.el (help-fns--key-bindings, describe-mode):
Use above new function.
* lisp/isearch.el (isearch-help-for-help-internal): Use
`substitute-command-keys' syntax.
* lisp/help-macro.el (make-help-screen): Use
'substitute-command-keys' and 'help--key-description-fontified'.
Simplify.
* src/keymap.c (describe_key_maybe_fontify): New function to add
the 'help-key-binding' face to keybindings.
(describe_vector): Use above new keybinding.
(syms_of_keymap) <Qfont_lock_face, Qhelp_key_binding>: New
DEFSYMs.
(fontify_key_properties): New static variable.
* lisp/tooltip.el (tooltip-show): Avoid overriding faces in
specified tooltip text.
* test/lisp/help-tests.el (with-substitute-command-keys-test):
Don't test for text properties.
(help-tests-substitute-command-keys/add-key-face)
(help-tests-substitute-command-keys/add-key-face-listing):
New tests.
2021-03-08 04:23:08 +01:00
Andrea Corallo
15aa239ba0 * Handle `comp-native-driver-options' both as file-local both as global
* src/comp.c (add_driver_options): Throw an error if
	`comp-native-driver-options' is set globally but
	'gcc_jit_context_add_driver_option' is not available, ignore for
	the file-local case.
2021-03-07 22:20:07 +01:00
Andrea Corallo
dcf2be6971 ; * src/comp.c (load_comp_unit): Fix a comment. 2021-03-07 21:01:35 +01:00
Andrea Corallo
dbdc44db15 Allow for `comp-native-driver-options' to work as a file-local variable. 2021-03-07 20:19:20 +01:00
Andrea Corallo
38b4ac3e6b * Work around GCC PR99126 on all libgccjit < 11
* src/comp.c (Fcomp__compile_ctxt_to_file): Work around GCC
	PR99126 on all libgccjit < 11.
2021-03-07 19:49:18 +01:00
Eli Zaretskii
948e6609b1 Avoid aborts in native-comp subprocesses when exiting Emacs on Windows
* src/w32.c (shutdown_handler): Clear the message stack when being
shut down in noninteractive mode, to avoid aborting in
shut_down_emacs when a native-compilation subprocess is killed
because the parent Emacs exits.
2021-03-07 16:31:35 +02:00
Eli Zaretskii
f89e70a704 Fix encoding of file names in comp.c
* src/comp.c (Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Fix
encoding of file names passed to libgccjit.
2021-03-07 15:52:20 +02:00
Eli Zaretskii
619f66f423 Use MS-Windows system APIs to get number of processors
* lisp/emacs-lisp/comp.el: Use 'w32-get-nproc' instead of the
environment variable NUMBER_OF_PROCESSORS.

* src/w32proc.c (Fw32_get_nproc): New primitive.
* src/w32.c (w32_get_nproc): New function.
(sample_system_load): Call w32_get_nproc to initialize the number
of processors on this system.
* src/w32.h (w32_get_nproc): Add prototype.
2021-03-07 15:32:55 +02:00
Eli Zaretskii
99638d128e ; * src/comp.c (Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Fix last change. 2021-03-07 12:53:51 +02:00
Eli Zaretskii
7a13a0d616 Fix libgccjit PROGNAME on MS-Windows
* src/comp.c [WINDOWSNT]: Import gcc_jit_context_set_str_option.
(init_gccjit_functions): Load gcc_jit_context_set_str_option.
(gcc_jit_context_set_str_option) [WINDOWSNT]: New macro.
(Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Pass the actual name of
the libgccjit DLL to the library, to be used as PROGNAME.
2021-03-07 12:49:05 +02:00
Glenn Morris
d632622b5a Simplify silent-rules build machinery
* src/verbose.mk.in: New file.
* configure.ac (AM_V, AM_DEFAULT_V): Remove output variables.
(src/verbose.mk): New output file.
* Makefile.in, admin/charsets/Makefile.in:
* admin/grammars/Makefile.in, admin/unidata/Makefile.in:
* doc/emacs/Makefile.in, doc/lispintro/Makefile.in:
* doc/lispref/Makefile.in, doc/misc/Makefile.in, leim/Makefile.in:
* lib-src/Makefile.in, lib/Makefile.in, lisp/Makefile.in:
* lwlib/Makefile.in, nt/Makefile.in, oldXMenu/Makefile.in:
* src/Makefile.in, src/verbose.mk.in, test/Makefile.in:
Include src/verbose.mk rather than repeatedly defining AM_V_at etc.
2021-03-06 16:28:46 -08:00
Glenn Morris
9cbdf20316 * src/Makefile.in (base_obj): Remove GMP_OBJ, undefined since 202007. 2021-03-06 11:37:11 -08:00
Stefan Monnier
d582356a7f * src/fns.c (Frandom): Handle bignum limits
(ccall2, get_random_bignum): New functions.
2021-03-05 12:09:50 -05:00
Eli Zaretskii
552ef6d6c0 Fix some unsafe uses of SSDATA in comp.c
* src/comp.c (comp_hash_source_file)
(Fcomp__compile_ctxt_to_file, Fnative_elisp_load): Encode file
names before passing them to library APIs.
(Fcomp__compile_ctxt_to_file): use emacs_fopen instead of fopen.
(declare_lex_function): Avoid keeping a 'char *' pointer around
while calling Lisp, which could trigger GC, which could relocate
string data.
2021-03-05 16:41:41 +02:00
Eli Zaretskii
fc83f37951 Fix initialization of 'while-no-input-ignore-events'
* src/keyboard.c (syms_of_keyboard_for_pdumper): Don't reset
'while-no-input-ignore-events' after loading the dump file.
(Bug#46940)
2021-03-05 14:42:22 +02:00
Andrea Corallo
260617ddc2 * Harden `comp-abi-hash' computation
Account for subr arity in `comp-abi-hash' computation as that's part
of the ABI exposed to .eln files.

	* src/comp.c (Fcomp__subr_signature): New support function.
	(hash_native_abi): Make use of.
	(syms_of_comp): Register 'Scomp__subr_signature'.
2021-03-05 11:02:21 +01:00
Eli Zaretskii
b456b19ec4 Fix typos and doc strings in native-compilation files
* lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose)
(comp-always-compile, comp-deferred-compilation-deny-list)
(comp-bootstrap-deny-list, comp-never-optimize-functions)
(comp-async-jobs-number, comp-async-cu-done-hook)
(comp-async-all-done-hook, comp-async-env-modifier-form)
(comp-pass, comp-native-compiling, comp-post-pass-hooks)
(comp-known-predicate-p, comp-pred-to-cstr)
(comp-symbol-values-optimizable, comp-limple-assignments)
(comp-limple-calls, comp-limple-branches, comp-block)
(comp-vec--verify-idx, comp-vec-aref, comp-vec-append)
(comp-vec-prepend, comp-block-preds)
(comp-ensure-native-compiler, comp-log, comp-log-func)
(comp-loop-insn-in-block, comp-byte-frame-size)
(comp-add-func-to-ctxt, comp-spill-lap-function, comp-spill-lap)
(comp-lap-fall-through-p, comp-new-frame, comp-emit-set-call)
(comp-copy-slot, comp-latch-make-fill, comp-emit-cond-jump)
(comp-body-eff, comp-op-case, comp-prepare-args-for-top-level)
(comp-limplify-top-level, comp-negate-arithm-cmp-fun)
(comp-emit-assume, comp-cond-cstrs-target-mvar)
(comp-function-foldable-p, comp-function-call-maybe-fold)
(comp-form-tco-call-seq, comp-clean-up-stale-eln)
(comp-delete-or-replace-file, comp--native-compile)
(native--compile-async, native-compile)
(batch-byte-native-compile-for-bootstrap): Fix typos, wording, and
punctuation in doc strings.
* lisp/loadup.el: Fix typos.

* src/lread.c (syms_of_lread): Doc fix.
2021-03-04 20:36:43 +02:00
Matt Armstrong
6ff90ef0bb Call the set_buffer_overlays_ setters
* src/buffer.c (Fkill_buffer): Call set_buffer_overlays_before and
set_buffer_overlays_after instead of setting the fields directly
(bug#46914).
2021-03-04 21:12:00 +01:00
Andrea Corallo
6444f69de2 * src/comp.c (hash_native_abi): Account for `system-configuraton-options'. 2021-03-04 09:03:26 +01:00
Pip Cet
43b40bc880 Don't call _setjmp through a function pointer (Bug#46824)
* src/comp.c (helper_link_table): Don't include SETJMP except on Windows.
(emit_setjmp): Don't use function pointers except on Windows.
(declare_runtime_imported_funcs): Don't import SETJMP at runtime.
(ABI_VERSION): Bump.
* test/src/comp-tests.el (46824-1): New test.
* test/src/comp-test-funcs.el (comp-test-46824-1-f): New function.
2021-03-03 20:36:16 +01:00
Andrea Corallo
cf37850e2d * src/comp.c (return_nil): Make it not a nested function. 2021-03-03 20:36:16 +01:00
Eli Zaretskii
30810905de Fix compilation warnings in --with-wide-int build on Windows
* src/comp.c (emit_rvalue_from_emacs_uint)
(emit_rvalue_from_lisp_word_tag): Fix comparison of unsigned
values.
(gcc_jit_context_new_rvalue_from_ptr): Define only if
LISP_WORDS_ARE_POINTERS, to avoid compilation warning.
(init_gccjit_functions): Load gcc_jit_context_new_rvalue_from_ptr
only if LISP_WORDS_ARE_POINTERS.
2021-03-03 20:15:58 +02:00
Eli Zaretskii
e5a0d4c425 Avoid aborting on MS-Windows at startup
* src/emacs.c (set_invocation_vars) [WINDOWSNT]: If argv0 is not
an absolute file name, obtain the absolute file name of the Emacs
executable from 'w32_my_exename'.
2021-03-03 19:58:20 +02:00