]> code.delx.au - gnu-emacs/commitdiff
Improve documentation of byte-code objects
authorEli Zaretskii <eliz@gnu.org>
Sat, 2 Apr 2016 12:13:00 +0000 (15:13 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 2 Apr 2016 12:13:00 +0000 (15:13 +0300)
* doc/lispref/compile.texi (Byte-Code Objects): Document the
integer format of the argument descriptor.  (Bug#23061)

doc/lispref/compile.texi

index f7fed5e18d2118cb4d3e78685c7487b27d769b5a..c943a6a29c19a4649dd3efab5e4ab6da539fb570 100644 (file)
@@ -533,8 +533,19 @@ there is no maximum number, but only the first six elements have any
 normal use.  They are:
 
 @table @var
-@item arglist
-The list of argument symbols.
+@item argdesc
+The descriptor of the arguments.  This can either be a list of
+arguments, as described in @ref{Argument List}, or an integer encoding
+the required number of arguments.  In the latter case, the value of
+the descriptor specifies the minimum number of arguments in the bits
+zero to 6, and the maximum number of arguments in bits 8 to 14.  If
+the argument list uses @code{&rest}, then bit 7 is set; otherwise it's
+cleared.
+
+If @var{argdesc} is a list, the arguments will be dynamically bound
+before executing the byte code.  If @var{argdesc} is an integer, the
+arguments will be instead pushed onto the stack of the byte-code
+interpreter, before executing the code.
 
 @item byte-code
 The string containing the byte-code instructions.
@@ -562,11 +573,11 @@ representation.  It is the definition of the command
 @code{backward-sexp}.
 
 @example
-#[(&optional arg)
-  "^H\204^F^@@\301^P\302^H[!\207"
-  [arg 1 forward-sexp]
-  2
-  254435
+#[256
+  "\211\204^G^@@\300\262^A\301^A[!\207"
+  [1 forward-sexp]
+  3
+  1793299
   "^p"]
 @end example