Commit graph

6865 commits

Author SHA1 Message Date
Stefan Kangas
e6837016b0 Support sorting timer-list-mode by column (Bug#40854)
* lisp/emacs-lisp/timer-list.el (timer-list-mode)
(timer-list--idle-predicate, timer-list--next-predicate)
(timer-list--repeat-predicate)
(timer-list--function-predicate): Add support for sorting by column.
2020-05-12 19:10:20 +02:00
Stefan Kangas
ee5c5daad5 Base timer-list-mode on tabulated-list-mode (Bug#40854)
* lisp/emacs-lisp/timer-list.el (list-timers)
(timer-list-mode): Inherit from 'tabulated-list-mode' instead of
'special-mode' and make the necessary changes to support that.

* doc/lispref/os.texi (Timers): Update documentation.
2020-05-12 19:10:03 +02:00
Alan Mackenzie
dd0b910f1a Fix bug #40992 whilst still allowing breakpoint highlights in edebug
Strategy: when an instrumented function gets re-evaluated, save the former
value of its symbol's `edebug' property in the new propery `ghost-edebug'.  If
this function is still being edebugged, edebug will then access its info from
this new property.

Also fix the bug whereby compile-defun'ing an instrumented function prevents
the function being re-instrumented by I (edebug-instrument-callee).

* lisp/emacs-lisp/edebug.el (edebug-get-edebug-or-ghost): New function.
(edebug-read-and-maybe-wrap-form1): save value of `edebug' property in
'ghost-edebug'.
(edebug-make-form-wrapper): Set value of `ghost-edebug' to nil.
(edebug-make-form-wrapper, edebug-find-stop-point, edebug-next-break-point)
(edebug-modify-breakpoint, edebug--overlay-breakpoints, edebug-set-breakpoint)
(edebug-unset-breakpoints, edebug-toggle-disable-breakpoint)
(edebug--backtrace-goto-source, edebug-display-freq-count)
(edebug-set-conditional-breakpoint): Use edebug-get-edebug-or-ghost to access
edebug information.
(edebug-instrument-function): Also check a function is a cons before declaring
it "already instrumented".
2020-05-11 20:05:54 +00:00
Stefan Monnier
a69ef94e22 * lisp/emacs-lisp/pcase.el (pcase--fgrep): Look inside vectors 2020-05-11 09:53:37 -04:00
Stefan Monnier
5601eb231f * lisp/emacs-lisp/syntax.el (syntax-propertize): Use run-hook-wrapped
This way we avoid making assumptions about the content of
syntax-propertize-extend-region-functions
2020-05-11 00:15:15 -04:00
Stefan Monnier
a218c98615 * lisp/emacs-lisp/pcase.el: Don't bind unused vars in branches
(pcase--fgrep): Change calling convention to take bindings rather than
just variables.
(pcase--funcall, pcase--eval): Adjust to this new calling convention.
(pcase--expand): Use `pcase--fgrep` to bind only the vars that are used.
2020-05-10 19:07:45 -04:00
Stefan Monnier
7f7a8fbfd7 * lisp/emacs-lisp/eieio.el (eieio pcase macro): Fix last-minute typo 2020-05-10 16:17:16 -04:00
Stefan Monnier
0bb9aeddd6 * lisp/emacs-lisp/eieio.el (eieio pcase macro): Remove unused var is 2020-05-10 13:51:51 -04:00
Andrea Corallo
9bc0a7c408 * Fix `comp-deferred-compilation-black-list' effectiveness
* lisp/emacs-lisp/comp.el (native-compile-async): Fix logic for
	'comp-deferred-compilation-black-list' effectiveness.
2020-05-10 09:34:21 +01:00
Andrea Corallo
bc50c0c57e Merge remote-tracking branch 'savannah/master' into HEAD 2020-05-09 20:04:41 +01:00
Glenn Morris
5c890bfc19 Merge from origin/emacs-27
be0d1cac83 (origin/emacs-27) Small fix for type of 'display-fill-colu...
c5e5839776 Fix customization of 'display-fill-column-indicator-charac...
d5c184aa3e Refer to fill column indicator Info node in some places.
e13300ae50 Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs i...
0bae57033f Fix GTK's Tool Bar menu radio buttons
4c98aa7ea5 Minor clarifications in NEWS
a1cbd05f38 Improve documentation of 'with-suppressed-warnings'.
4a895c1b26 Fix a typo in a comment
2caf3e997e Improve documentation of Hi Lock mode
7081c1d66f Fix typos in the Emacs user manual
0385771e2f Fix references to Speedbar in VHDL mode
a76cafea0d Fix handling of FROM = t and TO = t by 'window-text-pixel-...

# Conflicts:
#	etc/NEWS
#	src/xdisp.c
2020-05-09 10:03:21 -07:00
Pieter van Oostrum
196bc13b7b Add new filter command to Package Menu (Bug#39903)
* lisp/emacs-lisp/package.el
(package-menu-filter-marked): New filter command.
* test/lisp/emacs-lisp/package-tests.el
(package-test-list-filter-marked): New test.
(package-menu-mode-menu):
(package-menu-mode-map): Update menu to include new filter command.

* doc/emacs/package.texi (Package Menu): Document the new command.
* etc/NEWS: Announce the new command.
2020-05-09 18:19:35 +02:00
Andrea Corallo
c6eb276076 Merge remote-tracking branch 'savannah/master' into HEAD 2020-05-09 14:06:55 +01:00
Andrea Corallo
40f655e050 * Add 'comp-deferred-compilation-black-list' customize
* lisp/emacs-lisp/comp.el (comp-deferred-compilation-black-list):
	New customize.
	(native-compile-async): Make use of
	'comp-deferred-compilation-black-list'.
2020-05-09 14:06:43 +01:00
Philipp Stephani
a1cbd05f38 Improve documentation of 'with-suppressed-warnings'.
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Refer to
'byte-compile-warnings' instead of 'byte-compile-warning-types', as
only the former variable documents the available warning types.
2020-05-08 22:12:07 +02:00
Zhu Zihao
39b2a598d2 Make pcase pattern 'eieio' respect slot access related functions.
* lisp/emacs-lisp/eieio.el: Make pcase pattern respect slot-missing and
slot-unbound
2020-05-08 11:08:02 -04:00
Noam Postavsky
ddc8020327 Don't increment array index in cl-loop twice (Bug#40727)
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Put the temp-idx
increment in cl--loop-body, leaving just the side-effect free testing
of the index for both cl--loop-body and cl--loop-conditions.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays):
Extend test to cover this case.
2020-05-07 08:23:56 -04:00
Noam Postavsky
de7158598f Revert "cl-loop: Calculate the array length just once"
It fails when using 'and' (parallel bindings) for arrays (Bug#40727).
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Revert to
recomputing array length.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays): New
test.
2020-05-07 08:23:56 -04:00
Andrea Corallo
cf105f6044 * Fix bug#41112
* lisp/emacs-lisp/comp.el (comp-jump-table-optimizable): New
	function.
	(comp-emit-switch): Make use of 'comp-jump-table-optimizable'.
2020-05-07 10:23:10 +01:00
Andrea Corallo
f8df3320b1 * Add native compilation unit black list
* lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): New customize.
	(batch-native-compile): Rework to make use of
	'comp-bootstrap-black-list'.
	(batch-byte-native-compile-for-bootstrap): Add assertion to make
	logic assumption explicit.
2020-05-06 20:11:47 +01:00
Noam Postavsky
de1b33f5a8 Revert "cl-loop: Calculate the array length just once"
Don't merge to master.  This is a safe-for-release fix for Bug#40727.
2020-05-05 21:07:58 -04:00
Noam Postavsky
caf155c463 Revert "cl-loop: Add missing guard condition"
Don't merge to master.  This is a safe-for-release fix for Bug#40727.
2020-05-05 21:07:58 -04:00
Noam Postavsky
79e133da03 Revert "Refix conditional step clauses in cl-loop"
Don't merge to master.  This is a safe-for-release fix for Bug#40727.
2020-05-05 21:07:58 -04:00
Alan Mackenzie
9f5999b08d Remove calls to non-existent functions from edebug.el.
Do not merge to master.

*lisp/emacs-lisp/edebug.el (edebug--display-1)
(edebug-toggle-disable-breakpoint): Remove calls to
edebug--overlay-breakpoints and edebug--overlay-breakpoints-removed which had
been overlooked in a recent changed to edebug.
2020-05-04 18:26:38 +00:00
Andrea Corallo
c6a610ecdc Merge remote-tracking branch 'savannah/master' into HEAD 2020-05-04 18:24:00 +01:00
Stefan Monnier
40149b8718 * lisp/emacs-lisp/eieio.el (oset, oset-default): Mark as obsolete 2020-05-03 18:05:16 -04:00
Simen Heggestøyl
7db0093bc2 Use lexical-binding in check-declare.el and add tests
* lisp/emacs-lisp/check-declare.el: Use lexical-binding.
(check-declare-warn): Silence byte compiler warning about unused
lexical argument.

* test/lisp/emacs-lisp/check-declare-tests.el: New file with tests
for check-declare.el.
2020-05-03 19:50:57 +02:00
Stefan Kangas
5f516dc944 Remove redundant :groups args missed in last commit
* lisp/emacs-lisp/cl-indent.el (lisp-lambda-list-keyword-alignment)
(lisp-lambda-list-keyword-parameter-indentation)
(lisp-lambda-list-keyword-parameter-alignment)
(lisp-indent-backquote-substitution-mode): Remove redundant :group args.
2020-05-03 16:21:51 +02:00
Stefan Kangas
d55b3b5966 Improve indentation of 'loop' forms
* lisp/emacs-lisp/cl-indent.el (lisp-loop-keyword-indentation)
(lisp-loop-forms-indentation, lisp-simple-loop-indentation): Use a
more standard indentation of 'loop' forms.  (Bug#2160)

(lisp-indent-maximum-backtracking, lisp-tag-indentation)
(lisp-tag-body-indentation, lisp-backquote-indentation)
(lisp-loop-keyword-indentation, lisp-loop-forms-indentation)
(lisp-simple-loop-indentation): Remove redundant :group args.
2020-05-03 16:19:09 +02:00
Andrea Corallo
1ec7499e59 * Add a warning for missing write privilege
* lisp/emacs-lisp/comp.el (native-compile-async): Check for write
	privilege and raise a warning in case.
2020-05-03 13:37:38 +01:00
Andrea Corallo
8d37220190 * Introduce `comp-output-directory'
* lisp/emacs-lisp/comp.el (comp-output-directory): New function.
	(comp-output-base-filename): Use `comp-output-directory'.
2020-05-03 14:35:50 +01:00
Alan Mackenzie
e90b7b9ef2 Revert "Mark breakpoints in edebug with highlights". This fixes bug #40992
Do not merge to master.

This reverts commit e8b3a15cb6.
2020-05-03 11:25:19 +00:00
Michael Heerdegen
c59e878439 Inhibit modification hooks when saving eieio-persistent's
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-save): Bind
inhibit-modification-hooks -> t.
2020-05-01 21:16:30 +02:00
João Távora
43fded12d5 Add lisp-data-mode for editing non-code Lisp data
Fixes: bug#40573

The new mode can be used stand-alone or inherited from by modes
intended to edit programs. The existing emacs-lisp-mode and lisp-mode
are examples.

Thanks to Juri Linkov and Basil L. Contovounesios for researching some
data files in Emacs that can be automatically set to use the new mode.

* lisp/files.el (auto-mode-alist): Add entry for ".dir-locals" and
".dir-locals-2"

* lisp/emacs-lisp/lisp-mode.el: (lisp-data-mode): New major mode.
(lisp-mode): Inherit from lisp-data-mode.  Set special lisp-mode
stuff here.

* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Inherit from
lisp-data-mode.

* lisp/bookmark.el (bookmark-insert-file-format-version-stamp):
Use lisp-data-mode.

* lisp/saveplace.el (save-place-alist-to-file): Use
lisp-data-mode.

* lisp/net/eww.el (eww-write-bookmarks): Use lisp-data-mode.

* lisp/net/nsm.el (nsm-write-settings): Use lisp-data-mode.

* lisp/net/tramp-cache.el (tramp-dump-connection-properties): Use
lisp-data-mode.

* etc/NEWS: Mention lisp-data-mode.

* doc/lispref/modes.texi (Example Major Modes): Update example.
2020-05-01 12:11:10 +01:00
Michael Heerdegen
0c899eede3 Make `make-local-variable' declare the var locally dynamic
The only effect of this change is to get rid of some unnecessary
"assignment to free variable" warnings.

* lisp/emacs-lisp/bytecomp.el (byte-compile-make-local-variable): New
function.
2020-04-30 20:50:33 +02:00
Andrea Corallo
02e3ffad6d * Fix async compilation non respecting `comp-always-compile' nil value.
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Fix missing
	`comp-output-filename' usage.
2020-04-29 21:25:02 +01:00
Andrea Corallo
ab66e61b58 Merge remote-tracking branch 'savannah/master' into HEAD 2020-04-29 20:25:23 +01:00
Stefan Kangas
702d9d86f2 Add new tests to bindat-tests.el
* test/lisp/emacs-lisp/bindat-tests.el (bindat-test-format-vector)
(bindat-test-vector-to-dec, bindat-test-vector-to-hex)
(bindat-test-ip-to-string): New tests.
* lisp/emacs-lisp/bindat.el (bindat-vector-to-hex): Fix typo.
2020-04-29 09:52:34 +02:00
Stefan Kangas
c8115e88f1 Use lexical-binding in float-sup.el and add tests
* lisp/emacs-lisp/float-sup.el: Use lexical-binding.
* test/lisp/emacs-lisp/float-sup-tests.el: New file.
2020-04-29 09:25:02 +02:00
Andrea Corallo
f8b254d195 Rework spill LAP mechanism in preparation of compiling lambdas.
* lisp/emacs-lisp/comp.el (comp-spill-lap-function): No need anymore
	to have `byte-native-compiling' bound to free-func.
	(comp-spill-lap-function): Make use of `byte-to-native-lap-h' and
	clean-up.
	(comp-spill-lap-function): Likewise.

	* lisp/emacs-lisp/bytecomp.el (byte-to-native-function): Add lap slot.
	(byte-to-native-lap): Rename into byte-to-native-lap-h.
	(byte-compile-lapcode): Spill lap after having int assembled and
	store it into `byte-to-native-lap-h'.
	(byte-compile-not-top-level): Remove.
	(byte-compile-file-form-defmumble): Fill directly lap slot.
	(byte-compile-lambda): Remove `byte-compile-not-top-level'.
	(byte-compile-out-toplevel): Restore original code.
	(byte-compile-form): Remove `byte-compile-not-top-level'.
	(byte-compile-function-form): Likewise.
	(byte-compile-flush-pending): No need anymore to set
	`byte-compile-current-form' so restore orignal code.
2020-04-26 22:17:37 +01:00
Andrea Corallo
bb4cf13c47 Convert before final function doc hash into a vector.
* lisp/emacs-lisp/comp.el (comp-finalize-relocs): Convert doc hash
	table into vector befor final.
	(comp-emit-for-top-level): Rename `comp-ctxt-doc-index-h' ->
	`comp-ctxt-function-docs'.
	(comp-ctxt): Likewise.

	* src/comp.c (native_function_doc): Update logic for documentation
	being a vector.
	(emit_ctxt_code): Update for 'comp-ctxt-doc-index-h' slot rename.

	* src/comp.h (struct Lisp_Native_Comp_Unit): Rename 'data_fdoc_h'
	into data_fdoc_v.

	* src/pdumper.c (dump_native_comp_unit): Likewise.
2020-04-26 10:10:17 +01:00
Andrea Corallo
2878624980 Merge remote-tracking branch 'savannah/master' into HEAD 2020-04-25 22:22:16 +01:00
Andrea Corallo
d73e64076e Store function documentations in a hash table.
* src/pdumper.c (dump_subr): Update Lisp_Subr hash.
	(dump_subr): Update for new compilation unit layout.
	(dump_vectorlike): Update pvec_type hash.

	* src/lisp.h (struct Lisp_Subr): Remove 'native_doc' index.
	(DEFUN): Update macro for new compilation unit
	layout.

	* src/doc.c (Fdocumentation): Update for new compilation unit
	layout.

	* src/comp.h (struct Lisp_Native_Comp_Unit):
	Add 'data_fdoc_h' field.

	* src/comp.c (TEXT_FDOC_SYM): New macro.
	(emit_ctxt_code): Emit function documentations.
	(load_comp_unit): Load function documentation.
	(Fcomp__register_subr): Rename parameter.
	(Fcomp__register_subr): Update for new compilation unit
	layout.

	* src/alloc.c (mark_object): Update for new compilation unit
	layout.
	(syms_of_alloc): Likewise.

	* lisp/emacs-lisp/comp.el (comp-ctxt): Add doc-index-h slot.
	(comp-emit-for-top-level): Emit doc index as 'comp--register-subr'
	doc parameter.
2020-04-25 19:55:39 +01:00
Andrea Corallo
9c4c0af89d * lisp/emacs-lisp/comp.el (comp-run-async-workers): Use `clrhash'. 2020-04-25 19:55:40 +01:00
Glenn Morris
519567878f Merge from origin/emacs-27
45a64c97c7 (origin/emacs-27) Clarify semantics of trace-function CONT...
821760fdc4 Don't let a code literal get modified in mml parsing (Bug#...
74a92be16d * lisp/simple.el (kill-ring-save): Doc fix.  (Bug#40797)
3d0e859692 Minor doc clarification regarding fringe bitmaps
4d86c7f822 Fix documentation of fringe bitmaps
a76af88dd8 Tweak mutability doc a bit more
f7e488d206 Calc: fix autoload errors (bug#40800)
369761b36d ; * src/xdisp.c: Improve the introductory commentary.
a92ca1f177 Improve indexing of ELisp manual
5a25d17760 * lisp/image-mode.el (image-transform-resize): Remove FIXM...
37ebec3a95 Improve the default value of 'doc-view-ghostscript-program'.
ba6104d1e8 Change doc-view-mode-map prefix key 's' to 'c'.
400ff5cd19 Improve wording about constants
d2836fe71b Improve the default value of 'doc-view-ghostscript-program'.
fc55f65305 Minor improvements in documentation of the last change
a64da75961 Add image-auto-resize defcustoms to image-mode.el
692ad40539 Improve the documentation of tab-bar and tab-line

# Conflicts:
#	etc/NEWS
2020-04-25 07:50:21 -07:00
Andrea Corallo
c984a53b4e Merge remote-tracking branch 'savannah/master' into HEAD 2020-04-25 15:13:18 +01:00
Andrea Corallo
bab36619fb Fix deferred-compilation for double compilation (bug#40838).
* lisp/emacs-lisp/comp.el (native-compile-async): Prevent double
	compilation (bug#40838).
2020-04-25 15:12:37 +01:00
Andrea Corallo
e208de9d25 Store ongoing compilations processes as hash table.
* lisp/emacs-lisp/comp.el (comp-async-processes): Rename as
	`comp-async-compilations'.
	(comp-async-runnings): Make use as `comp-async-compilations'.
	(comp-run-async-workers): Likewise.
2020-04-25 15:12:37 +01:00
Noam Postavsky
45a64c97c7 Clarify semantics of trace-function CONTEXT argument
* lisp/emacs-lisp/trace.el (trace-function-foreground): Explain that
CONTEXT should be a function, when called from Lisp.
2020-04-25 09:55:37 -04:00
Alan Mackenzie
85fb942733 Fix bug #40766, an error in edebug spec handling
Also remove some debris.

* lisp/emacs-lisp/edebug.el (edebug-spec): Move the entry for edebug-spec-list
to before that for vector in the &or form.  This assures that in a dotted list
of vectors, that list gets handled correctly by edebug-spec-list rather than
wrongly by (vector ...).
(def-edebug-spec &key): Remove, since it is ill formed and superfluous.
2020-04-24 15:51:43 +00:00