summaryrefslogtreecommitdiff
path: root/doc/lispref/elisp.texi
diff options
context:
space:
mode:
authorLars Brinkhoff <lars@nocrew.org>2013-01-06 14:27:44 +0100
committerLars Brinkhoff <lars@nocrew.org>2017-04-04 08:23:46 +0200
commita2c33430292c79ac520100b1d0e8e7c04dfe426a (patch)
treec14abd179a8646449c1430f24762db3e2359886a /doc/lispref/elisp.texi
parent19b92cdfb04a025037d7388954b64468d6f54462 (diff)
downloademacs-a2c33430292c79ac520100b1d0e8e7c04dfe426a.tar.gz
Add record objects with user-defined types.
* src/alloc.c (allocate_record): New function. (Fmake_record, Frecord, Fcopy_record): New functions. (syms_of_alloc): defsubr them. (purecopy): Work with records. * src/data.c (Ftype_of): Return slot 0 for record objects, or type name if record's type holds class. (Frecordp): New function. (syms_of_data): defsubr it. Define `Qrecordp'. (Faref, Faset): Work with records. * src/fns.c (Flength): Work with records. * src/lisp.h (prec_type): Add PVEC_RECORD. (RECORDP, CHECK_RECORD, CHECK_RECORD_TYPE): New functions. * src/lread.c (read1): Add syntax for records. * src/print.c (PRINT_CIRCLE_CANDIDATE_P): Add RECORDP. (print_object): Add syntax for records. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-2): New test. * test/src/alloc-tests.el (record-1, record-2, record-3): New tests. * doc/lispref/elisp.texi, doc/lispref/objects.texi, doc/lispref/records.texi: Add documentation for records.
Diffstat (limited to 'doc/lispref/elisp.texi')
-rw-r--r--doc/lispref/elisp.texi7
1 files changed, 7 insertions, 0 deletions
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index e0bd337e53b..0f7efb6f187 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -180,6 +180,7 @@ To view this manual in other formats, click
* Sequences Arrays Vectors:: Lists, strings and vectors are called sequences.
Certain functions act on any kind of sequence.
The description of vectors is here as well.
+* Records:: Compound objects with programmer-defined types.
* Hash Tables:: Very fast lookup-tables.
* Symbols:: Symbols represent names, uniquely.
@@ -314,6 +315,7 @@ Programming Types
expression, more fundamental but less pretty.
* Primitive Function Type:: A function written in C, callable from Lisp.
* Byte-Code Type:: A function written in Lisp, then compiled.
+* Record Type:: Compound objects with programmer-defined types.
* Autoload Type:: A type used for automatically loading seldom-used
functions.
* Finalizer Type:: Runs code when no longer reachable.
@@ -418,6 +420,10 @@ Sequences, Arrays, and Vectors
* Bool-Vectors:: How to work with bool-vectors.
* Rings:: Managing a fixed-size ring of objects.
+Records
+
+* Record Functions:: Functions for records.
+
Hash Tables
* Creating Hash:: Functions to create hash tables.
@@ -1594,6 +1600,7 @@ Object Internals
@include lists.texi
@include sequences.texi
+@include records.texi
@include hash.texi
@include symbols.texi
@include eval.texi