summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-04-07 18:54:40 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2017-04-07 18:54:40 -0700
commita2b3fea957440b8358d3632a4a05e41dee964b5d (patch)
treea6ef4cf0ba807dfad9ae91b4bfde1935dc999a5f /doc
parenta614cd416c5dd71702428a008992589395a722fc (diff)
downloademacs-a2b3fea957440b8358d3632a4a05e41dee964b5d.tar.gz
Deprecate copy-record in favor of copy-sequence
Since copy-sequence seems to be needed anyway for records, have it work on records, and remove copy-record as being superfluous. * doc/lispref/records.texi (Records, Record Functions): * lisp/emacs-lisp/cl-macs.el (cl-defstruct): * lisp/emacs-lisp/eieio.el (make-instance, clone): * test/src/alloc-tests.el (record-3): Use copy-sequence, not copy-record, to copy records. * doc/lispref/sequences.texi (Sequence Functions) (Array Functions): Document that aref and copy-sequence work on records. * etc/NEWS: Omit copy-record. * src/alloc.c (Fcopy_record): Remove. * src/data.c (Faref): Document that arg can be a record. * src/fns.c (Fcopy_sequence): Copy records, too.
Diffstat (limited to 'doc')
-rw-r--r--doc/lispref/records.texi37
-rw-r--r--doc/lispref/sequences.texi23
2 files changed, 14 insertions, 46 deletions
diff --git a/doc/lispref/records.texi b/doc/lispref/records.texi
index 2533a8a4ca1..7cc36f14068 100644
--- a/doc/lispref/records.texi
+++ b/doc/lispref/records.texi
@@ -13,8 +13,9 @@ underlying representation of @code{cl-defstruct} and @code{defclass}
instances.
Internally, a record object is much like a vector; its slots can be
-accessed using @code{aref}. However, the first slot is used to hold
-its type as returned by @code{type-of}. Also, in the current
+accessed using @code{aref} and it can be copied using
+@code{copy-sequence}. However, the first slot is used to hold its
+type as returned by @code{type-of}. Also, in the current
implementation records can have at most 4096 slots, whereas vectors
can be much larger. Like arrays, records use zero-origin indexing:
the first slot has index 0.
@@ -74,38 +75,6 @@ This function returns a new record with type @var{type} and
@end example
@end defun
-@defun copy-record record
-This function returns a shallow copy of @var{record}. The copy is the
-same type as the original record, and it has the same slots in the
-same order.
-
- Storing a new slot into the copy does not affect the original
-@var{record}, and vice versa. However, the slots of the new record
-are not copies; they are identical (@code{eq}) to the slots of the
-original. Therefore, changes made within these slots, as found via
-the copied record, are also visible in the original record.
-
-@example
-@group
-(setq x (record 'foo 1 2))
- @result{} #s(foo 1 2)
-@end group
-@group
-(setq y (copy-record x))
- @result{} #s(foo 1 2)
-@end group
-
-@group
-(eq x y)
- @result{} nil
-@end group
-@group
-(equal x y)
- @result{} t
-@end group
-@end example
-@end defun
-
@node Backward Compatibility
@section Backward Compatibility
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index 2c88ee38cb1..93e8fa8a5fa 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -151,20 +151,19 @@ This function generalizes @code{aref} (@pxref{Array Functions}) and
@code{nth} (@pxref{Definition of nth}).
@end defun
-@defun copy-sequence sequence
+@defun copy-sequence seqr
@cindex copying sequences
-This function returns a copy of @var{sequence}. The copy is the same
-type of object as the original sequence, and it has the same elements
-in the same order.
+This function returns a copy of @var{seqr}, which should be either a
+sequence or a record. The copy is the same type of object as the
+original, and it has the same elements in the same order.
Storing a new element into the copy does not affect the original
-@var{sequence}, and vice versa. However, the elements of the new
-sequence are not copies; they are identical (@code{eq}) to the elements
+@var{seqr}, and vice versa. However, the elements of the copy
+are not copies; they are identical (@code{eq}) to the elements
of the original. Therefore, changes made within these elements, as
-found via the copied sequence, are also visible in the original
-sequence.
+found via the copy, are also visible in the original.
-If the sequence is a string with text properties, the property list in
+If the argument is a string with text properties, the property list in
the copy is itself a copy, not shared with the original's property
list. However, the actual values of the properties are shared.
@xref{Text Properties}.
@@ -1148,10 +1147,10 @@ vector, a string, a bool-vector or a char-table).
@end example
@end defun
-@defun aref array index
+@defun aref arr index
@cindex array elements
-This function returns the @var{index}th element of @var{array}. The
-first element is at index zero.
+This function returns the @var{index}th element of the array or record
+@var{arr}. The first element is at index zero.
@example
@group