• Stefan Monnier's avatar
    Add (:documentation <form>) for dynamically-generated docstrings · ad5a7c86
    Stefan Monnier authored
    * lisp/emacs-lisp/bytecomp.el:
    (byte-compile-initial-macro-environment): Use macroexp-progn.
    (byte-compile-cl-warn): Don't silence use of cl-macroexpand-all.
    (byte-compile-file-form-defvar-function): Rename from
    byte-compile-file-form-define-abbrev-table.
    (defvaralias, byte-compile-file-form-custom-declare-variable): Use it.
    (byte-compile): Use byte-compile-top-level rather than
    byte-compile-lambda so we can compile non-values.
    (byte-compile-form): Add warnings for failed uses of lexical vars via
    quoted symbols.
    (byte-compile-unfold-bcf): Improve message for failed inlining.
    (byte-compile-make-closure): Handle new format of internal-make-closure
    for dynamically-generated docstrings.
    
    * lisp/emacs-lisp/cconv.el (cconv--convert-function):
    Add `docstring' argument.
    (cconv-convert): Use it to handle the new (:documentation ...) form.
    (cconv-analyze-form): Handle the new (:documentation ...) form.
    
    * src/eval.c (Ffunction): Handle the new (:documentation ...) form.
    (syms_of_eval): Declare `:documentation'.
    ad5a7c86
cconv.el 32.1 KB