Add (:documentation <form>) for dynamically-generated docstrings
commitad5a7c86d017ce8e9ff1312331ef09181be823bf
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 5 Feb 2015 19:28:16 +0000 (5 14:28 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 5 Feb 2015 19:28:16 +0000 (5 14:28 -0500)
treef8382a7c42f6844bacf48f03d9480ba8134ba6cc
parent10927c1a0f39d527d9ea1fc4605a0ef400bdff4a
Add (:documentation <form>) for dynamically-generated docstrings

* 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'.
etc/NEWS
lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cconv.el
src/ChangeLog
src/eval.c