summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* | | ; 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.
* | | Declare a couple more functions in multisession.elLars Ingebrigtsen2021-12-161-0/+2
| | | | | | | | | | | | * lisp/emacs-lisp/multisession.el: New file.
* | | Add support for multisession variablesLars Ingebrigtsen2021-12-161-0/+429
| | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/elisp.texi (Top): Add to menu. (Top): * doc/lispref/variables.texi (Variables): Ditto. (Multisession Variables): Document multisession variables. * lisp/emacs-lisp/multisession.el: New file.
* | | Add errors in ert JUnit test reportsMichael Albinus2021-12-151-49/+85
| | | | | | | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-write-junit-test-report) (ert-write-junit-test-summary-report): Handle errors.
* | | eieio-compat.el: Move to lisp/obsoleteStefan Monnier2021-12-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The file only contains obsolete definitions, so it really belongs in `lisp/obsolete`. Moving it there will also signal a warning for those people who run old `.elc` files using EIEIO and generated with Emacs<25 and who otherwise might not know about the obsolescence of some of the functions they use. * lisp/emacs-lisp/eieio-compat.el: Move to ... * lisp/obsolete/eieio-compat.el: ... here.
* | | ERT can generate JUnit test reportsMichael Albinus2021-12-131-5/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * .gitignore: Add test/**/*.xml. * admin/notes/emba: Mention JUnit test report. * etc/NEWS: ERT can generate JUnit test reports. * lisp/emacs-lisp/ert.el (xml-escape-string): Autoload. (ert-write-junit-test-report) (ert-write-junit-test-summary-report): New defuns. (ert-run-tests-batch, ert-summarize-tests-batch-and-exit): Call them. * test/Makefile.in (clean): Remove *.xml. * test/README: Mention $EMACS_TEST_JUNIT_REPORT environment variable. * test/infra/Makefile.in ($(FILE)): Generate header commentary. (clean): Remove. * test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_JUNIT_REPORT. (.job-template): Use it in script and after_script. (.build-template, .gnustep-template, .filenotify-gio-template) (.native-comp-template): Adapt rules. (.test-template): Trigger JUnit test report. * test/infra/test-jobs.yml: Regenerate.
* | | * lisp/emacs-lisp/generator.el (iter-yield): SimplifyStefan Monnier2021-12-131-4/+2
| | |
* | | ; * lisp/emacs-lisp/shortdoc.el (keymaps): Fix typo.Stefan Kangas2021-12-121-1/+1
| | |
* | | Constant-propagate access to captured variablesMattias Engdegård2021-12-111-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p): Treat (internal-get-closed-var N) as constants for propagation purposes, because that is effectively what such forms will be compiled to. This allows for the elimination of some lexical variables. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test case.
* | | Use defvar-keymap for package-menu-mode-mapStefan Kangas2021-12-101-29/+27
| | | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package-menu-mode-map): Use defvar-keymap.
* | | Convert shortdoc-mode-map to defvar-keymapStefan Kangas2021-12-081-8/+6
| | | | | | | | | | | | | | | * lisp/emacs-lisp/shortdoc.el (shortdoc-mode-map): Convert to defvar-keymap.
* | | Remove some unnecessary references to Emacs 22Stefan Kangas2021-12-071-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/cedet/semantic/fw.el: * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): * lisp/emulation/viper-util.el (viper-frame-value): * lisp/mail/rmail.el (rmail-delete-headers): * lisp/mh-e/mh-e.el (mh-inc-spool-list): Remove some unnecessary references to Emacs 22.
* | | Remove spurious space in byte-compiler warningStefan Kangas2021-12-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-length-warn): Remove spurious space in byte-compiler warning. * test/lisp/emacs-lisp/bytecomp-tests.el ("warn-wide-docstring-defun.el"): Update test.
* | | Prefer nil to (current-time) when either will doPaul Eggert2021-12-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/timer.el (timer-event-handler, run-at-time): * lisp/gnus/gnus-score.el (gnus-score-date): * lisp/gnus/gnus-search.el (gnus-search-query-parse-date) (gnus-search-imap-handle-date): * lisp/gnus/gnus-sum.el (gnus-user-date) (gnus-summary-create-article): * lisp/image-dired.el (image-dired-create-thumb-1): * lisp/image/gravatar.el (gravatar-retrieve) (gravatar--prune-cache): * lisp/net/dbus.el (dbus-monitor-handler): * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-set-file-times): * lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times): * test/lisp/autorevert-tests.el (auto-revert--wait-for-revert) (auto-revert-tests--write-file, auto-revert-test--wait-for): * test/lisp/net/tramp-tests.el (tramp--test-print-duration): Prefer nil to (current-time) when either will do, as this avoids some consing. Similarly, prefer omitting (current-time) arg when this is equivalent.
* | | ; Small doc fix in recent eieio-opt.el changeStefan Kangas2021-12-061-1/+1
| | | | | | | | | | | | | | | * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Quote functions to make links work in help-mode.