1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
Commit graph

145864 commits

Author SHA1 Message Date
Andrea Corallo
c4efb49a27 Constrain mvars under compare and branch with built-in predicates
* lisp/emacs-lisp/comp.el (comp-emit-assume): Update.
	(comp-known-predicate-p): New function.
	(comp-add-cond-cstrs): Extend to pattern match predicate calls.
	* lisp/emacs-lisp/comp-cstr.el (comp-cstr-null-p)
	(comp-pred-to-cstr): New function.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a
	number of tests and fix comments.
2020-12-29 17:49:30 +01:00
Andrea Corallo
e83c6994e1 * Define `cl-satisfies-deftype' mapping predicate -> type
* lisp/emacs-lisp/cl-macs.el (cl-satisfies-deftype): Define symbol
	property as reverse of `cl-deftype-satisfies'.
2020-12-29 14:47:16 +01:00
Andrea Corallo
ba41a183dd * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Better `comp-type-to-cstr'. 2020-12-29 14:46:23 +01:00
Andrea Corallo
2b3c7c7517 Store function type and expose it with `subr-type'
* src/lisp.h (struct Lisp_Subr): Add 'type' field.
	(SUBR_TYPE): New inline accessor.
	* src/pdumper.c (dump_subr): Update for 'type' field.
	* src/data.c (Fsubr_type): New primitive.
	(syms_of_data): Update.
	* src/comp.c (ABI_VERSION): Bump new ABI version.
	(make_subr): Set type.
	(Fcomp__register_lambda, Fcomp__register_subr)
	(Fcomp__late_register_subr): Receive and pass subr type to
	'make_subr'.
	* src/alloc.c (mark_object): Mark subr type.
	* lisp/emacs-lisp/comp.el (comp-func): Change slot type into mvar.
	(comp-emit-for-top-level, comp-emit-lambda-for-top-level): Pass
	type mvar to subr register functions.
	(comp-compute-function-type): Fix-up subr type mvars.
	* test/src/comp-tests.el (comp-tests-check-ret-type-spec): Use
	`subr-type'.
2020-12-28 16:15:23 +01:00
Andrea Corallo
5a8622ba2c Reorder subr register function arguments to make some room
* src/comp.c (Fcomp__register_lambda, Fcomp__register_subr)
	(Fcomp__late_register_subr): Use a rest arg to pass 'doc_idx' and
	'intspec' parameters.
	* lisp/emacs-lisp/comp.el (comp-emit-for-top-level)
	(comp-emit-lambda-for-top-level): Update.
2020-12-28 16:13:31 +01:00
Andrea Corallo
eafcc8eda0 Propagate function calls also when hiddend under funcall
* lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate functions
	also when called under `funcall'.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.
2020-12-28 16:12:08 +01:00
Andrea Corallo
e532ec9552 Compute function type for native compiled functions
* lisp/emacs-lisp/comp.el (comp-func): `type' rename from
	`ret-type-specifier'.
	(comp-args-to-lambda-list): New function.
	(comp-compute-function-type): New function from
	`comp-ret-type-spec'.
	(comp-final): Update.
	* test/src/comp-tests.el (comp-tests-check-ret-type-spec): Update.
2020-12-28 16:09:31 +01:00
Andrea Corallo
8a0467e2ef ; lisp/emacs-lisp/comp.el (comp-emit-narg-prologue): Nit. 2020-12-28 16:08:38 +01:00
Andrea Corallo
ccce15299b * Improve some slot type into comp.el
* lisp/emacs-lisp/comp.el (comp-args-base, comp-args)
	(comp-nargs, comp-func): Fix the type of some slots.
2020-12-28 16:06:49 +01:00
Andrea Corallo
42fb6de0b3 Add 1+ 1- integer range propagation support
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-one): New special var.
	* lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate integer
	ranges on +1 -1.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests.
2020-12-27 21:50:34 +01:00
Andrea Corallo
7d07a71841 Add sum/subtraction integer range propagation support
* lisp/emacs-lisp/comp-cstr.el (comp-range-+, comp-range--): New
	functions.
	(comp-cstr-set-range-for-arithm): New macro.
	(comp-cstr-add-2, comp-cstr-sub-2, comp-cstr-add, comp-cstr-sub):
	New function.
	* lisp/emacs-lisp/comp.el (comp-fwprop-call): Wire-up + - integer
	range propagation.
2020-12-27 21:34:03 +01:00
Andrea Corallo
92af4e8fc9 * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range): Improve. 2020-12-27 21:33:42 +01:00
Andrea Corallo
34e9aae440 * Add comp-cstr-greatest-in-range comp-cstr-smallest-in-range
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-smallest-in-range)
	(comp-cstr-greatest-in-range): New function.
	(comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): Make use of.
2020-12-27 19:45:24 +01:00
Andrea Corallo
ee53560c8c * Don't require trailing backslashes in `comp-eln-load-path' (bug#45462)
* src/comp.c (Fcomp_el_to_eln_filename): Don't require
	trailing backslashes in comp-eln-load-path.
2020-12-27 17:56:17 +01:00
Andrea Corallo
8fb9463013 Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-27 17:54:57 +01:00
Basil L. Contovounesios
df882c9701 ; Fix recent shortdoc.el and fns.c additions
* lisp/emacs-lisp/shortdoc.el (list): Fix typos.
* src/fns.c (Flength_equal): Fix docstring.
2020-12-27 13:14:30 +00:00
Štěpán Němec
8bc727d0b4 ; Fix the recent `length' doc string addition 2020-12-27 11:43:19 +01:00
Lars Ingebrigtsen
eb98afaf35 Fix up length_internal with degenerate length inputs
* src/fns.c (length_internal): Protect against edge conditions.
2020-12-27 09:22:02 +01:00
Daniel Martín
80420faf49 Improve "find definition" in *Help* buffers
* lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): If
our regexp algorithm could not find a location for the symbol
definition, resort to find-function--search-by-expanding-macros.
* test/lisp/emacs-lisp/find-func-tests.el: Add a automatic test for a
function and variable generated by a macro.
* etc/NEWS: Advertise the improved functionality (bug#45443).
2020-12-27 09:04:56 +01:00
Lars Ingebrigtsen
0f790464d5 Add new predicates for sequence lengths
* doc/lispref/sequences.texi (Sequence Functions): Document them.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Mark them as
side-effect-free.

* lisp/emacs-lisp/shortdoc.el (list): Mention them.

* src/fns.c (Flength): Mention them in the doc string.
(length_internal): New function.
(Flength_less, Flength_greater, Flength_equal): New defuns.
(syms_of_fns): Sym them.
2020-12-27 09:00:23 +01:00
Lars Ingebrigtsen
714ca849ba Improve the edebug-form-data doc string
* lisp/emacs-lisp/edebug.el (edebug-form-data): Doc string
clarification (bug#42776).
2020-12-26 23:13:29 +01:00
Andrea Corallo
271fb8a269 * Fix `byte-compile-file' for native compilation (bug#45442)
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Fix logic for
	native compilation.
2020-12-26 20:38:36 +01:00
Andrea Corallo
d893952053 Fix missing float handling into `comp-cstr-set-cmp-range'
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range): Add
	float handling.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Update results.
2020-12-26 20:00:01 +01:00
Stefan Monnier
4b2ca6bfc0 * lisp/forms.el (forms--run-functions): New function
(forms--intuit-from-file, forms-save-buffer): Use it.
(forms-mode): Use it to fix regression.
Remove always-true test.  Fix incorrect uses of `fboundp`.
(forms--iif-hook): Use `add-hook`.
(forms--iif-post-command-hook): Use `remove-hook` and fix typo.
(forms--debug): Use `mapconcat`.
2020-12-26 12:21:32 -05:00
Eli Zaretskii
25fb44fad1 Fix test/src/process-tests on MS-Windows
* src/process.c (network_lookup_address_info_1) [WINDOWSNT]:
Initialize winsock.
2020-12-26 15:01:52 +02:00
Michael Albinus
fd658b8100 Rename Tramp method "media" to "mtp" (Bug#45402)
* doc/misc/tramp.texi (Quick Start Guide, GVFS-based methods):
Rename "media" to "mtp".  (Bug#45402)

* etc/NEWS: Rename Tramp method "media" to "mtp".  Fix typos.

* lisp/net/tramp-gvfs.el (tramp-gvfs-methods, tramp-media-methods)
(tramp-gvfs-activation-uri)
(tramp-gvfs-handler-volumeadded-volumeremoved)
(tramp-get-media-devices, top): Rename "media" to "mtp".  (Bug#45402)
2020-12-26 12:39:10 +01:00
Andrea Corallo
fc02c8458d * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two more test. 2020-12-26 12:34:58 +01:00
Andrea Corallo
fcd8c60182 * Remove unnecessary lhs rename in `comp-ssa-rename-insn'
* lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): No point to
	rename lhs as it's being replaced.
2020-12-26 12:30:58 +01:00
Andrea Corallo
c5c0c06b1c * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add two functions. 2020-12-26 12:22:21 +01:00
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
Zajcev Evgeny
b3c9af9061 Improvements for `:base-uri' svg image property
* src/image.c (svg_load): Use ENCODE_FILE for `:base-uri'

* doc/lispref/display.texi (SVG Images): Add more documentation for
  `:base-uri'
2020-12-26 11:18:49 +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
Paul Eggert
60bfa84e41 Fix issues with lib/malloc out-of-dir builds
Problem reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2020-12/msg01626.html
* configure.ac: If the scratch_buffer module is enabled, create
lib/malloc and (if doing dependencies) lib/deps/malloc.
* lib/Makefile.in (DEPFLAGS) [AUTO_DEPEND]: No longer any need to
squash lib dependencies into a single directory.
(clean): Also remove */*.o and $(DEPDIR)/*/*.d, to clean out
malloc/*.o and deps/malloc/*.d.  Just remove *.d files in
dependencies so that rm does not complain about not being able to
remove deps/malloc.
(extraclean): Also remove malloc, if it is empty.
2020-12-25 19:17:04 -08:00
Lars Ingebrigtsen
a63855cd21 Kill the scdaemon after doing the mml-sec tests
* test/lisp/gnus/mml-sec-tests.el (mml-sec-test--kill-gpg-agent):
Kill the scdaemon, too (bug#43358).
2020-12-26 03:59:35 +01: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
Lars Ingebrigtsen
e1eabc8ee1 Disable some semantic tests on systems without g++
* test/lisp/cedet/semantic-utest-ia.el: Disable g++ tests on
systems without g++.
2020-12-25 21:19:37 +01:00
Lars Ingebrigtsen
c9fb3474c9 Skip some mml tests that rely on CMS if that's not installed 2020-12-25 21:09:31 +01:00
Lars Ingebrigtsen
00b8fdf29b Fix gpg-agent killing in mml-sec-tests
* test/lisp/gnus/mml-sec-tests.el (mml-sec-test--kill-gpg-agent):
Identify the gpg-agent more successfully after the resource dir
makeover.
2020-12-25 20:56:22 +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
47799cc02b ; Merge from origin/emacs-27
The following commit was skipped:

6bf22c933d Codesign the executable on recene MacOS systems
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
Michael Albinus
1ca6add75f Tag another Tramp test :unstable on emba
* test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process)
(tramp-test43-asynchronous-requests): Tag them :unstable on emba.
2020-12-25 18:45:29 +01:00
Michael Albinus
e497a013f7 Tag Tramp test :unstable
* test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process):
Tag it :unstable on emba.
2020-12-25 17:05:36 +01:00
Eli Zaretskii
3649160f61 ; * etc/NEWS: Announce the last change. 2020-12-25 16:11:49 +02: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