Commit graph

7506 commits

Author SHA1 Message Date
Andrea Corallo
7ba816ee1c * lisp/emacs-lisp/comp.el (comp-lookup-eln): Add autoload cookie. 2021-03-21 21:55:13 +01:00
Andrea Corallo
6351953dcd * lisp/emacs-lisp/comp.el (comp-lookup-eln): Add new function. 2021-03-21 21:50:22 +01:00
Andrea Corallo
d0280ce1b1 Revert "* lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Clean-up all..."
This reverts commit be22cda7be.

Older binaries might still need those .eln if they where preloaded.
2021-03-21 15:34:38 +01:00
Andrea Corallo
08682ccc31 ; Remove two unnecessary quotes
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): Remove unnecessary
	quote.
	* lisp/emacs-lisp/comp.el (comp-compile-ctxt-to-file): Likewise.
2021-03-21 09:28:25 +01:00
Andrea Corallo
be22cda7be * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Clean-up all .eln dirs. 2021-03-21 09:15:25 +01:00
Andrea Corallo
6ca6c71cd0 Merge remote-tracking branch 'savannah/master' into native-comp 2021-03-19 15:28:00 +01:00
Stefan Monnier
b815445cea Fix copyright lines mistakenly treated as outline headers
* lisp/emacs-lisp/generator.el:
* test/lisp/cedet/semantic-utest.el:
* test/lisp/cedet/semantic/format-tests.el:
* test/lisp/cedet/semantic/fw-tests.el:
* test/lisp/cedet/semantic/bovine/gcc-tests.el:
* test/lisp/cedet/semantic/format-resources/test-fmt.el:
* test/manual/cedet/semantic-tests.el:
* lisp/obsolete/inversion.el: Use only 2 semi-colons before "Copyright".
2021-03-18 23:32:57 -04:00
Stefan Monnier
236aad4f8c * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Optimize the "return nil" case 2021-03-18 17:54:43 -04:00
Mattias Engdegård
52270aa0dc Optimise tail calls in and and or forms in cl-labels functions
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Handle `and` and `or`.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Add test cases.
2021-03-18 13:35:55 +01:00
Lars Ingebrigtsen
4eb0303197 Compute chart-face-list dynamically
* lisp/emacs-lisp/chart.el (chart-face-list): Allow a function as
the value (bug#47133) so that we can compute the faces dynamically
on different displays.
(chart--face-list): New function.
(chart-draw-data): Use it.
2021-03-18 11:15:50 +01:00
Lars Ingebrigtsen
21e1a126b5 Make memory-report work with buffer-local unbound vars
* lisp/emacs-lisp/memory-report.el (memory-report--buffer-data):
Protect against buffer-local unbound variables (bug#47057).
2021-03-18 08:33:40 +01:00
Stefan Monnier
82c3bd1e4a * lisp/emacs-lisp/benchmark.el (benchmark-call): New function
(benchmark-run, benchmark-run-compiled, benchmark): Use it.
(benchmark--adaptive): New internal function.
2021-03-17 19:04:28 -04:00
Andrea Corallo
3e133cc050 Fix `no-byte-compile' native compilation interaction (bug#47169)
* lisp/emacs-lisp/comp.el (comp-spill-lap-function): Throw
	no-native-compile when `byte-native-qualities' are null.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): No need
	to consider `no-byte-compile'.
2021-03-16 19:02:57 +01:00
Andrea Corallo
f3abb17118 Have no-byte-compile' implies also no-native-compile'.
* lisp/emacs-lisp/comp.el (no-native-compile): Update doctring.
	* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): when
	`no-byte-compile' is set to non-nil it overrides this.
2021-03-16 09:12:46 +01:00
Eli Zaretskii
6810635bdd * lisp/emacs-lisp/byte-opt.el: Fix native re-compilation (bug#47161). 2021-03-15 19:24:20 +02:00
Andrea Corallo
7f74ed4912 * lisp/emacs-lisp/bytecomp.el: Fix native re-compilation (bug#47161). 2021-03-15 16:46:16 +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
Gabriel do Nascimento Ribeiro
2d12df3926 Init archive and add noconfirm to 'package-install-selected-packages'
* lisp/emacs-lisp/package.el (package-install-selected-packages):
Add call to 'package--archives-initialize' and add optional argument
NOCONFIRM to skip user confirmation when installing packages.  (Bug#47124)
2021-03-15 03:09:02 +01:00
Andrea Corallo
5e4ec4d3c9 Fix some entry in `comp-known-type-specifiers' (bug#46847)
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Some
	fix.
	* test/src/comp-tests.el (comp-tests-46670-1): Update test.
2021-03-14 22:05:02 +01:00
Andrea Corallo
d018584814 * Fix circular dependecy when loading a modified comp.el (bug#47049)
* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Move it
	before other functional code.
2021-03-12 22:35:23 +01:00
Glenn Morris
1feddd35ab Merge from origin/emacs-27
02a5cfce47 (origin/emacs-27) * lisp/mouse.el: Fix mouse-1-clock-follo...
c881e990e3 * lisp/emacs-lisp/gv.el (edebug-after): Don't run the gett...
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
Andrea Corallo
d9cd55a4f1 Implement `no-native-compile' (bug#46983)
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Capture
	`no-native-compile'.
	* lisp/emacs-lisp/comp.el (no-native-compile): Define new
	variable.
	(comp-spill-lap-function): Throw when `no-native-compile' was
	captured non-nil.
	(comp--native-compile): Catch `no-native-compile' if necessary and
	return nil in case.
2021-03-12 13:11:45 +01:00
Mattias Engdegård
a0854f939c ; Fix typos in doc strings 2021-03-12 12:12:14 +01:00
Andrea Corallo
0144764d1d * Fix error reporting for async native compilation (bug#47024)
* lisp/emacs-lisp/comp.el (comp--native-compile): During async
	compilation if we catch an error print it in a parsable way so we
	can report it to the user.
2021-03-12 10:03:09 +01:00
Stefan Monnier
ba6ae500f1 * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Simplify (doh!) 2021-03-11 22:31:39 -05:00
Stefan Monnier
009bc7c9d8 * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Tune down the warning
Don't warn for always-nil bindings if the binding is made explicit.
Fixes bug#47080.
2021-03-11 22:27:41 -05:00
Stefan Monnier
7109307c1a * lisp/emacs-lisp/syntax.el (syntax-propertize-rules): Use macroexp-let2
This also silences the recently introduced compilation warning.
2021-03-11 21:47:10 -05:00
Lars Ingebrigtsen
d0125959d7 Make byte-compiled uses of `define-minor-mode' more compatible
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Be more
defensive about accessing minor mode variables.
2021-03-12 00:41:54 +01:00
Stefan Monnier
b21f6193fe * lisp: Remove yet more always-nil variables
* lisp/align.el (align-region):
Remove always-nil variable `group-c`.
* lisp/ido.el (ido-make-prompt): Remove always-nil variable `prefix`.

* lisp/xdg.el (xdg-mime-collect-associations):
Remove always-nil variable `end`.

* lisp/calc/calc-yank.el (calc-edit):
Remove always-nil variable `flag`.

* lisp/calendar/todo-mode.el (todo-edit-item--header):
Remove always-nil variable `dayname`.
(todo-show-categories-table):
Remove always-nil variable `sortkey`.

* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-docstring-engine):
Remove always-nil variable `err`.

* lisp/emacs-lisp/tcover-ses.el: Remove always-nil variable `pause`.

* lisp/eshell/em-ls.el (eshell-ls-files):
Remove always-nil variable `ignore`.

* lisp/net/ange-ftp.el (ange-ftp-copy-file-internal): Remove always-nil
variable `temp2`.

* lisp/progmodes/cperl-mode.el (cperl-tags-hier-init): Remove
always-nil variables `l1`, `l2`, `l3`.
(cperl-tags-treeify): Remove always-nil variable `l1`.

* lisp/progmodes/ebrowse.el (ebrowse-tags-read-member+class-name):
Remove always-nil variable `class`.

* lisp/textmodes/artist.el (artist-draw-ellipse-with-0-height):
Remove always-nil variable `fill-info`.

* lisp/textmodes/flyspell.el (flyspell-emacs-popup):
Remove always-nil variable `show-affix-info`.

* lisp/textmodes/rst.el (rst-Ado):
Remove always-nil variable `char`.

* lisp/vc/vc.el (vc-diff-build-argument-list-internal):
Remove always-nil variable `rev2-default`.
2021-03-11 13:29:14 -05:00
Stefan Monnier
e13c30132a * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Warn never-initialized vars
(byte-compile-not-lexical-var-p): Remove Emacs<24 compatibility.
2021-03-11 13:01:59 -05:00
Lars Ingebrigtsen
4b47eb32c6 Fix byte-compilation warning in benchmark-run
* lisp/emacs-lisp/benchmark.el (benchmark-run): Avoid a
byte-compilation warning about an empty let body (bug#46819).
2021-03-10 15:52:54 +01:00
Andrea Corallo
fe1c081c38 * Fix truncated warnings (bug#47024)
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Bind
	`warning-fill-column' to `most-positive-fixnum'.
2021-03-10 15:50:58 +01:00
Mattias Engdegård
7add330903 Mark string predicates side-effect-free
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add string>,
string-greaterp, string-empty-p, string-prefix-p, string-suffix-p
and string-blank-p, all recently marked pure.
2021-03-10 14:08:41 +01:00
Stefan Kangas
4cb52200cb Fix duplicate ":" in ert-find-test-other-window prompt
* lisp/emacs-lisp/ert.el (ert-find-test-other-window): Don't insert
duplicate ":" in prompt.
2021-03-10 04:34:53 +01:00
Stefan Kangas
dc2688acb3 Do mode tagging in ert.el 2021-03-10 04:34:32 +01:00
Stefan Monnier
7561c01380 * lisp/emacs-lisp/cconv.el: Don't confuse a string for a docstring
(cconv--convert-funcbody): Check there's something after a docstring.

* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-string-vs-docstring):
New corresponding test.
2021-03-09 11:04:03 -05:00
Andrea Corallo
43b0df62cd Merge commit '9cbdf20316' into native-comp 2021-03-09 10:03:47 +01:00
Philipp Stephani
f4452bb814 Fix structure of condition object in nested 'ert-fail'.
See the test 'ert-test-fail' for the expected structure.

* lisp/emacs-lisp/ert.el (ert--should-signal-hook): Condition list
should be (SYMBOL . DATA), not (SYMBOL DATA).
* test/lisp/emacs-lisp/ert-tests.el (ert-test-fail-inside-should): Fix
unit test.
2021-03-08 14:30:24 +01:00
Mauro Aranda
a01166562c Make checkdoc--next-docstring use the doc-string-elt property
This follows from a fix for Bug#46918 and a discussion to use
doc-string-elt:
https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00232.html

* lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring): Check for a
non-nil doc-string-elt property, instead of hard-coding the
supported symbols.  Use that property to position point at the
doc-string.
2021-03-08 08:12:23 -03:00
Stefan Kangas
0e4a2dca83 Normalize version specifiers for make-obsolete and friends
* lisp/auth-source.el (auth-source-forget-user-or-password)
(auth-source-user-or-password, auth-source-hide-passwords):
* lisp/calendar/icalendar.el (icalendar--datetime-to-noneuropean-date):
* lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym-function-arglist):
* lisp/emacs-lisp/debug.el (debugger-insert-backtrace):
* lisp/obsolete/nnir.el (nnir-swish-e-index-file):
* lisp/obsolete/starttls.el (starttls-any-program-available):
Normalize version specifiers for make-obsolete and friends.
2021-03-08 05:09:27 +01:00
Stefan Monnier
251dea693a * lisp/emacs-lisp/bytecomp.el: Warn about unprefixed vars in boundp
(byte-compile--check-prefixed-var): New fun,
extracted from `byte-compile--declare-var`.
(byte-compile--declare-var): Use it.
(byte-compile-maybe-guarded): Use it as well.
2021-03-07 19:00:47 -05:00
Andrea Corallo
9809f7ed2c Use `length=' and family where possible in native comp code
* lisp/emacs-lisp/comp-cstr.el (comp-intersect-typesets)
	(comp-cstr-imm): Use Use `length=' and family where possible.
	* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-block)
	(comp-compute-dominator-frontiers)
	(batch-byte-native-compile-for-bootstrap): Likewise.
2021-03-07 21:33:53 +01:00
Andrea Corallo
b6f06c32b4 * lisp/emacs-lisp/comp.el (w32-get-nproc): Suppress warning declaring it.
For non Windows system.
2021-03-07 20:26:46 +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
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
Andrea Corallo
c60f2f458a Fix `comp-cstr-intersection-no-hashcons' for negated result cstr
* lisp/emacs-lisp/comp-cstr.el
	(comp-cstr-intersection-no-hashcons): When negated and
	necessary relax dst to t.
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.
2021-03-06 23:17:14 +01:00
Pip Cet
6c73418c95 Fix miscompilation of funcall forms in some cases (bug#46974)
* lisp/emacs-lisp/comp.el (comp-call-optim-func): Call
comp-cstr-imm-vld-p before relying on comp-cstr-imm to return the
right value.
2021-03-06 20:53:57 +00:00
Andrea Corallo
3848f3bff0 * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-simple): Suppress warning. 2021-03-06 20:52:34 +01:00
Andrea Corallo
05259c4a23 Fix `=' propagation to handle -0.0 0.0 case
* lisp/emacs-lisp/comp-cstr.el
	(comp-cstr-intersection-homogeneous): Fix indent + use `memql'.
	(comp-cstr-=): Handle 0.0 -0.0 idiosyncrasy
	* test/src/comp-tests.el (comp-tests-type-spec-tests): Add two
	tests and fix enumeration.
2021-03-06 20:38:00 +01:00