diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-04-07 18:54:40 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-04-07 18:54:40 -0700 |
commit | a2b3fea957440b8358d3632a4a05e41dee964b5d (patch) | |
tree | a6ef4cf0ba807dfad9ae91b4bfde1935dc999a5f /doc | |
parent | a614cd416c5dd71702428a008992589395a722fc (diff) | |
download | emacs-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.texi | 37 | ||||
-rw-r--r-- | doc/lispref/sequences.texi | 23 |
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 |