summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* * package-vc.el (package-vc-unpack): Fix 'vc-ignore' callPhilip Kaludercic2022-08-301-13/+13
| | | | | | When generating the manual node (/dir), we need to ensure that the default-directory is set to the package root, otherwise the file is ignored in some other repository, that probably doesn't exist.
* * package-vc.el (package-vc-unpack): Ignore dir filesPhilip Kaludercic2022-08-201-1/+2
|
* * package-vc.el (package-vc-unpack): Mark packages as selectedPhilip Kaludercic2022-08-191-1/+5
|
* Merge remote-tracking branch 'origin/master' into feature/package+vcPhilip Kaludercic2022-08-1813-164/+332
|\
| * * lisp/emacs-lisp/bytecomp.el (byte-compile-log-1): Create buffer if necessaryAndrea Corallo2022-08-171-1/+1
| |
| * Improved `null` (alias `not`) optimisationMattias Engdegård2022-08-161-0/+11
| | | | | | | | | | | | Take static boolean information of the argument into account. * lisp/emacs-lisp/byte-opt.el (byte-optimize-not): New.
| * Improved `and` and `or` optimisationMattias Engdegård2022-08-161-27/+84
| | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-and, byte-optimize-or): Rewrite. Avoid branching on arguments statically known to be true or false, and hoist code out to an unconditional prefix when possible.
| * Improved `if` and `while` optimisationMattias Engdegård2022-08-161-38/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | Recognise some more special cases: (if X nil t) -> (not X) (if X t) -> (not (not X)) (if X t nil) -> (not (not X)) (if VAR VAR X...) -> (or VAR (progn X...)) * lisp/emacs-lisp/byte-opt.el (byte-opt-negate): New. (byte-optimize-if): Add transformations above and refactor. (byte-optimize-while): Better static nil-detection.
| * Improved static detection of nil and non-nil expressionsMattias Engdegård2022-08-161-21/+69
| | | | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): New. (byte-compile-trueconstp, byte-compile-nilconstp): Determine a static nil or non-nil result in more cases. These functions have grown and are no longer defsubst.
| * Fix variable types in warnings-suppressYury Kholodkov2022-08-151-2/+2
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/warnings.el (warnings-suppress): The type of these user options is a list of lists of symbols, not a list of symbols (bug#57183). Copyright-paperwork-exempt: yes
| * Fix up the exclusion logic in loaddefs-generateLars Ingebrigtsen2022-08-151-10/+9
| | | | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow excluding files completely (bug#57144).
| * Tweak autoloads of defsubsts containing spaces/control charsLars Ingebrigtsen2022-08-151-1/+3
| | | | | | | | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form): Escape control chars in bodies so that we don't end up with trailing spaces if we're autoloading a defsubst containing "\\`[ \t\n\r]*\\'".
| * Further lisp-current-defun-name tweaksLars Ingebrigtsen2022-08-151-2/+7
| | | | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further tweaks to make (autoload 'foo) work again. Perhaps this should all be reverted to the original version and then given a new rething.
| * * lisp/emacs-lisp/ring.el (ring): Define as a typeStefan Monnier2022-08-141-0/+4
| |
| * (compiled-function-p): New function (bug#56648)Stefan Monnier2022-08-146-26/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/subr.el (compiled-function-p): New function. * test/lisp/international/ucs-normalize-tests.el (ucs-normalize-part1): * lisp/gnus/gnus.el (gnus): * lisp/mh-e/mh-e.el (mh-version): * lisp/emacs-lisp/macroexp.el (emacs-startup-hook): * lisp/emacs-lisp/cl-macs.el (compiled-function): * lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition) (byte-compile, display-call-tree): * lisp/emacs-lisp/byte-opt.el (<toplevel-end>): * lisp/emacs-lisp/advice.el (ad-compiled-p): * lisp/cedet/semantic/bovine.el (semantic-bovinate-stream): * lisp/loadup.el (macroexpand-all): * admin/unidata/unidata-gen.el (unidata--ensure-compiled): Use it. * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): Add entries for it. (pcase--split-pred): Use it. * lisp/help-fns.el (help-fns-function-description-header): Use `functionp`. (help-fns--var-safe-local): Use `compiled-function-p`.
| * Strength-reduce apply with (list ...) as tail argumentMattias Engdegård2022-08-141-18/+19
| | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-apply): Transform (apply F ... (list X ...)) -> (funcall F ... X ...)
| * Simplify code using take, ntake and butlastMattias Engdegård2022-08-141-2/+1
| | | | | | | | | | | | | | * lisp/calc/calc-vec.el (calcFunc-rhead): * lisp/calc/calc.el (calc-top-list, calc-pop): * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit): Simplify.
| * ; advice--interactive-form: Fix a typo introduced in recent changeŠtěpán Němec2022-08-141-1/+1
| | | | | | | | * lisp/emacs-lisp/nadvice.el (advice--interactive-form): Fix a typo.
| * nadvice.el: Avoid exponential blow up in interactive-form recursionStefan Monnier2022-08-131-13/+13
| | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/nadvice.el (advice--interactive-form): Sink the call to `commandp` into the autoloaded function case since it's redundant in the other branch. (advice--make-interactive-form): Take just the interactive forms rather than the actual functions as arguments. (oclosure-interactive-form): Use `advice--interactive-form` rather than `commandp` since we'd call `advice--interactive-form` afterwards anyway.
| * Allow EXCLUDED-FILES in loaddefs-generate to be relativeLars Ingebrigtsen2022-08-131-0/+5
| | | | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow the excluded files to be relative (bug#57144).
| * Hide local variable section in emacs-news-modesStefan Kangas2022-08-121-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/textmodes/emacs-authors-mode.el (emacs-authors-mode--hide-local-variables): Move from here... * lisp/emacs-lisp/subr-x.el (emacs-etc--hide-local-variables): ...to here. * lisp/textmodes/emacs-authors-mode.el (subr-x): Require. (emacs-authors-mode): Use above renamed function. * lisp/textmodes/emacs-news-mode.el (subr-x): Require. (emacs-news--mode-common): Call 'emacs-etc--hide-local-variables' to hide local variables section.
| * Don't update loaddefs.el timestamps uselessly in loaddefs-generateLars Ingebrigtsen2022-08-121-4/+8
| | | | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't re-write the loaddefs.el file when there's no reason to.
* | * package-vc.el (package-vc-fetch): Autoload itPhilip Kaludercic2022-08-121-0/+1
| |
* | Merge remote-tracking branch 'origin/master' into feature/package+vcPhilip Kaludercic2022-08-1222-1111/+271
|\|
| * Further seq-uniq speed-ups for listsLars Ingebrigtsen2022-08-121-5/+15
| | | | | | | | | | * lisp/emacs-lisp/seq.el (seq-uniq): Speed up more for long lists (bug#57079).
| * Use help-key-binding face in package list helpStefan Kangas2022-08-121-1/+1
| | | | | | | | | | * lisp/emacs-lisp/package.el (package--prettify-quick-help-key): Use help-key-binding face.
| * ; Fix documentation of 'loaddefs-generate' (bug#57144)Eli Zaretskii2022-08-121-6/+12
| | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Doc fix.
| * Make ad-version variable obsoleteStefan Kangas2022-08-111-2/+3
| | | | | | | | | | * lisp/emacs-lisp/advice.el (ad-version): Make obsolete in favor of emacs-version. It has not been bumped since 1994.
| * Don't show status message in Helper-describe-bindingsStefan Kangas2022-08-111-1/+0
| | | | | | | | | | * lisp/emacs-lisp/helper.el (Helper-describe-bindings): Don't show status message.
| * ; * lisp/emacs-lisp/subr-x.el (string-pad): Optimise.Mattias Engdegård2022-08-101-7/+3
| |
| * Extend LAP optimisations to more operationsMattias Engdegård2022-08-101-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend the set of eligible opcodes for certain peephole transformations, which then provide further optimisation opportunities. * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Optimise empty save-current-buffer in the same way as we already do for save-excursion and save-restriction. This is safe because (save-current-buffer) is a no-op. (byte-compile-side-effect-and-error-free-ops): Add list3, list4 and listN. These were all apparent oversights as list1 and list2 were already included. (byte-after-unbind-ops): Add stack-ref, stack-set, discard, list3, list4 and listN. Stack manipulation is safe because unbind cannot read or modify stack entries.
| * Delete dead code in checkdoc.elStefan Kangas2022-08-101-20/+1
| | | | | | | | | | * lisp/emacs-lisp/checkdoc.el: Delete code commented out since 1997.
| * Autoload string-blank-pStefan Kangas2022-08-091-0/+1
| | | | | | | | | | | | * lisp/eshell/em-hist.el (subr-x): * lisp/net/eudc.el (subr-x): Don't require. * lisp/emacs-lisp/subr-x.el (string-blank-p): Autoload.
| * Further lisp-current-defun-name tweaksLars Ingebrigtsen2022-08-091-1/+1
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Tweak so that cl-defmethod and friends work again.
| * Add a faster seq-uniq for listsLars Ingebrigtsen2022-08-091-0/+17
| | | | | | | | | | * lisp/emacs-lisp/seq.el (seq-uniq): Add a faster method for lists (bug#57079).
| * Make the loaddefs.el file slightly shorterLars Ingebrigtsen2022-08-091-18/+28
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--shorten-autoload): New function. (loaddefs-generate--make-autoload): Use it to drop optional nil values from the `autoloads' forms. This makes the loaddefs.el file about 12K shorter.
| * Another lisp-current-defun-name tweakMichael Heerdegen2022-08-091-1/+1
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Avoid error when edebug spec is the symbol t.
| * Further lisp-current-defun-name tweaksLars Ingebrigtsen2022-08-081-2/+6
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further tweaks to finding the symbol being defined (defalias).
| * Allow specifying how args are to be stored in `command-history'Lars Ingebrigtsen2022-08-081-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/functions.texi (Declare Form): Document `interactive-args' * lisp/replace.el (replace-string): Store the correct interactive arguments (bug#45607). * lisp/emacs-lisp/byte-run.el (byte-run--set-interactive-args): New function. (defun-declarations-alist): Use it. * src/callint.c (fix_command): Remove the old hack (which now longer works since interactive specs are byte-compiled) and instead rely on `interactive-args'.
| * Make which-func-mode output less junkLars Ingebrigtsen2022-08-081-18/+46
| | | | | | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Use edebug specs to find the name (if they exist), and default to returning the top-level symbol if there isn't a define-like form (bug#49592).
| * ; Fix typosStefan Kangas2022-08-081-1/+1
| |
| * ; * lisp/emacs-lisp/bytecomp.el: indentation fixMattias Engdegård2022-08-071-2/+2
| |
| * Cease emitting negative file offsets for user variablesMattias Engdegård2022-08-071-12/+3
| | | | | | | | | | | | | | | | | | | | 'User variables' were made obsolete in Emacs 24 along with user-variable-p; the sign of the position in (#$ . POS) hasn't mattered since. * lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Don't emit negative position when doc string starts with `*`. * src/lread.c (get_lazy_string): Explain.
| * ; * lisp/emacs-lisp/lisp.el (end-of-defun-moves-to-eol): Doc fix.Eli Zaretskii2022-08-061-5/+3
| |
| * time-convert): Deprecate calls without an explicit FORM argStefan Monnier2022-08-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | * lisp/subr.el (time-convert): Deprecate calls without an explicit FORM arg. * doc/lispref/os.texi (Time Conversion): Adjust doc accordingly. * lisp/calendar/time-date.el (days-to-time): * lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time): * lisp/gnus/nnrss.el (nnrss-normalize-date): * lisp/epa-ks.el (epa-ks--parse-buffer): Silence corresponding warnings.
| * Allow newline after def*-form for definition-prefixStefan Kangas2022-08-051-1/+2
| | | | | | | | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions): Add another semantic function. (loaddefs-generate--compute-prefixes): Allow newline after the "(def*" form. (Bug#57000)
| * Add variable end-of-defun-moves-to-eolFilipp Gunbin2022-08-051-1/+10
| | | | | | | | | | * lisp/emacs-lisp/lisp.el (end-of-defun-moves-to-eol): New variable. (end-of-defun): Use it.
| * timer.el: Avoid repeated timersStefan Monnier2022-08-051-29/+39
| | | | | | | | | | | | | | | | | | https://mail.gnu.org/archive/html/emacs-devel/2022-07/msg01127.html points out that end-users can get bitten by this, accidentally calling `timer-activate` on an already activated timer. * lisp/emacs-lisp/timer.el (timer--activate): Signal an error if we try to re-add a timer that's already on the timer-list.
| * bytecomp.el: Update comments referring to `make-docfile`Stefan Monnier2022-08-051-5/+5
| |
| * bytecomp.el: Further simplifications enabled by commit 59732a83c8875cStefan Monnier2022-08-051-3/+0
| | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Don't insert a \n before the #@ docstrings since make-docfile doesn't scan .elc files any more.