Stefan Monnier
bac7de05e2
* lisp/emacs-lisp/autoload.el (make-autoload): Support cl-defgeneric
...
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Tweak for autoloading.
2017-02-21 13:51:12 -05:00
Stefan Monnier
e785c74d3a
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Fix duplication
...
which resulted in incomplete list of parents in one copy of the
cl-structure-class class.
2017-02-21 13:48:30 -05:00
Noam Postavsky
2f53c0c468
Simplify cl-get using `plist-member'
...
* lisp/emacs-lisp/cl-extra.el (cl-get, cl-getf, cl--set-getf): Use
`plist-member' instead of explicit loop.
* test/lisp/emacs-lisp/cl-extra-tests.el: New tests.
2017-02-20 16:53:14 -05:00
Mark Oteiza
edadd31bf4
Turn on lexical-binding in elint.el
...
* lisp/emacs-lisp/elint.el: Quote entry point commands in commentary.
(elint-running, elint-current-pos): Move these dynamic vars to toward
the top of the file.
(elint-check-quote-form): Ignore unused argument.
(elint-check-conditional-form): Remove unused binding.
2017-02-17 18:52:12 -05:00
Gemini Lasswell
5401820672
* lisp/emacs-lisp/subr-x.el (if-let*): Fix Edebug spec (Bug#24748)
2017-02-17 18:47:50 -05:00
Paul Eggert
cb70725584
; Spelling, punctuation and minor wording fixes
2017-02-16 09:18:21 -08:00
Vibhav Pant
501ad54626
bytecomp.el: Avoid unnecessary calculation for jump table addresses.
...
* lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Don't do
redundant operations while calculating the correct jump addresses
from TAGs in jump tables.
2017-02-16 20:30:04 +05:30
Mark Oteiza
1b4442bee9
Don't expand body inside a let-binding when there are no bindings
...
* lisp/emacs-lisp/pcase.el (pcase-codegen): Only let-bind if VARS
is non-nil.
2017-02-15 20:40:46 -05:00
Vibhav Pant
71b90192da
byte-opt: Replace merged tags in jump tables too. (bug#25716)
...
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): While merging
adjacent tags, make sure that the old tag is replaced in all jump
tables, if any. This fixes the bytecode VM jumping to the wrong
address in compiled cond forms where the body of a clause was a loop
of any sort.
2017-02-14 21:53:26 +05:30
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
Philipp Stephani
4d81eb450e
Document variable `byte-compile-debug'
...
* lisp/emacs-lisp/bytecomp.el (byte-compile-debug): Document variable.
2017-01-31 19:04:36 +01: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
Noam Postavsky
72ef710f6e
Fix call to debugger on assertion failure
...
* lisp/emacs-lisp/cl-preloaded.el (cl--assertion-failed): The first
argument must be `error', and the second is a list of arguments for
`signal'.
2017-01-30 21:45:02 -05: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