diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 7b0f356f476..d5b00ad9a2c 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -2800,7 +2800,7 @@ disabled. (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) (put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp) (put 'byte-compile-error-on-warn 'safe-local-variable 'booleanp) -(put 'byte-compile-warnings 'safe-local-variable (lambda (v) (or (symbolp v) (null (delq nil (mapcar (lambda (x) (not (symbolp x))) v)))))) +(put 'byte-compile-warnings 'safe-local-variable (lambda (v) (or (symbolp v) (all #'symbolp v)))) (autoload 'byte-compile-warning-enabled-p "bytecomp" "\ Return non-nil if WARNING is enabled, according to `byte-compile-warnings'. @@ -5424,7 +5424,7 @@ A `cond*' construct is a series of clauses, and a clause normally has the form (CONDITION BODY...). CONDITION can be a Lisp expression, as in `cond'. -Or it can be one of`(bind* BINDINGS...)', `(match* PATTERN DATUM)', +Or it can be one of `(bind* BINDINGS...)', `(match* PATTERN DATUM)', or `(pcase* PATTERN DATUM)', `(bind* BINDINGS...)' means to bind BINDINGS (as if they were in `let*') @@ -5436,6 +5436,10 @@ and runs the body of the clause if the first binding's value is non-nil. For its patterns, see `match*'. The condition counts as true if PATTERN matches DATUM. +`(bind-and* BINDINGS...)' means to bind BINDINGS (as if they were in +`if-let*') for only the the body of the clause. If any expression +evaluates to nil, the condition counts as false. + `(pcase* PATTERN DATUM)' means to match DATUM against the pattern PATTERN, using the same pattern syntax as `pcase'. The condition counts as true if PATTERN matches DATUM. @@ -5455,7 +5459,84 @@ are passed along to the rest of the clauses in this `cond*' construct. \\[match*] for documentation of the patterns for use in `match*'. (fn &rest CLAUSES)" nil t) -(register-definition-prefixes "cond-star" '("cond*-" "match*")) +(autoload 'match* "cond-star" "\ +This specifies matching DATUM against PATTERN. +It is not really a Lisp function, and it is meaningful +only in the CONDITION of a `cond*' clause. + +`_' matches any value. +KEYWORD matches that keyword. +nil matches nil. +t matches t. +SYMBOL matches any value and binds SYMBOL to that value. + If SYMBOL has been matched and bound earlier in this pattern, + it matches here the same value that it matched before. +REGEXP matches a string if REGEXP matches it. + The match must cover the entire string from its first char to its last. +ATOM (meaning any other kind of non-list not described above) + matches anything `equal' to it. +(rx REGEXP) uses a regexp specified in s-expression form, + as in the function `rx', and matches the data that way. +(rx REGEXP SYM0 SYM1...) uses a regexp specified in s-expression form, + and binds the symbols SYM0, SYM1, and so on + to (match-string 0 DATUM), (match-string 1 DATUM), and so on. + You can use as many SYMs as regexp matching supports. + +\\=`OBJECT matches any value `equal' to OBJECT. +(cons CARPAT CDRPAT) + matches a cons cell if CARPAT matches its car and CDRPAT matches its cdr. +(list ELTPATS...) + matches a list if the ELTPATS match its elements. + The first ELTPAT should match the list's first element. + The second ELTPAT should match the list's second element. And so on. +(vector ELTPATS...) + matches a vector if the ELTPATS match its elements. + The first ELTPAT should match the vector's first element. + The second ELTPAT should match the vector's second element. And so on. +(cdr PATTERN) matches PATTERN with strict checking of cdrs. + That means that `list' patterns verify that the final cdr is nil. + Strict checking is the default. +(cdr-safe PATTERN) matches PATTERN with lax checking of cdrs. + That means that `list' patterns do not examine the final cdr. +(and CONJUNCTS...) matches each of the CONJUNCTS against the same data. + If all of them match, this pattern succeeds. + If one CONJUNCT fails, this pattern fails and does not try more CONJUNCTS. +(or DISJUNCTS...) matches each of the DISJUNCTS against the same data. + If one DISJUNCT succeeds, this pattern succeeds + and does not try more DISJUNCTs. + If all of them fail, this pattern fails. +(COND*-EXPANDER ...) + Here the car is a symbol that has a `cond*-expander' property + which defines how to handle it in a pattern. The property value + is a function. Trying to match such a pattern calls that + function with one argument, the pattern in question (including its car). + The function should return an equivalent pattern + to be matched instead. +(PREDICATE SYMBOL) + matches datum if (PREDICATE DATUM) is true, + then binds SYMBOL to DATUM. +(PREDICATE SYMBOL MORE-ARGS...) + matches datum if (PREDICATE DATUM MORE-ARGS...) is true, + then binds SYMBOL to DATUM. + MORE-ARGS... can refer to symbols bound earlier in the pattern. +(constrain SYMBOL EXP) + matches datum if the form EXP is true. + EXP can refer to symbols bound earlier in the pattern. + +(fn PATTERN DATUM)" nil t) +(autoload 'bind* "cond-star" "\ +This macro evaluates BINDINGS like `let*'. +It is not really a Lisp function, and it is meaningful +only in the CONDITION of a `cond*' clause. + +(fn &rest BINDINGS)" nil t) +(autoload 'bind-and* "cond-star" "\ +This macro evaluates BINDINGS like `if-let*'. +It is not really a Lisp function, and it is meaningful +only in the CONDITION of a `cond*' clause. + +(fn &rest BINDINGS)" nil t) +(register-definition-prefixes "cond-star" '("cond*-")) ;;; Generated autoloads from textmodes/conf-mode.el @@ -9632,7 +9713,7 @@ Turn on EDT Emulation." t) ;;; Generated autoloads from progmodes/eglot.el -(push '(eglot 1 18) package--builtin-versions) +(push '(eglot 1 19) package--builtin-versions) (define-obsolete-function-alias 'eglot-update #'eglot-upgrade-eglot "29.1") (autoload 'eglot "eglot" "\ Start LSP server for PROJECT's buffers under MANAGED-MAJOR-MODES. @@ -9974,6 +10055,73 @@ mode hooks. (make-obsolete 'elide-head 'elide-head-mode "29.1") (register-definition-prefixes "elide-head" '("elide-head-")) + +;;; Generated autoloads from emacs-lisp/elisp-scope.el + +(autoload 'elisp-scope-get-symbol-role-property "elisp-scope" "\ +Return value of property PROP for symbol role ROLE. + +(fn ROLE PROP)") +(autoload 'elisp-scope-set-symbol-role-property "elisp-scope" "\ +Set value of property PROP for symbol role ROLE to VALUE. + +(fn ROLE PROP VALUE)") +(autoload 'elisp-scope-symbol-role-p "elisp-scope" "\ +Check whether a symbol SYM is the name of a \"symbol role\". + +(fn SYM)") +(autoload 'elisp-scope-add-symbol-roles-to-describe-symbol "elisp-scope") +(autoload 'elisp-scope-describe-symbol-role "elisp-scope" "\ +Describe ROLE of a symbol. +Interactively, prompt for ROLE. + +(fn ROLE &rest _)" t) +(autoload 'elisp-scope-analyze-form "elisp-scope" "\ +Read and analyze code from STREAM, reporting findings via CALLBACK. + +Call CALLBACK for each analyzed symbol SYM with arguments ROLE, POS, +SYM, ID and DEF, where ROLE is a symbol that specifies the semantics of +SYM; POS is the position of SYM in STREAM; ID is an object that uniquely +identifies (co-)occurrences of SYM in the current defun; and DEF is the +position in which SYM is locally defined, or nil. If SYM is itself a +binding occurrence, then POS and DEF are equal. If SYM is not lexically +bound, then DEF is nil. + +If STREAM is nil, it defaults to the current buffer. When reading from +the current buffer, this function leaves point at the end of the form. + +This function recursively analyzes Lisp forms (HEAD . TAIL), usually +starting with a top-level form, by inspecting HEAD at each level: + +- If HEAD is a symbol with a non-nil `elisp-scope-analyzer' symbol + property, then the value of that property specifies a bespoke analzyer + function, AF, that is called as (AF HEAD . TAIL) to analyze the form. + See more details about writing analyzer functions below. + +- If HEAD satisfies `functionp', which means it is a function in the + running Emacs session, analzye the form as a function call. + +- If HEAD is a safe macro (see `elisp-scope-safe-macro-p'), expand it + and analyze the resulting form. + +- If HEAD is unknown, then the arguments in TAIL are ignored, unless + `elisp-scope-assume-func' is non-nil, in which case they are analyzed + as evaluated forms (i.e. HEAD is assumed to be a function). + +An analyzer (function specified via the `elisp-scope-analyzer' property) +can use the functions `elisp-scope-report-s', `elisp-scope-1' and +`elisp-scope-n' to analyze its arguments, and it can consult the +variable `elisp-scope-output-spec' to obtain the expected output spec of +the analyzed form. For example, the following is a suitable analyzer +for the `identity' function: + + (lambda (fsym arg) + (elisp-scope-report-s fsym \\='function) + (elisp-scope-1 arg elisp-scope-output-spec)) + +(fn CALLBACK &optional STREAM)") +(register-definition-prefixes "elisp-scope" '("elisp-scope-")) + ;;; Generated autoloads from progmodes/elixir-ts-mode.el @@ -10675,7 +10823,7 @@ Look at CONFIG and try to expand GROUP. ;;; Generated autoloads from erc/erc.el -(push '(erc 5 6 1 -4) package--builtin-versions) +(push '(erc 5 6 2 -4) package--builtin-versions) (dolist (symbol '( erc-sasl erc-spelling ; 29 erc-imenu erc-nicks)) ; 30 (custom-add-load symbol symbol)) @@ -13298,7 +13446,7 @@ lines. ;;; Generated autoloads from progmodes/flymake.el -(push '(flymake 1 4 1) package--builtin-versions) +(push '(flymake 1 4 3) package--builtin-versions) (autoload 'flymake-log "flymake" "\ Log, at level LEVEL, the message MSG formatted with ARGS. LEVEL is passed to `display-warning', which is used to display @@ -16624,44 +16772,7 @@ disabled. ;;; Generated autoloads from progmodes/hideshow.el -(defvar hs-special-modes-alist '((c-mode "{" "}" "/[*/]" nil nil) (c-ts-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (c++-ts-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (java-ts-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil) (js-ts-mode "{" "}" "/[*/]" nil) (mhtml-mode "{\\|<[^/>]*?" "}\\|]*[^/]>" "