aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref/objects.texi
diff options
context:
space:
mode:
authorLars Brinkhoff2017-04-05 08:42:25 +0200
committerLars Brinkhoff2017-04-06 20:30:28 +0200
commit4753f3f0af33c5defe3a340f82265db6a6863030 (patch)
treead48b75c21ba2c822904971bf4909ba0626f4014 /doc/lispref/objects.texi
parente3eea9a4b449c87a3bb022098a9e6f1bda805cb3 (diff)
downloademacs-4753f3f0af33c5defe3a340f82265db6a6863030.tar.gz
emacs-4753f3f0af33c5defe3a340f82265db6a6863030.zip
Update documentation for type semantics of records.
* objects.texi (Record Type): improve description of what `type-of' returns for records. (Type Descriptors): new section. * elisp.texi: reference it. * records.texi (Records): reference it. Document behaviour when type slot is a record. * alloc.c (Fmake_record, Frecord): mention type desciptors.
Diffstat (limited to 'doc/lispref/objects.texi')
-rw-r--r--doc/lispref/objects.texi16
1 files changed, 15 insertions, 1 deletions
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 90cafbef642..cc9320987f2 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -156,6 +156,7 @@ latter are unique to Emacs Lisp.
156* Primitive Function Type:: A function written in C, callable from Lisp. 156* Primitive Function Type:: A function written in C, callable from Lisp.
157* Byte-Code Type:: A function written in Lisp, then compiled. 157* Byte-Code Type:: A function written in Lisp, then compiled.
158* Record Type:: Compound objects with programmer-defined types. 158* Record Type:: Compound objects with programmer-defined types.
159* Type Descriptors:: Objects holding information about types.
159* Autoload Type:: A type used for automatically loading seldom-used 160* Autoload Type:: A type used for automatically loading seldom-used
160 functions. 161 functions.
161* Finalizer Type:: Runs code when no longer reachable. 162* Finalizer Type:: Runs code when no longer reachable.
@@ -1359,6 +1360,18 @@ types that are not built into Emacs.
1359 1360
1360 @xref{Records}, for functions that work with records. 1361 @xref{Records}, for functions that work with records.
1361 1362
1363@node Type Descriptors
1364@subsection Type Descriptors
1365
1366 A @dfn{type decriptor} is a @code{record} which holds information
1367about a type. Slot 1 in the record must be a symbol naming the type.
1368@code{type-of} relies on this to return the type of @code{record}
1369objects. No other type descriptor slot is used by Emacs; they are
1370free for use by Lisp extensions.
1371
1372An example of a type descriptor is any instance of
1373@code{cl-structure-class}.
1374
1362@node Autoload Type 1375@node Autoload Type
1363@subsection Autoload Type 1376@subsection Autoload Type
1364 1377
@@ -2037,7 +2050,8 @@ This function returns a symbol naming the primitive type of
2037@code{marker}, @code{mutex}, @code{overlay}, @code{process}, 2050@code{marker}, @code{mutex}, @code{overlay}, @code{process},
2038@code{string}, @code{subr}, @code{symbol}, @code{thread}, 2051@code{string}, @code{subr}, @code{symbol}, @code{thread},
2039@code{vector}, @code{window}, or @code{window-configuration}. 2052@code{vector}, @code{window}, or @code{window-configuration}.
2040However, if @var{object} is a record, its first slot is returned. 2053However, if @var{object} is a record, the type specified by its first
2054slot is returned; @ref{Records}.
2041 2055
2042@example 2056@example
2043(type-of 1) 2057(type-of 1)