Vibhav Pant
cb410433e0
Merge branch 'master' into feature/byte-switch
2017-02-13 17:07:36 +05:30
Vibhav Pant
e742450427
; Add more documentation for byte-switch related code.
2017-02-13 16:44:06 +05:30
Mark Oteiza
91478f4623
Nix some useless uses of looking-at, looking-back
...
* lisp/allout.el (allout-kill-topic):
(allout-next-topic-pending-encryption):
* lisp/bookmark.el (bookmark-kill-line):
* lisp/cus-edit.el (custom-save-variables, custom-save-faces):
* lisp/cus-theme.el (custom-theme-write-variables):
(custom-theme-write-faces):
* lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer):
* lisp/emacs-lisp/checkdoc.el (checkdoc-interactive-loop):
(checkdoc-interactive-ispell-loop):
(checkdoc-message-interactive-ispell-loop, checkdoc-this-string-valid):
(checkdoc-this-string-valid-engine):
* lisp/emacs-lisp/elint.el (elint-get-top-forms):
* lisp/emulation/viper-cmd.el (viper-backward-indent):
* lisp/image-dired.el (image-dired-delete-char):
* lisp/simple.el (kill-visual-line): Replace instances of looking-at,
looking-back with char comparisons using following-char, preceding-char.
2017-02-12 10:59:33 -05:00
Vibhav Pant
219339e2eb
; lisp/emacs-lisp/bytecomp.el: Fix indentation.
2017-02-12 13:24:55 +05:30
Vibhav Pant
c1a9b5db0e
Merge branch 'master' into feature/byte-switch
2017-02-11 19:54:37 +05:30
Gemini Lasswell
c48f8fa51b
Fix instrumenting code with propertized strings in Edebug
...
* lisp/emacs-lisp/edebug.el (edebug-read-function): Allow
'read' to decide what is and isn't a syntax error. (Bug#25068)
2017-02-10 11:35:20 +02:00
Vibhav Pant
dde800c8c9
Improve byte-switch execution.
...
* lisp/emacs-lisp/byte-opt.el,
lisp/emacs-lisp/bytecomp.el (byte-decompile-bytecode-1),
(byte-compile-lapcode): Calculate the actual jump address while
compiling, store it in the jump table.
* src/bytecode.c: Jump to the looked up value directly, do a linear
search when the number of elements is <= 5.
2017-02-09 12:18:54 +05:30
Vibhav Pant
c4316a2661
; bytecomp.el (byte-compile-cond-jump-table): Add TODO note
2017-02-06 19:33:01 +05:30
Vibhav Pant
a12b416bca
; byte(-opt, comp).el: Add more documentation for byte-switch code.
2017-02-06 13:26:25 +05:30
Vibhav Pant
ad70ca1dad
Merge remote-tracking branch 'origin/master' into feature/byte-switch
2017-02-05 23:08:53 +05:30
Vibhav Pant
2db473bda8
bytecomp.el: Use macroexp-const-p instead of bc-cond-valid-obj2-p.
...
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-vars): Use
(macroexp-cons-p) instead of (byte-compile-cond-valid-obj2-p) to
make sure that obj1/obj2 can be compared with `eq'.
2017-02-05 22:32:21 +05:30
Vibhav Pant
74a3423b0b
* byte-opt.el (byte-decompile-bytecode-1): Use eq instead of =.
2017-02-05 22:10:22 +05:30
Vibhav Pant
382f6603ad
; Fix typo.
...
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table-info): Fix
typo in docstring.
2017-02-05 21:51:05 +05:30
Vibhav Pant
490fc5a502
; bytecomp.el (-inline-lapcode): Fix incorrect parenthesis, refactor
2017-02-05 21:48:27 +05:30
Vibhav Pant
cadb044fc2
bytecomp.el: Inline lapcode containing `byte-switch' correctly.
...
* lisp/emacs-lisp/bytecomp.el (byte-compile-inline-lapcode):
Restore value of byte-compile-depth after emitting a jump to a tag
in a jump table, or default/done tags.
Set the depth of final tags for byte-switch to nil after emitting
any jumps to them.
2017-02-05 19:23:53 +05:30
Vibhav Pant
fea1ad36a0
; * byte-opt.el (byte-decompile-bytecode-1): Add more documentation.
2017-02-05 18:55:45 +05:30
Vibhav Pant
84eef50155
byte-opt.el: Replace jump tables while decompiling correctly.
...
* lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1):
Don't make a copy of the constant vector, as it isn't used with
the decompiled lapcode.
Make sure that the correct lapcode pair/list is being modified while
replacing the jump table.
2017-02-05 18:49:24 +05:30
Vibhav Pant
44c95c58b2
bytecomp.el: Don't store non-keyword symbols in jump-tables.
...
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-valid-obj2-p) return
nil when OBJ is a non-keyword symbol (i.e a variable), as the jump
table can only be used when comparing variables with constant values.
2017-02-05 15:37:43 +05:30
Gemini Lasswell
ef3d8d6f72
New macro 'ert-with-message-capture'
...
* lisp/emacs-lisp/ert-x.el (ert-with-message-capture): New macro.
(Bug#25158)
* test/lisp/autorevert-tests.el (auto-revert--wait-for-revert)
(auto-revert-test00-auto-revert-mode)
(auto-revert-test01-auto-revert-several-files)
(auto-revert-test02-auto-revert-deleted-file)
(auto-revert-test03-auto-revert-tail-mode)
(auto-revert-test04-auto-revert-mode-dired):
* test/lisp/filenotify-tests.el (file-notify-test03-autorevert): Use
ert-with-message-capture.
2017-02-04 13:36:43 +02:00
Gemini Lasswell
8ba27b7ce2
Avoid invalid read syntax errors due to 'ert-with-test-buffer'
...
* lisp/emacs-lisp/ert-x.el (ert-with-test-buffer): Fix the
'declare' form. (Bug#24722)
2017-02-04 13:18:29 +02:00
Eli Zaretskii
a46a61904d
Fix a syntax error when evaluating pcase.el under Edebug
...
* lisp/emacs-lisp/pcase.el (pcase-MACRO): Replace def-edebug-spec
with an explicit 'put' form. Suggested by Gemini Lasswell
<gazally@runbox.com>. (Bug#24717)
2017-02-04 13:12:14 +02:00
Gemini Lasswell
78f841d6db
Change edebug-max-depth from defconst to defcustom
...
* lisp/emacs-lisp/edebug.el (edebug-max-depth): Add defcustom.
(Bug#24713)
* etc/NEWS: Mention edebug-max-depth.
* doc/lispref/edebug.texi (Checking Whether to Stop): Mention
edebug-max-depth and index it. Add cross-references for
max-lisp-eval-depth and max-specpdl-size.
Co-authored-by: Eli Zaretskii <eliz@gnu.org>
2017-02-04 12:56:19 +02:00
Mark Oteiza
be10c00d3d
Rename to if-let* and when-let*
...
Make the existing if-let and when-let aliases.
* lisp/emacs-lisp/subr-x.el (if-let*, when-let*): New macros. Rewrite
docstrings, incorporating that from let* and the existing if-let.
(if-let, when-let, and-let*): Alias them.
2017-02-03 21:42:42 -05:00
Vibhav Pant
de456d1e4a
Revert "Use maphash instead of cl-loop."
...
This reverts commit bfa8852013
.
2017-02-03 23:23:28 +05:30
Vibhav Pant
bfa8852013
Use maphash instead of cl-loop.
...
* lisp/emacs-lisp/bytecomp.el: (byte-compile-lapcode) Use maphash
instead of cl-loop
2017-02-01 18:15:59 +05:30
Mark Oteiza
12da2a5bea
; Bump let-alist
...
* lisp/emacs-lisp/let-alist.el: Bump micro version (bug#24641).
2017-01-31 19:47:53 -05:00
Ted Zlatanov
5af51bd445
read-multiple-choice: explain dialog popups more
...
* lisp/emacs-lisp/subr-x.el (read-multiple-choice): Explain
when a graphical popup is used and how it can be avoided.
2017-01-31 14:18:51 -05:00
Dima Kogan
fbf74c158e
Revert two accidental commits
...
This reverts commit f3c77d11af
.
This reverts commit 3c941b9000
.
2017-01-31 07:49:37 -08:00
Dima Kogan
f3c77d11af
stash
2017-01-30 21:04:11 -08:00
Vibhav Pant
f441451658
* lisp/emacs-lisp/bytecomp.el: Create jump tables with :purecopy t
2017-01-30 19:22:09 +05:30
Vibhav Pant
bf7f7c0d82
Merge remote-tracking branch 'origin/master' into feature/byte-switch
2017-01-30 18:35:43 +05:30
Noam Postavsky
9bf94639b8
Don't warn about obsolete defgenerics when defining them
...
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): The declaration code
should run after the definition code (Bug#25556).
2017-01-29 11:16:06 -05:00
Vibhav Pant
25d38a06ec
* lisp/emacs-lisp/bytecomp.el:(bc-cond-jump-table-info)add docstring
2017-01-26 23:03:02 +05:30
Vibhav Pant
a7e4870f16
* lisp/emacs-lisp/bytecomp.el: Use correct function to push nil
...
* lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table) Use
byte-compile-constant instead of byte-compile-form to push nil.
2017-01-26 14:31:16 +05:30
Vibhav Pant
6a82d19db1
* lisp/emacs-lisp/disass.el: Fix spacing while showing jump tables
2017-01-26 14:28:23 +05:30
Vibhav Pant
4e6140b283
* lisp/emacs-lisp/disass.el: Display jump tables for switch.
2017-01-26 01:02:16 +05:30
Vibhav Pant
19cb3985a3
* lisp/emacs-lisp/bytecomp.el:Use correct size for switch jump-table
2017-01-26 01:00:41 +05:30
Vibhav Pant
c52a9b6ddd
* lisp/emacs-lisp/bytecomp.el: Simplify b-c-cond-valid-obj2-p
2017-01-26 00:58:36 +05:30
Vibhav Pant
8189b97e5c
* lisp/emacs-lisp/bytecomp.el: Fix byte-switch codegen with symbols.
2017-01-26 00:57:10 +05:30
Vibhav Pant
0d3c57dcf3
* lisp/emacs-lisp/byte-opt.el: Add support for decompiling switch
...
* lisp/emacs-lisp/byte-opt.el: (byte-decompile-bytecode-1) When the
constant encountered precedes a byte-switch op, replace all the
addresses in the jump table with tags.
2017-01-26 00:54:59 +05:30
Mark Oteiza
43eba49553
Move cXXXr and cXXXXr to subr.el
...
* etc/NEWS: Mention new core Elisp.
* doc/lispref/lists.texi (List Elements): Document and index the new
functions.
* doc/misc/cl.texi (List Functions): Change "defines" to "aliases".
* lisp/subr.el (caaar, caadr, cadar, caddr, cdaar, cdadr, cddar)
(cdddr, caaaar caaadr, caadar, caaddr, cadaar, cadadr, caddar):
(cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar):
(cddddr): New functions.
* lisp/emacs-lisp/cl-lib.el (cl-caaar, cl-caadr, cl-cadar, cl-caddr):
(cl-cdaar, cl-cdadr, cl-cddar cl-cdddr, cl-caaaar cl-caaadr):
(cl-caadar, cl-caaddr, cl-cadaar, cl-cadadr, cl-caddar, cl-cadddr):
(cl-cdaaar, cl-cdaadr, cl-cdadar, cl-cdaddr, cl-cddaar, cl-cddadr):
(cl-cdddar, cl-cddddr): Alias to new subr functions.
* lisp/emacs-lisp/cl.el (cl-unload-function): Remove cXXXr and cXXXXr
elements.
2017-01-25 14:21:10 -05:00
Alan Mackenzie
0c31ff43b6
Give , and .@ doc strings. Fixes bug #24561 .
...
Also make *Help* links to ``' possible. Also make usable as such doc strings
on the function-documentation property of a symbol.
* lisp/emacs-lisp/backquote.el (top-level): Give , and '@ doc strings on the
function-documentation property. Also give these symbols a reader-construct
property.
* lisp/help-fns.el (describe-function): Allow the function-documentation
property to work. Use princ rather than prin1 to print the function's name
when it has a reader-construct property.
(help-fns-signature): Don't insert `high-usage' for a reader-construct.
(describe-function-1): Adapt to process documentation on the
function-documentation property. Print "a reader construct" when appropriate.
* lisp/help-mode.el (help-xref-symbol-regexp): Amend this regexp also to match
``'.
2017-01-23 19:00:49 +00:00
Tino Calancha
ade0652cc2
Prevent to use tabulated-list--near-rows unbound
...
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-entry):
Make sure 'tabulated-list--near-rows' is bound before use it (Bug#25506).
2017-01-22 14:23:45 +09:00
Vibhav Pant
23a130ee0d
* lisp/emacs-lisp/bytecomp.el: Remove unused debugging statements.
2017-01-21 11:37:20 +05:30
Noam Postavsky
82a5e4dc88
Fix free var FOO-mode-{syntax,abbrev}-table warnings
...
* lisp/emacs-lisp/derived.el (define-derived-mode): Unconditionally
defvar the syntax and abbrev tables so that the compiler will know that
they are dynamically bound variables (Bug#25446).
2017-01-19 20:15:18 -05:00
Vibhav Pant
fbe6b90b0c
* lisp/emacs-lisp/bytecomp.el: Fix errors with matching quoted forms
...
* lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table-info)
eval obj2 to avoid quoted forms being stored as is.
2017-01-19 23:13:53 +05:30
Vibhav Pant
5f3379b338
lisp/emacs-lisp/bytecomp.el: Use byte-switch only for quoted symbols
2017-01-19 23:13:13 +05:30
Vibhav Pant
46193d5209
* lisp/emacs-lisp/bytecomp.el: Add default-case for last cond clause.
...
* lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table) Add
default-case for last cond clause.
2017-01-19 23:12:09 +05:30
Vibhav Pant
1fcbd352f8
Use byte-switch for all symbols.
...
* lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-valid-obj2-p) Return
t for all symbols (instead for just keywords)
2017-01-19 18:02:40 +05:30
Vibhav Pant
309b46420e
* lisp/emacs-lisp/byte-opt.el: Optimize how tags are checked for use.
...
* byte-opt.el: (byte-optimize-lapcode): Return nil instantly on
finding the tag in a jump table.
2017-01-15 21:38:31 +05:30