summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* Revert the changes to lisp-current-defun-nameLars Ingebrigtsen2022-08-231-55/+18
| | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Revert back to the old version before bug#49592. The new approach just doesn't work well enough -- we don't really have the data to know that, say, `make-obsolete-variable' is about the second symbol and not the first.
* Make buffer-local-value obsolete as a generalized variableLars Ingebrigtsen2022-08-231-12/+13
| | | | | | | | | | * lisp/electric.el (electric-indent-local-mode) (electric-layout-local-mode, electric-quote-local-mode): * lisp/elec-pair.el (electric-pair-local-mode): Adjust usage. * lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move since we're using it earlier in the file. (buffer-local-value): Make obsolete as a generalized variable since the semantics are unclear (bug#26624).
* Make point-at-eol and point-at-bol obsoleteStefan Kangas2022-08-233-4/+5
| | | | | | | * lisp/subr.el (point-at-eol, point-at-bol): Make XEmacs compat aliases obsolete in favor of `pos-bol'/'line-beginning-position' or 'pos-eol'/'line-end-position'. Update callers. Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg00853.html
* Fix some no-X build warningsLars Ingebrigtsen2022-08-221-1/+3
| | | | | | | | | | | | | | * lisp/cus-edit.el (fringe-bitmap-p): Autoload. * lisp/image.el (clear-image-cache): Declare. * lisp/mouse.el (dnd-begin-file-dram): Autoload. * lisp/thumbs.el (image-supported-file-p): Declare (bug#57342). * lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): * lisp/emacs-lisp/icons.el (icons--create): Avoid warnings on no-X builds.
* Prefer pos-bol and pos-eol in tabulated-list.elStefan Kangas2022-08-221-8/+8
| | | | | | | * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print) (tabulated-list-print-entry, tabulated-list-delete-entry) (tabulated-list-set-col, tabulated-list-previous-column): Prefer pos-bol and pos-eol.
* ; * lisp/emacs-lisp/shortdoc.el (buffer): Improve sorting.Stefan Kangas2022-08-221-2/+2
|
* Remove probably debugging code in reb-fontify-string-reLars Ingebrigtsen2022-08-221-2/+1
| | | | | | * lisp/emacs-lisp/re-builder.el (reb-fontify-string-re): Remove code that looks like left-over debugging code. This fixes a compilation warning.
* * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some type specAndrea Corallo2022-08-221-6/+16
|
* Revert "Make the generalized buffer-local-variable obsolete"Lars Ingebrigtsen2022-08-222-14/+12
| | | | | | This reverts commit bfe222288e02472bff0e1ab5ba7ef26af6a2769a. This led to the local modes not working.
* Make the generalized buffer-local-variable obsoleteLars Ingebrigtsen2022-08-212-12/+14
| | | | | | | | | | | | | | | * lisp/paren.el (show-paren-local-mode): * lisp/electric.el (electric-indent-local-mode) (electric-layout-local-mode, electric-quote-local-mode): * lisp/elec-pair.el (electric-pair-local-mode): Don't use it. * lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Autoload. * lisp/emacs-lisp/gv.el (buffer-local-variable): Make obsolete (bug#26624). * lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move to allow usage.
* Make many seldom-used generalized variables obsoleteLars Ingebrigtsen2022-08-211-0/+83
| | | | | | | | | | | | | | | | | | The vast majority of these are unused in-tree, and many of them perform actions that aren't obvious when reading the code. * lisp/server.el (server-ensure-safe-dir): Prefer with-file-modes over letf-ing default-file-modes. (server-start): Ditto. * lisp/winner.el (winner-set-conf): Don't use generalized variable window-height. * lisp/emacs-lisp/gv.el: Make most little-used generalized variables obsolete. * lisp/org/oc-basic.el (org-cite-basic--set-keymap): Adjust buffer-substring generalized variable usage.
* Make it possible to mark generalized variables as obsoleteLars Ingebrigtsen2022-08-213-13/+33
| | | | | | | | | | | | | | | * doc/lispref/variables.texi (Adding Generalized Variables): Document it. * lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Alter the interface so that it can also be used by generalized variable warnings. (byte-compile-function-warn): Adjust caller. (byte-compile-check-variable): Adjust caller. * lisp/emacs-lisp/gv.el (gv-get): Warn about obsolete generalized variables (bug#49730). (make-obsolete-generalized-variable): New function.
* Mention delete-line in shortdocLars Ingebrigtsen2022-08-211-0/+2
| | | | * lisp/emacs-lisp/shortdoc.el (buffer): Mention delete-line.
* Update function properties and optimisationsMattias Engdegård2022-08-211-7/+13
| | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): Recognise boolean identity in aset, put, function-put and puthash. * lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp): Mark more functins as non-nil-returning, including the new pos-bol and pos-eol. * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Mark pos-bol and pos-eol as side-effect-free.
* * lisp/emacs-lisp/shortdoc.el (buffer): Add missing functionsMattias Engdegård2022-08-211-0/+5
| | | | | Add preceding-char and char-before because following-char and char-after were already there.
* Rename newly-added eol/bol functions to pos-eol/pos-bolLars Ingebrigtsen2022-08-211-4/+4
| | | | | | | * lisp/emacs-lisp/shortdoc.el (buffer): * doc/lispref/positions.texi (Text Lines): Adjust. * src/editfns.c (Fpos_bol): Rename from Fpos. (Fpos_eol): Rename from Feol.
* Move `while` syntax check from optimiser to macroexpandMattias Engdegård2022-08-192-3/+5
| | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-while): Move check... * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): ...here.
* Display new keybinding in obsolete command warningStefan Kangas2022-08-191-1/+3
| | | | | | * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning): * lisp/simple.el (command-execute): When warning about an obsolete command, display the keybinding for the new command.
* ; Delete not-useful comments referring to Emacs 19.Stefan Kangas2022-08-193-3/+1
|
* Add new functions eol and bolLars Ingebrigtsen2022-08-191-0/+12
| | | | | | | | | | | | | * doc/lispref/positions.texi (Text Lines): Document them * lisp/emacs-lisp/shortdoc.el: Mention them, and also the buffer/line predicates. * src/editfns.c (bol): New function. (Fbol): New defun. (Fline_beginning_position): Use `bol'. (eol): New function. (Feol): New defun. (Fline_end_position): Use `eol'.
* * Rename `comp--typeof-builtin-types'Andrea Corallo2022-08-181-5/+5
| | | | | * lisp/emacs-lisp/comp-cstr.el (comp--typeof-builtin-types): Rename. (comp-normalize-valset, comp-common-supertype-2): Update.
* * lisp/emacs-lisp/comp-cstr.el (comp--all-builtin-types): RemoveAndrea Corallo2022-08-181-4/+0
|
* Merge from origin/emacs-28Stefan Kangas2022-08-181-0/+4
|\ | | | | | | | | | | | | ef1e68f11d * lisp/image-mode.el (image-mode-as-hex): Fix toggle instr... dc0fce3a7d ; lisp/image-mode.el: Fix typo. 254ba1d3e5 * lisp/image-mode.el: Improve commentary. ac43ac1af9 cl-reduce doc string improvement
| * cl-reduce doc string improvementColin Woodbury2022-08-181-0/+4
| | | | | | | | | | * lisp/emacs-lisp/cl-seq.el (cl-reduce): Explain what happens when using :from-end (bug#57273).
* | Fix string-to-syntax signature in comp-known-type-specifiersMattias Engdegård2022-08-181-1/+1
| | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): `string-to-syntax` can return nil.
* | * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some typeAndrea Corallo2022-08-181-10/+10
| |
* | More non-nil-returning functions in source optimisationMattias Engdegård2022-08-181-5/+24
| | | | | | | | | | | | | | | | | | This change was partially generated and mechanically cross-validated with function type information from comp-known-type-specifiers in comp.el. * lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp): Extend list of functions and fix a typo (logxor).
* | Make GEN message from loaddefs-generate nicerLars Ingebrigtsen2022-08-181-1/+2
| | | | | | | | | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Shorten the informational GEN file relative to the stated directory (bug#57265). This makes the message nicer for ELPA packages.
* | Improve cryptic syntax switch message in re-builderStefan Kangas2022-08-181-2/+2
| | | | | | | | | | | | | | * lisp/emacs-lisp/re-builder.el (reb-restart-font-lock): Move message from here... * lisp/emacs-lisp/re-builder.el (reb-change-syntax): ...to here. Change it to be less cryptic.
* | * 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.
* | 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.