summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Make ert explainers work on function aliasesLars Ingebrigtsen2022-01-131-6/+11
| |_|/ |/| | | | | | | | | | | * lisp/emacs-lisp/ert.el: New function. (ert--expand-should-1): Use it (bug#53178).
* | | Remove the filename argument from the command line after an ELC+ELN buildAlan Mackenzie2022-01-111-1/+2
| | | | | | | | | | | | | | | This fixes bug #53164. Without this fix, bootstrap-emacs loads the source file uselessly into a buffer after completing the compilation.
* | | Merge remote-tracking branch 'origin/emacs-28' into trunkStefan Monnier2022-01-102-6/+5
|\| |
| * | Revert "Remove the filename argument from the command line after an ELC+ELN ↵Eli Zaretskii2022-01-101-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | build" This reverts commit ffc047c896413b6e00032518fc934f08768671fa. Please don't install anything non-trivial on the release branch without asking first.
| * | Remove the filename argument from the command line after an ELC+ELN buildAlan Mackenzie2022-01-101-1/+2
| | | | | | | | | | | | | | | This fixes bug #53164. Without this fix, bootstrap-emacs loads the source file uselessly into a buffer after completing the compilation.
| * | Revert "Fix alignment on font size change in tabulated-list-mode"Eli Zaretskii2022-01-091-2/+1
| | | | | | | | | | | | | | | | | | | | | This reverts commit 2767c89db729a6106146d0aeff76678c64d4fc53. That change caused a regression in a much more important use case, see bug#53133.
| * | ; * lisp/emacs-lisp/package.el (package-native-compile): Fix doc wording.Eli Zaretskii2022-01-091-4/+4
| | |
* | | Add doc-string indices to easy-mmode-{defmap,defsyntax}Ivan Sokolov2022-01-091-2/+2
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap) (easy-mmode-defsyntax): Declare third argument as doc-string. (Bug#52978)
* | | Merge from origin/emacs-28Stefan Kangas2022-01-091-1/+7
|\| | | | | | | | | | | | | | 30f1bdb41f Clarify docstring of package-native-compile c54fda643d Fix Subject "simplification" in Rmail
| * | Clarify docstring of package-native-compileStefan Kangas2022-01-091-1/+7
| | | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package-native-compile): Clarify docstring.
* | | cl-generic.el: Fix bug#46722Stefan Monnier2022-01-051-1/+3
| | | | | | | | | | | | | | | | | | | | | Fix longstanding bug due to unexpected interference via side-effect. * lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher): Copy the `dispatch` arg before storing it into the hash-table.
* | | Merge from origin/emacs-28Stefan Kangas2022-01-051-0/+1
|\| | | | | | | | | | | | | | | | | | | | | | | e7aa3ece52 Fix vc-git with old Git over Tramp and cygwin-mount.el c0cfbca311 * lisp/emacs-lisp/checkdoc.el (bytecomp): Add missing require # Conflicts: # etc/NEWS
| * | * lisp/emacs-lisp/checkdoc.el (bytecomp): Add missing requirePhilipp Stephani2022-01-051-0/+1
| | |
* | | Improve pp-emacs-lisp-code for #'Lars Ingebrigtsen2022-01-041-2/+4
| | | | | | | | | | | | | | | * lisp/emacs-lisp/pp.el (pp--insert-lisp): Format (function ...) as #'.
* | | ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
| | |
* | | Merge from origin/emacs-28Eli Zaretskii2022-01-0192-92/+92
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year ebe8772f65 ; Minor fixes related to copyright years 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. 19dcb237b5 ; Add 2022 to copyright years. # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex # lib/cdefs.h # lisp/erc/erc-dcc.el # lisp/erc/erc-imenu.el # lisp/erc/erc-replace.el # lisp/image-dired.el # lisp/progmodes/xref.el # m4/alloca.m4 # m4/byteswap.m4 # m4/errno_h.m4 # m4/getopt.m4 # m4/gnulib-common.m4 # m4/inttypes.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/sys_socket_h.m4
| * | ; Add 2022 to copyright years.Eli Zaretskii2022-01-0193-93/+93
| | |
* | | * lisp/emacs-lisp/package.el (package-get-version): Add fallbackStefan Monnier2021-12-311-1/+4
| | |
* | | Don't store docstrings of preloaded .el files in etc/DOCStefan Monnier2021-12-301-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the location of those files changes between build time and installation time, this requires to tweak the file name used in those (#$ . NNN) references during the dump so they don't hardcode the build directory. We do it in the same way as was already done for those same file names in `load-history`, except we convert them back to absolute file names more lazily (i.e. when fetching the actual docstring rather than at startup), which requires remembering the `lisp-dir` computed at startup in the new `lisp-directory` variable. * src/Makefile.in ($(etc)/DOC): Don't scan Lisp files any more. * src/lread.c (Fload): Use relative file names for `load-file-name` when preloading for the dump, like we already did for `current-load-list`. (read_list): Don't zero-out dynamic docstring references during the preload since they won't be filled later by Snarf-documentation any more. (read1): Remove the hash-hack for doc references that were zeroed. * lisp/startup.el (lisp-directory): New variable. (command-line): Set it. * src/doc.c (get_doc_string): Use `lisp-directory` for dynamic docstring references using relative file names. (syms_of_doc): Add `Qlisp_directory`. * lib-src/make-docfile.c (scan_file): Don't handle `.el` or `.elc` files any more. (IS_SLASH): Remove macro, not used any more. (skip_white, read_lisp_symbol, search_lisp_doc_at_eol) (scan_lisp_file): Remove functions, not used any more. * doc/lispref/loading.texi (Library Search): Mention `lisp-directory`.
* | | * lisp/emacs-lisp/ert.el (ert-select-tests): Document new error.Philipp Stephani2021-12-301-1/+2
| | |
* | | * lisp/emacs-lisp/ert.el (ert-select-tests): Simplify nested switchPhilipp Stephani2021-12-301-46/+36
| | |
* | | Properly report errors about unbound ERT test symbols.Philipp Stephani2021-12-301-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assertions should only be used to check internal consistency within a package, not to check arguments passed by callers. Instead, define and use a new error symbol. * lisp/emacs-lisp/ert.el (ert-test-unbound): New error symbol. (ert-select-tests): Use it. * test/lisp/emacs-lisp/ert-tests.el (ert-test-select-undefined): New unit test. * etc/NEWS: Document new behavior.
* | | ; * lisp/emacs-lisp/ert.el: Update reference to 'cl-assert'Philipp Stephani2021-12-301-1/+1
| | |
* | | * Fix native comp for non trivial function names (bug#52833)Andrea Corallo2021-12-281-1/+3
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-c-func-name): Fix native compilation for functions with function names containing non trivial characters (bug#52833).
* | | Fix read-multiple-choice testsStefan Kangas2021-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Fix typo. * test/lisp/emacs-lisp/rmc-tests.el (test-rmc--add-key-description) (test-rmc--add-key-description/with-attributes) (test-rmc--add-key-description/non-graphical-display): Fix tests.
* | | read-multiple-choice: Improve key formattingStefan Kangas2021-12-271-2/+2
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve formatting of key missing in the description. Use face help-key-name on terminals that can't display underline.
* | | * lisp/emacs-list/eieio-compat.el: Really move to obsoleteStefan Monnier2021-12-271-278/+0
| | |
* | | read-multiple-choice: Display "SPC" instead of " "Stefan Kangas2021-12-261-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve display of the keys TAB, RET, SPC, DEL, and ESC. This fixes a bug where " " was highlighted in the description in a confusing way. * test/lisp/emacs-lisp/rmc-tests.el (test-rmc--add-key-description) (test-rmc--add-key-description/with-attributes): Update tests for the above change.
* | | read-multiple-choice: Add optional argument show-helpStefan Kangas2021-12-261-54/+68
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rmc.el (rmc--show-help): Factor out new function from read-multiple-choice. (read-multiple-choice): Add new optional argument show-help. * doc/lispref/commands.texi (Reading One Event): Document above new optional argument.
* | | read-multiple-choice: Add face when key not in name stringStefan Kangas2021-12-261-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Add face property also when key is not in the name string. * test/lisp/emacs-lisp/rmc-tests.el (test-rmc--add-key-description/with-attributes) (test-rmc--add-key-description/non-graphical-display): Update tests.
* | | Factor out new function rmc--add-key-descriptionStefan Kangas2021-12-261-32/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Factor out new function from... (read-multiple-choice): ...here. * test/lisp/emacs-lisp/rmc-tests.el (test-rmc--add-key-description) (test-rmc--add-key-description/with-attributes) (test-rmc--add-key-description/non-graphical-display): New tests.
* | | ; Fix last change: use 'utf-8-emacs-unix' encoding.Eli Zaretskii2021-12-261-3/+3
| | |
* | | Minor improvements in multisession.elEli Zaretskii2021-12-261-6/+9
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/multisession.el (multisession--read-file-value): Handle 'file-missing' error when reading values from files. (multisession--backend-values, multisession--backend-set-value) (multisession--read-file-value): Use 'utf-8-emacs' encoding.
* | | Use the new `permission-denied' error to catch multisession errorsLars Ingebrigtsen2021-12-211-1/+1
| | | | | | | | | | | | | | | * lisp/emacs-lisp/multisession.el (multisession--read-file-value): Use the new `permission-denied' error to catch file errors on Windows.
* | | Fix bug#28557Stefan Monnier2021-12-205-25/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/cconv-tests.el: Remove `:expected-result :failed` from the bug#28557 tests. (cconv-tests-cl-function-:documentation): Account for the presence of the arglist (aka "usage") in the docstring. * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Handle non-constant `:documentation`. * lisp/emacs-lisp/generator.el (iter-lambda): * lisp/emacs-lisp/cconv.el (cconv--convert-funcbody): Use `macroexp-parse-body`.
* | | ; * lisp/emacs-lisp/cl-macs.el (cl--self-tco): fix bootstrappingMattias Engdegård2021-12-201-2/+2
| | |
* | | Body of dynamic let-bindings is not in tail positionMattias Engdegård2021-12-201-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | This fixes a known bug in `named-let`. * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Prevent TCO from inside dynamic variable bindings. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test.
* | | Add `macroexp--dynamic-variable-p`Mattias Engdegård2021-12-202-20/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This predicate can be used for discriminating between lexically and dynamically bound variables during macro-expansion (only). It is restricted to internal use for the time being. * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Use macroexpand--all-toplevel. * lisp/emacs-lisp/macroexp.el (macroexp-dynamic-variable-p): New. (macroexp--expand-all): Maintain macroexp--dynvars. (macroexpand-all): Rebind macroexp--dynvars. (macroexpand--all-toplevel): New. (internal-macroexpand-for-load): Use macroexpand--all-toplevel. * src/eval.c (eval_sub): Transfer defvar declarations from Vinternal_interpreter_environment into macroexp--dynvars during lazy macro-expansion. * src/lread.c (readevalloop): Rebind macroexp--dynvars around read-and-evaluate operations. (syms_of_lread): Define macroexp--dynvars. * test/lisp/emacs-lisp/macroexp-resources/vk.el: New file. * test/lisp/emacs-lisp/macroexp-tests.el (macroexp-tests--run-emacs) (macroexp-tests--eval-in-subprocess) (macroexp-tests--byte-compile-in-subprocess) (macroexp--tests-dynamic-variable-p): Add tests.
* | | Treat base64 string encode/decode as pure functionsMattias Engdegård2021-12-201-0/+2
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns): Mark base64-decode-string, base64-encode-string and base64url-encode-string as pure and side-effect-free.
* | | Add a new elp-restore-package commandDaniel Mendler2021-12-191-0/+8
| | | | | | | | | | | | | | | * lisp/emacs-lisp/elp.el (elp-restore-package): New command (bug#52457).
* | | Fix elp-*-list interactive specsLars Ingebrigtsen2021-12-191-2/+2
| | | | | | | | | | | | | | | * lisp/emacs-lisp/elp.el (elp-reset-list): (elp-restore-list): Fix the interactive specs (bug#52457).
* | | Remove incorrect byte-hunk-handler for `eval`Mattias Engdegård2021-12-181-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | This optimisation is of very limited utility and miscompiles top-level code having the form (eval 'CODE t) by replacing it with CODE which will then, as things currently stand, be evaluated with dynamic binding. * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Remove.
* | | Make generation of JUnit test reports more robust.Michael Albinus2021-12-181-13/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-load-file-name): New defvar. (ert-write-junit-test-report): Use it. Make detection of selector more robust. Protect calls of `xml-escape-string' with 'noerror. * test/infra/Makefile.in (subdir_template): Use "make -k ...". * test/infra/gitlab-ci.yml (test-filenotify-gio): Adapt make_params in order to get a JUnit test report. (test-native-comp-speed0): Use "make -k ...". * test/infra/test-jobs.yml: Regenerate. * test/lisp/progmodes/perl-mode-tests.el (top): Set `ert-load-file-name'.
* | | Make multisession file reading more resilient on WindowsLars Ingebrigtsen2021-12-181-19/+26
| | | | | | | | | | | | | | | * lisp/emacs-lisp/multisession.el (multisession--read-file-value): Rename and try harder on file errors on Windows.
* | | Handle missing JUnit test reportsMichael Albinus2021-12-171-114/+118
| | | | | | | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-write-junit-test-report) (ert-write-junit-test-summary-report): Handle missing JUnit test reports.
* | | multisession.el: Avoid old specializer syntaxStefan Monnier2021-12-171-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid the use of the old (eql VAL) specializer, preferring the new (eql EXP) form. * lisp/emacs-lisp/multisession.el (multisession-backend-value) multisession--backend-set-value, multisession--backend-values) multisession--backend-delete, multisession-backend-value) multisession--backend-set-value, multisession--backend-values) multisession--backend-delete): Quote the symbol passed to `eql` specializer.
* | | Improve multisession test results on MS-WindowsEli Zaretskii2021-12-171-1/+2
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/multisession.el (multisession--backend-set-value): Force 'fsync'ing the temporary file.
* | | Fix parallel build with multisession.elLars Ingebrigtsen2021-12-171-1/+0
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/multisession.el: Don't require url -- this pulls in gnus-util, which requires rmail, which depends on rmail-loaddefs being generated, which our Makefiles doesn't guarantee.
* | | Update files times in multisesssion properlyLars Ingebrigtsen2021-12-161-0/+1
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/multisession.el (multisession--backend-set-value): Make cached/external files times match up.
* | | Make the multisession files value read more resilientLars Ingebrigtsen2021-12-161-9/+16
| | | | | | | | | | | | | | | * lisp/emacs-lisp/multisession.el (multisession--update-file-value): Make more resilient towards errors.