| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
* lisp/emacs-lisp/comp.el (comp-known-predicates)
(comp-known-predicates-h): New constants.
(comp-known-predicate-p, comp-pred-to-cstr): New functions.
* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Don't define.
* test/src/comp-tests.el (comp-test-45576): New testcase.
* test/src/comp-test-funcs.el (comp-test-45576-f): New function.
|
|
|
|
|
|
|
|
| |
* lisp/emacs-lisp/comp.el (comp-block): Rename dom `slot' into
`idom'.
(comp-clean-ssa, comp-compute-dominator-tree)
(comp-compute-dominator-frontiers, comp-dom-tree-walker)
(comp-remove-unreachable-blocks): Update accordingly.
|
|\ |
|
| |\
| | |
| | |
| | | |
33d159c36f Fix copyright years by hand
|
| | |
| | |
| | |
| | | |
These are dates that admin/update-copyright did not update.
|
| | |
| | |
| | |
| | | |
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
|
| | |
| | |
| | |
| | | |
Run "TZ=UTC0 admin/update-copyright".
|
| | |
| | |
| | |
| | |
| | |
| | | |
* build-aux/update-subdirs:
* lisp/emacs-lisp/autoload.el (autoload-rubric): Add lexical-binding
cookie to generated files (bug#44854).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/cedet/semantic/analyze/refs.el
(semantic-analyze-refs-proto)
(semantic-analyze-refs-impl):
* lisp/cedet/semantic/symref.el
(semantic-symref-hit-to-tag-via-buffer):
* lisp/emacs-lisp/chart.el (chart-axis-draw):
* lisp/emacs-lisp/cl-macs.el (cl-defstruct, cl-loop):
* lisp/emacs-lisp/eieio-core.el (eieio--add-new-slot):
* lisp/eshell/em-unix.el (eshell/info):
* lisp/gnus/deuglify.el (gnus-outlook-rearrange-article):
* lisp/gnus/gnus-agent.el (gnus-agent-read-article-number):
* lisp/gnus/gnus-util.el (gnus-put-overlay-excluding-newlines)
(gnus-put-text-property-excluding-newlines):
* lisp/gnus/message.el (message-sort-headers):
* lisp/gnus/nntp.el (nntp-with-open-group)
(nntp-with-open-group-function):
* lisp/gnus/nnvirtual.el (nnvirtual-create-mapping):
* lisp/mail/feedmail.el (feedmail-fiddle-list-of-fiddle-plexes)
(feedmail-queue-reminder, feedmail-mail-send-hook-splitter):
* lisp/net/dictionary.el (dictionary-do-matching):
* lisp/obsolete/longlines.el (longlines-auto-wrap):
* lisp/org/ob-sql.el (org-babel-sql-dbstring-vertica):
* lisp/org/ol-bbdb.el (org-bbdb-date-list):
* lisp/progmodes/cc-cmds.el (c-mark-function):
* lisp/progmodes/cperl-mode.el (cperl-add-tags-recurse)
(cperl-add-tags-recurse-noxs-fullpath)
(cperl-add-tags-recurse-noxs):
* lisp/progmodes/etags.el (tags-search):
* lisp/progmodes/verilog-mode.el (verilog-delete-auto-buffer)
(verilog-auto-re-search-do, verilog-expand-vector-internal):
* lisp/textmodes/reftex-parse.el (reftex-init-section-numbers):
* lisp/textmodes/reftex-toc.el
(reftex-toc-load-all-files-for-promotion):
* lisp/textmodes/sgml-mode.el (html-mode):
* lisp/textmodes/table.el (table--transcoord-cache-to-table)
(table--transcoord-table-to-cache, table--remove-eol-spaces)
(table--region-in-cell-p, table-goto-bottom-right-corner)
(table-split-cell-horizontally):
* lisp/url/url-handlers.el (url-insert):
* lisp/vc/ediff-util.el (ediff-inferior-compare-regions): Fix doc
strings to not exceed 80-column limits. (Bug#44858)
|
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/memory-report.el (memory-report--symbol-plist):
New function.
(memory-report): Use it.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(define-globalized-minor-mode): Fill auto-generated documentation
strings. (Bug#44858)
* lisp/subr.el (internal--fill-string-single-line)
(internal--format-docstring-line): New functions.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
(byte-compile-docstring-length-warn): New defuns.
(byte-compile-docstring-max-column): New defcustom.
(byte-compile--wide-docstring-substitution-len): New variable.
(byte-compile-warning-types, byte-compile-warnings): New value
'docstrings'.
(byte-compile-file-form-autoload, byte-compile-file-form-defvar):
(byte-compile-file-form-defvar-function, byte-compile-lambda):
(byte-compile-defvar, byte-compile-file-form-defalias): Warn about too
wide docstrings. (Bug#44858)
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-warn-wide-docstring/defconst)
(bytecomp-warn-wide-docstring/defvar): New tests.
(bytecomp--define-warning-file-test): New macro.
(bytecomp/warn-wide-docstring-autoload\.el)
(bytecomp/warn-wide-docstring-custom-declare-variable\.el)
(bytecomp/warn-wide-docstring-defalias\.el)
(bytecomp/warn-wide-docstring-defconst\.el)
(bytecomp/warn-wide-docstring-define-abbrev-table\.el)
(bytecomp/warn-wide-docstring-define-obsolete-function-alias\.el)
(bytecomp/warn-wide-docstring-define-obsolete-variable-alias\.el)
(bytecomp/warn-wide-docstring-defun\.el)
(bytecomp/warn-wide-docstring-defvar\.el)
(bytecomp/warn-wide-docstring-defvaralias\.el)
(bytecomp/warn-wide-docstring-ignore-fill-column\.el)
(bytecomp/warn-wide-docstring-ignore-override\.el)
(bytecomp/warn-wide-docstring-ignore\.el)
(bytecomp/warn-wide-docstring-multiline-first\.el)
(bytecomp/warn-wide-docstring-multiline\.el): New tests.
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-autoload.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-custom-declare-variable.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defalias.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defconst.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-define-abbrev-table.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-define-obsolete-function-alias.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-define-obsolete-variable-alias.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defun.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defvar.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defvaralias.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-fill-column.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-override.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-multiline-first.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-multiline.el:
New files.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Amend
format to avoid two spaces for non-autoloaded object constructor
functions (bug#45454).
Copyright-paperwork-exempt: yes
|
| | | |
|
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add throw.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With this commit unreachable basic blocks are pruned automatically by
comp-ssa relying on dominance analysis. This solves the issue of
unreachable cluster of basic blocks referencing each other.
* lisp/emacs-lisp/comp.el (comp-block-lap): New `no-ret' slot.
(comp-compute-dominator-tree): Update.
(comp-remove-unreachable-blocks): New functions.
(comp-ssa): Update to call `comp-remove-unreachable-blocks'.
(comp-clean-orphan-blocks): Delete.
(comp-rewrite-non-locals): Update and simplify.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Introduce 'unreachable' as LIMPLE operater so we can handle correctly
in the CFG functions throwing values or signaling errors.
* src/comp.c (retrive_block): Better error diagnostic.
(emit_limple_insn): Add `unreachable'.
(compile_function): Fix block iteration.
(syms_of_comp): Define 'Qunreachable'.
* lisp/emacs-lisp/comp.el (comp-block): New variable.
(comp-block-lap): Add `non-ret-insn' slot.
(comp-branch-op-p): New predicate.
(comp-limple-lock-keywords): Color `unreachable' as red.
(comp-compute-edges): Add `unreachable'.
(comp-fwprop-call): Store non returning function call.
(comp-fwprop*): Update.
(comp-clean-orphan-blocks, comp-rewrite-non-locals): New functions.
(comp-fwprop): Call `comp-rewrite-non-locals'.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add two
tests.
* test/src/comp-test-funcs.el (comp-test-non-local-1)
(comp-test-non-local-2, comp-test-non-local-3)
(comp-test-non-local-4): New functions.
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p)
(comp-cstr-null-p): Fix missing negation handling.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-insert-insn): New inline.
(comp-emit-call-cstr): Split logic and call `comp-insert-insn'.
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Reorder in
aphabetical order and comment.
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more
type specifiers.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-mvar-fixnum-p)
(comp-mvar-symbol-p, comp-mvar-cons-p): Consider neg slot.
* test/src/comp-tests.el (comp-test-not-cons): New test.
* test/src/comp-test-funcs.el (comp-test-not-cons-f): New
function.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-emit-assume): Update.
(comp-known-predicate-p): New function.
(comp-add-cond-cstrs): Extend to pattern match predicate calls.
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-null-p)
(comp-pred-to-cstr): New function.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a
number of tests and fix comments.
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/cl-macs.el (cl-satisfies-deftype): Define symbol
property as reverse of `cl-deftype-satisfies'.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* src/lisp.h (struct Lisp_Subr): Add 'type' field.
(SUBR_TYPE): New inline accessor.
* src/pdumper.c (dump_subr): Update for 'type' field.
* src/data.c (Fsubr_type): New primitive.
(syms_of_data): Update.
* src/comp.c (ABI_VERSION): Bump new ABI version.
(make_subr): Set type.
(Fcomp__register_lambda, Fcomp__register_subr)
(Fcomp__late_register_subr): Receive and pass subr type to
'make_subr'.
* src/alloc.c (mark_object): Mark subr type.
* lisp/emacs-lisp/comp.el (comp-func): Change slot type into mvar.
(comp-emit-for-top-level, comp-emit-lambda-for-top-level): Pass
type mvar to subr register functions.
(comp-compute-function-type): Fix-up subr type mvars.
* test/src/comp-tests.el (comp-tests-check-ret-type-spec): Use
`subr-type'.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* src/comp.c (Fcomp__register_lambda, Fcomp__register_subr)
(Fcomp__late_register_subr): Use a rest arg to pass 'doc_idx' and
'intspec' parameters.
* lisp/emacs-lisp/comp.el (comp-emit-for-top-level)
(comp-emit-lambda-for-top-level): Update.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate functions
also when called under `funcall'.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-func): `type' rename from
`ret-type-specifier'.
(comp-args-to-lambda-list): New function.
(comp-compute-function-type): New function from
`comp-ret-type-spec'.
(comp-final): Update.
* test/src/comp-tests.el (comp-tests-check-ret-type-spec): Update.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp.el (comp-args-base, comp-args)
(comp-nargs, comp-func): Fix the type of some slots.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-one): New special var.
* lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate integer
ranges on +1 -1.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp-cstr.el (comp-range-+, comp-range--): New
functions.
(comp-cstr-set-range-for-arithm): New macro.
(comp-cstr-add-2, comp-cstr-sub-2, comp-cstr-add, comp-cstr-sub):
New function.
* lisp/emacs-lisp/comp.el (comp-fwprop-call): Wire-up + - integer
range propagation.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-smallest-in-range)
(comp-cstr-greatest-in-range): New function.
(comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): Make use of.
|
|\| | |
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/shortdoc.el (list): Fix typos.
* src/fns.c (Flength_equal): Fix docstring.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): If
our regexp algorithm could not find a location for the symbol
definition, resort to find-function--search-by-expanding-macros.
* test/lisp/emacs-lisp/find-func-tests.el: Add a automatic test for a
function and variable generated by a macro.
* etc/NEWS: Advertise the improved functionality (bug#45443).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* doc/lispref/sequences.texi (Sequence Functions): Document them.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Mark them as
side-effect-free.
* lisp/emacs-lisp/shortdoc.el (list): Mention them.
* src/fns.c (Flength): Mention them in the doc string.
(length_internal): New function.
(Flength_less, Flength_greater, Flength_equal): New defuns.
(syms_of_fns): Sym them.
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/edebug.el (edebug-form-data): Doc string
clarification (bug#42776).
|
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1):
Fix infloop on circular lists.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/package.el (package--files-load-history): We're
comparing the truenames, so ensure that we've using that
everywhere. This fixes problems when there's symlinks in the paths.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* lisp/emacs-lisp/package.el (package--files-load-history)
(package--list-of-conflicts): Factor out from...
(package--list-loaded-files): ... this function for easier
debuggability.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* doc/lispref/strings.texi (Creating Strings): Document it.
* lisp/emacs-lisp/subr-x.el (string-limit): Allow limiting on
encoded strings.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* doc/lispref/strings.texi (Creating Strings): Ditto.
* lisp/emacs-lisp/subr-x.el (string-slice): Remove.
|
| | |
| | |
| | |
| | |
| | | |
`lisp-outline-level` assumes the match-data is that set by
`outline-regexp`.
|