summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* | | * Add mvar pretty print support when dumping LIMPLEAndrea Corallo2020-12-211-6/+21
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-prettyformat-mvar) (comp-prettyformat-insn): New function. (comp-log-func): Update to use `comp-prettyformat-insn'. (comp-finalize-phis): Change LIMPLE phi format to ease `comp-prettyformat-insn' destructuring.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-12-2011-113/+152
|\| |
| * | Shorten some over-wide docstrings in functions and macrosStefan Kangas2020-12-194-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/allout-widgets.el (allout-widgets-tally-string): * lisp/array.el (array-mode): * lisp/calc/calc-units.el (calc-spn): * lisp/cedet/ede/generic.el (ede-generic-new-autoloader): * lisp/cedet/semantic/analyze.el (semantic-analyze-find-tag-sequence-default) (semantic-analyze-find-tag-sequence): * lisp/cedet/semantic/bovine/c.el (semantic-c-evaluate-symbol-for-hideif): * lisp/cedet/semantic/bovine/make.el (semantic-lex-make-command): * lisp/cedet/semantic/db-typecache.el (semanticdb-typecache-include-tags): * lisp/cedet/semantic/doc.el (semantic-documentation-for-tag): * lisp/cedet/semantic/tag-ls.el (semantic--tag-attribute-similar-p): * lisp/emacs-lisp/advice.el (ad-map-arglists): * lisp/emacs-lisp/bytecomp.el (byte-constant2) (byte-save-restriction, byte-catch-OBSOLETE, byte-unwind-protect): * lisp/emacs-lisp/cl-generic.el (cl-generic-combine-methods): * lisp/emacs-lisp/seq.el (seq-partition, seq-set-equal-p) (seq-filter): * lisp/faces.el (face-attribute-specified-or, face-equal): * lisp/info.el (Info-prev-reference-or-link) (Info-next-reference-or-link): * lisp/isearch.el (with-isearch-suspended): * lisp/kmacro.el (kmacro-step-edit-macro, kmacro-set-counter): * lisp/org/org-agenda.el (org-agenda-filter-by-category): * lisp/ses.el (ses-cell-symbol): * lisp/w32-fns.el (w32-shell-dos-semantics): Shorten doc strings to not exceed 80-column limits. (Bug#44858)
| * | Shorten over-wide docstrings in variablesStefan Kangas2020-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/cedet/semantic/util-modes.el (semantic-highlight-func-popup-menu): * lisp/emacs-lisp/elint.el (elint-top-form-logged): * lisp/erc/erc-dcc.el (erc-dcc-list): * lisp/expand.el (expand-pos): * lisp/font-lock.el (cpp-font-lock-keywords-source-depth): * lisp/gnus/gnus-sum.el (gnus-sort-gathered-threads-function): * lisp/gnus/message.el (message-cite-style-thunderbird): * lisp/gnus/nnmh.el (nnmh-be-safe): * lisp/gnus/nntp.el (nntp-open-telnet-envuser): * lisp/international/mule-cmds.el (current-transient-input-method): * lisp/net/tramp.el (tramp-file-name-structure): * lisp/org/ob-R.el (org-babel-R-write-object-command): * lisp/org/org-attach.el (org-attach-after-change-hook): * lisp/org/org.el (org-stamp-time-of-day-regexp): * lisp/progmodes/elisp-mode.el (elisp-xref-find-def-functions): * lisp/progmodes/ruby-mode.el (ruby-block-mid-re): * lisp/progmodes/verilog-mode.el (verilog-cache-enabled): * lisp/term.el (term-scroll-end): * lisp/textmodes/table.el (table-command-remap-alist) (table-inhibit-auto-fill-paragraph, table-command-remap-alist): * lisp/vc/ediff-diff.el (ediff-ignore-similar-regions): * lisp/vc/ediff-wind.el (ediff-mouse-pixel-threshold): * lisp/vc/smerge-mode.el (smerge-refine-ignore-whitespace): * lisp/vc/vc.el (vc-log-short-style): * lisp/view.el (view-exit-action): Shorten doc strings to not exceed 80-column limits. (Bug#44858)
| * | Shorten over-wide docstrings in defcustomsStefan Kangas2020-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/calc/calc.el (calc-embedded-announce-formula-alist) (calc-embedded-open-formula, calc-embedded-close-formula) (calc-matrix-mode): * lisp/cedet/semantic/imenu.el (semantic-imenu-sort-bucket-function): * lisp/emacs-lisp/find-func.el (find-feature-regexp): * lisp/emulation/cua-base.el (cua-paste-pop-rotate-temporarily): * lisp/emulation/viper-init.el (viper-fast-keyseq-timeout) (viper-related-files-and-buffers-ring): * lisp/emulation/viper-keym.el (viper-want-ctl-h-help): * lisp/gnus/gnus-art.el (gnus-article-banner-alist): * lisp/gnus/gnus-group.el (gnus-keep-same-level): * lisp/gnus/gnus-score.el (gnus-adaptive-word-length-limit): * lisp/gnus/gnus-sum.el (gnus-inhibit-user-auto-expire): * lisp/gnus/gnus-uu.el (gnus-uu-ignore-files-by-type) (gnus-uu-do-not-unpack-archives) (gnus-uu-unmark-articles-not-decoded) (gnus-uu-correct-stripped-uucode, gnus-uu-save-in-digest) (gnus-uu-post-include-before-composing): * lisp/gnus/gnus.el (gnus-use-long-file-name) (gnus-install-group-spam-parameters): * lisp/gnus/message.el (message-cite-style): * lisp/gnus/nnmail.el (nnmail-split-fancy-with-parent-ignore-groups) (nnmail-cache-ignore-groups): * lisp/ido.el (ido-rewrite-file-prompt-functions): * lisp/mail/feedmail.el (feedmail-fiddle-plex-user-list) (feedmail-spray-address-fiddle-plex-list): * lisp/mh-e/mh-e.el (mh-annotate-msg-hook): * lisp/net/imap.el (imap-process-connection-type): * lisp/net/rcirc.el (rcirc-omit-threshold): * lisp/net/tramp-sh.el (tramp-copy-size-limit): * lisp/nxml/nxml-mode.el (nxml-default-buffer-file-coding-system): * lisp/obsolete/landmark.el (landmark-max-stall-time): * lisp/obsolete/tls.el (tls-checktrust): * lisp/org/org-indent.el (org-indent-mode-turns-off-org-adapt-indentation) (org-indent-mode-turns-on-hiding-stars): * lisp/org/org-protocol.el (org-protocol-project-alist): * lisp/progmodes/cc-vars.el (c-doc-comment-style): * lisp/progmodes/cperl-mode.el (cperl-indent-subs-specially): * lisp/progmodes/flymake-proc.el (flymake-proc-allowed-file-name-masks): * lisp/progmodes/hideif.el (hide-ifdef-expand-reinclusion-protection): * lisp/simple.el (minibuffer-history-case-insensitive-variables): * lisp/tab-bar.el (tab-bar-close-last-tab-choice): * lisp/textmodes/reftex-vars.el (reftex-special-environment-functions): * lisp/vc/ediff-init.el (ediff-startup-hook, ediff-cleanup-hook) (ediff-metachars): * lisp/vc/ediff-merg.el (ediff-show-clashes-only): * lisp/vc/ediff-mult.el (ediff-default-filtering-regexp): Shorten doc strings to not exceed 80-column limits. (Bug#44858)
| * | Correct units and spacing in memory-reportMattias Engdegård2020-12-191-2/+2
| | | | | | | | | | | | | | | * lisp/emacs-lisp/memory-report.el (memory-report--format): Use IEC unit prefixes and a space before.
| * | * lisp/emacs-lisp/package.el (package-quickstart-refresh): Fix last changeStefan Monnier2020-12-181-1/+0
| | | | | | | | | | | | | | | Actually allow byte-compiling the file. Reported by Basil L. Contovounesios <contovob@tcd.ie>.
| * | * lisp/emacs-lisp/package.el: Byte compile the quickstart fileStefan Monnier2020-12-181-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Earlier tests had found problems when byte-compiling the file, but later investigations indicated the problem was not directly related. The performance difference is appreciable. (package-quickstart-refresh): Byte compile the file. (package-activate-all): Load byte-compiled version if available. (package--quickstart-maybe-refresh): Delete the byte-compiled file as well.
| * | Ensure that byte compilation works for relative files (Bug#45287).Philipp Stephani2020-12-171-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don’t fail if target filename doesn’t contain a directory name. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--target-file-no-directory): New unit test.
| * | * lisp/emacs-lisp/gv.el (error): Allow it as a placeStefan Monnier2020-12-141-0/+5
| | |
| * | Make XEmacs compat variable warning-level-aliases obsoleteStefan Kangas2020-12-141-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/warnings.el (warning-level-aliases): Make obsolete. (display-warning): Warn when using one of the warning levels defined in above obsolete variable. (Bug#44849) * lisp/url/url-proxy.el (url-find-proxy-for-url): Replace obsolete warning type 'critical with :error.
| * | Inhibit quit in ElDoc timer functions (bug#45117)João Távora2020-12-131-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The point of un-inhibiting it was to make ElDoc backends interruptible with any input (as in while-no-input), since that should in principle invalidate the need of the current ElDoc processing. But that strategy is dangerous for backends that perform complex synchronization with external processes. Better let each backend decide for itself it needs this eager interruptive behavior, like is presumably the case with the Octave backend. This reverts a part of commit 12e922156c86a26fa4bb2cb9e7d2b3fd639e4707 Author: Stefan Monnier <monnier@iro.umontreal.ca> Date: Tue Dec 4 18:15:44 2018 -0500 * lisp/emacs-lisp/eldoc.el (eldoc-print-current-symbol-info): * lisp/progmodes/octave.el (octave-eldoc-function-signatures): Use while-no-input.
| * | Byte compilation: handle case where the output file is a mountpoint.Philipp Stephani2020-12-131-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See Bug#44631. While testing for a readonly output directory has slightly different semantics, in practice they should cover cases where Emacs is sandboxed and can only write to the destination file, not its directory. * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Handle the case where the output directory is not writable. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--not-writable-directory) (bytecomp-tests--dest-mountpoint): New unit tests.
| * | * Fix `memory-report' for '--without-x' buildsAndrea Corallo2020-12-131-1/+3
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/memory-report.el (memory-report--image-cache): Don't call `image-cache-size' if unbound.
| * | * lisp/emacs-lisp/bytecomp.el: Allow a nil destination fileStefan Monnier2020-12-121-58/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (byte-compile--default-dest-file): New function, extracted from byte-compile-dest-file. (byte-compile-dest-file): Use it. (byte-compile-dest-file-function): Give it a non-nil default value. (byte-recompile-file, byte-compile-file): Handle a nil return value from `byte-compile-dest-file`. * lisp/progmodes/elisp-mode.el (elisp-flymake--batch-compile-for-flymake): Tell the compiler not to write the result, instead of writing it to a dummy temp file.
| * | * lisp/emacs-lisp/package.el (package-buffer-info): Improve error messageStefan Monnier2020-12-121-6/+10
| | | | | | | | | | | | (package-strip-rcs-id): Return canonicalized version string.
* | | Have native compiler always preserve multibyte strings (bug#45342)Andrea Corallo2020-12-201-0/+1
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-final): Escape multibyte string when offloading compilation to child process. * test/src/comp-test-funcs.el (comp-test-45342-f): New function * test/src/comp-tests.el (bug-45342): New test
* | | * Allow for adding constraints targetting blocks with multiple predecessorsAndrea Corallo2020-12-131-79/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit remove the limitaiton we had not being able to add constraints derived from conditional branches to basic blocks with multiple predecessors. When this condition is verified we add a new dedicated basic block to hold the constraints. * lisp/emacs-lisp/comp.el (comp-block, comp-edge): Better slot type specifiers. (comp-block-cstr): New struct specializing `comp-block'. (make-comp-edge): New function. (comp-func): Better test function + doc for `blocks' slot. (comp-limple-lock-keywords): Update possible basic block names. (comp-emit-assume): Recive directly the block instead of its name. (comp-add-new-block-beetween): New function. (comp-cond-cstr-target-block): Logic update and use `comp-add-new-block-beetween'. (comp-cond-cstr-func): Make use of the latter. (comp-compute-edges): Make use of `make-comp-edge'.
* | | * Rename comp-cond-rw -> comp-cond-cstrAndrea Corallo2020-12-131-8/+8
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-passes) (comp-cond-cstr-target-slot, comp-cond-cstr-func) (comp-cond-cstr): Rename pass from cond-rw to cond-cstr.
* | | * Memoize `comp-cstr-intersection'Andrea Corallo2020-12-131-24/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-cstr-ctxt): Add new slot `intersection-mem'. (comp-cstr-intersection-homogeneous): Fix non local exit target. (comp-cstr-intersection-no-mem): Rename from `comp-cstr-intersection'. (comp-cstr-intersection): New function.
* | | * Add initial negated non-negegated intersection supportAndrea Corallo2020-12-131-21/+93
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-range-intersection): Cosmetic. (comp-cstr-intersection-homogeneous): Rename from `comp-cstr-intersection'. (comp-cstr-intersection): New function.
* | | Normalize cstrs for cache hint effectiveness and test stabilityAndrea Corallo2020-12-121-15/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset) (comp-union-valsets, comp-intersection-valsets) (comp-normalize-typeset): New functions. (comp-union-typesets, comp-intersect-typesets) (comp-cstr-union-homogeneous-no-range, comp-cstr-union-1-no-mem): Update to return normalized results. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Normalize expected type specifiers.
* | | * Add `comp-split-pos-neg' functionAndrea Corallo2020-12-121-86/+91
| | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-split-pos-neg): New function. (comp-cstr-union-1-no-mem): Update to call `comp-split-pos-neg'.
* | | * Code rework add `comp-cstrs-homogeneous'Andrea Corallo2020-12-121-12/+19
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-cstrs-homogeneous): New function. (comp-cstr-union-1-no-mem): Make use of.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-12-128-10/+331
|\| |
| * | Alter the "Redundant pcase patter" warning messageLars Ingebrigtsen2020-12-121-1/+2
| | | | | | | | | | | | | | | * lisp/emacs-lisp/pcase.el (pcase--expand): Make the "Redundant pcase pattern" warning less vague (bug#31350).
| * | Make elint load `require'd packagesLars Ingebrigtsen2020-12-121-1/+9
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/elint.el (elint-require-form): New function to load files that are `require'd (bug#27006). (elint-special-forms): Add function.
| * | * lisp/emacs-lisp/thunk.el (thunk-let*): Don't modify `bindings`Stefan Monnier2020-12-111-1/+1
| | |
| * | Also sort the totals section by sizeLars Ingebrigtsen2020-12-111-1/+3
| | | | | | | | | | | | | | | * lisp/emacs-lisp/memory-report.el (memory-report): Sort the totals by size, too.
| * | Tweak memory-report--formatLars Ingebrigtsen2020-12-111-1/+1
| | | | | | | | | | | | | | | * lisp/emacs-lisp/memory-report.el (memory-report--format): Make everything line up, even when there's "1023.4kB".
| * | Add a new command `memory-report'Lars Ingebrigtsen2020-12-111-0/+299
| | | | | | | | | | | | | | | * doc/lispref/internals.texi (Garbage Collection): Document it. * lisp/emacs-lisp/memory-report.el: New package.
| * | cl-defmethod doc string clarificationLars Ingebrigtsen2020-12-091-2/+12
| | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Clarify the doc string, and give an example (bug#42322).
| * | Remove interactive spec from internal eldoc--format-doc-bufferJoão Távora2020-12-081-1/+0
| | | | | | | | | | | | | | | | | | | | | Per bug#43609. * lisp/emacs-lisp/eldoc.el (eldoc--format-doc-buffer): Remove useless interactive spec.
| * | Fix bug in how ERT invokes its debugger.Philipp Stephani2020-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The debugger needs to receive a list of the error symbol and data; cf. the documentation of the `debugger' variable. This bug manifested itself in ERT forms such as (should (integerp (ert-fail "Boo"))), which resulted in an incorrect condition object. Note that forms such as (should (ert-fail "Boo")) weren't affected because they wouldn't use the `ert--should-signal-hook'. * test/emacs-lisp/ert.el (ert--should-signal-hook): Call debugger with the right arguments. * test/lisp/emacs-lisp/ert-tests.el (ert-test-fail-inside-should): Add unit test.
| * | * lisp/emacs-lisp/lisp-mode.el: Give paren syntax to [...] in lisp-data-modeStefan Monnier2020-12-061-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (lisp-data-mode-syntax-table): Rename from lisp--mode-syntax-table. Adjust all users. Set [...] to have paren syntax. (lisp-data-mode): Don't set `lisp-syntax` arg any more * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-syntax-table): Don't bother setting [...] to have paren syntax any more. * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): Don't use `lisp-syntax` arg of lisp-mode-variables any more.
* | | * Spawn a sub-process for running GCC also in batch mode (bug#45056)Andrea Corallo2020-12-071-1/+9
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-async-compilation): New variable. (comp-final): Always run the C side of the compilation as a sub-process unless during bootstrap or async compilation. (comp-run-async-workers): Set `comp-async-compilation'.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-12-0616-149/+63
|\| |
| * | Prefer setq-local in emacs-lisp/*.elStefan Kangas2020-12-0412-36/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/chart.el (chart-mode): * lisp/emacs-lisp/copyright.el (copyright-update): * lisp/emacs-lisp/eieio-custom.el (eieio-customize-object): * lisp/emacs-lisp/elint.el (elint-update-env, elint-init-form): * lisp/emacs-lisp/ert.el (ert--results-update-ewoc-hf): (ert--setup-results-buffer): * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): * lisp/emacs-lisp/pp.el (pp-display-expression): * lisp/emacs-lisp/re-builder.el (reb-mode, reb-restart-font-lock): * lisp/emacs-lisp/shadow.el (load-path-shadows-mode): * lisp/emacs-lisp/smie.el (smie-setup): * lisp/emacs-lisp/syntax.el (syntax-propertize): * lisp/emacs-lisp/trace.el (trace-make-advice): Prefer setq-local.
| * | Remove redundant requires of 'help'Stefan Kangas2020-12-032-3/+1
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/advice.el (ad-read-advised-function): * lisp/emacs-lisp/ert.el: * lisp/facemenu.el: Don't require 'help'; it is preloaded since version 18.59.
| * | Remove redundant requires of 'button'Stefan Kangas2020-12-034-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/apropos.el: * lisp/emacs-lisp/cl-print.el: * lisp/emacs-lisp/debug.el: * lisp/emacs-lisp/ert.el: * lisp/emacs-lisp/shadow.el: * lisp/facemenu.el: * lisp/help-mode.el: * lisp/man.el: * lisp/progmodes/etags.el: * lisp/textmodes/bibtex.el: * lisp/woman.el: Don't require 'button'; it is preloaded since version 23.1.
| * | Remove redundant requires of 'custom'Stefan Kangas2020-12-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/eieio-custom.el: * lisp/htmlfontify.el: * lisp/mwheel.el: * lisp/net/eudc-vars.el: * lisp/net/ldap.el: * lisp/net/tramp-ftp.el: * lisp/net/tramp-gvfs.el: * lisp/progmodes/cwarn.el: * lisp/progmodes/sql.el: * lisp/savehist.el: * lisp/textmodes/reftex.el: * lisp/wid-browse.el: Don't require 'custom'; it is preloaded since version 20.1.
| * | Remove specific byte-compiler warnings for cl.elStefan Kangas2020-12-022-85/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types) (byte-compile-warnings, byte-compile-cl-file-p) (byte-compile-eval, byte-compile-eval-before-compile) (byte-compile-arglist-warn, byte-compile-find-cl-functions) (byte-compile-cl-warn, displaying-byte-compile-warnings) (byte-compile-file-form-require, byte-compile-form): Remove all specific cl.el warnings, as that library is now obsolete. The regular obsoletion warnings are sufficiently discouraging. * lisp/emacs-lisp/advice.el (ad-compile-function): Don't try to silence the now removed warning. * doc/lispref/tips.texi (Coding Conventions): * doc/misc/cl.texi (Organization): Make recommendation to not use cl.el and cl-compat.el stronger. * lisp/obsolete/cl.el: Make alias help say that they are obsolete. * lisp/obsolete/cl-compat.el (build-klist, safe-idiv) (pair-with-newsyms): Silence byte-compiler.
| * | Fix byte-compiler warning for failed uses of lexical varsStefan Kangas2020-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-form): Fix byte-compiler warning for failed uses of lexical vars. (Bug#44980) * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--define-warning-file-test): Don't prefix tests with 'warn'. (bytecomp/error-lexical-var-with-add-hook\.el) (bytecomp/error-lexical-var-with-remove-hook\.el) (bytecomp/error-lexical-var-with-run-hook-with-args-until-failure\.el) (bytecomp/error-lexical-var-with-run-hook-with-args-until-success\.el) (bytecomp/error-lexical-var-with-run-hook-with-args\.el) (bytecomp/error-lexical-var-with-symbol-value\.el): New tests. * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-symbol-value.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-success.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-failure.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-remove-hook.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-add-hook.el: New files.
| * | Decrease code duplication in byte-compiler free-vars warningStefan Kangas2020-11-301-18/+23
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-free-vars-warn): New defun extracted from... (byte-compile-variable-ref, byte-compile-variable-set): ...here.
* | | * Unify common fallback exit point in `comp-cstr-union-1-no-mem'.Andrea Corallo2020-12-061-112/+106
| | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Define a local function `give-up' as a common fall-back exit point.
* | | Couple of `comp-cstr-union-1-no-mem' improvements for mixed neg pos unionAndrea Corallo2020-12-061-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Generalize disjoint pos types vs neg values conditions. (comp-cstr-union-1-no-mem): Do not propagate ranges when we are already returning integer as generic type. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add corresponding tests.
* | | * Memoize `comp-cstr-union-1'Andrea Corallo2020-12-051-7/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Do not synthesize the copier. (comp-cstr-ctxt): Add `union-1-mem-no-range' `union-1-mem-range' slots. (comp-cstr-copy): New function. (comp-cstr-union-1-no-mem): Rename from `comp-cstr-union-1'. (comp-cstr-union-1): New function.
* | | More improvements to `comp-cstr-union-1' for mixed positive/negative casesAndrea Corallo2020-12-051-34/+54
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Better handle mixed positive/negated cases. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a number of tests.
* | | * Fix `comp-cstr-to-type-spec'Andrea Corallo2020-12-051-41/+44
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-star-or-num-p): New predicate. (comp-type-spec-to-cstr): Make use of. (comp-cstr-to-type-spec): Output correctly type specifiers as (not (or integer ...
* | | Fix union of homogeneously negated input constraintsAndrea Corallo2020-12-051-0/+2
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Fix logic. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a couple of tests.