From 3fab7f1d971d68a83aaaf3762d9d6986bc885d50 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Sat, 19 Apr 2014 19:50:36 -0700 Subject: [PATCH] Tweak documentation for previous change --- doc/misc/ChangeLog | 4 ++++ doc/misc/cl.texi | 13 +++++++++---- etc/ChangeLog | 2 +- etc/NEWS | 2 ++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 4ad0293ee9b..949552091e5 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2014-04-20 Daniel Colascione + + * cl.texi (Declarations): Document changes to `cl-the' and defstruct functions. + 2014-04-17 Paul Eggert * Makefile.in (infoclean): Be consistent about reporting failures. diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 1c202961889..78bc8fb9479 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -2627,10 +2627,10 @@ In this package, @code{cl-locally} is no different from @code{progn}. @end defmac @defmac cl-the type form -Type information provided by @code{cl-the} is ignored in this package; -in other words, @code{(cl-the @var{type} @var{form})} is equivalent to -@var{form}. Future byte-compiler optimizations may make use of this -information. +@code{cl-the} returns the value of @code{form}, first checking (if +optimization settings permit) that it is of type @code{type}. Future +byte-compiler optimizations may also make use of this information to +improve runtime efficiency. For example, @code{mapcar} can map over both lists and arrays. It is hard for the compiler to expand @code{mapcar} into an in-line loop @@ -4255,6 +4255,7 @@ This function returns the underlying data structure for @code{struct-type}, which is a symbol. It returns @code{vector} or @code{list}, or @code{nil} if @code{struct-type} is not actually a structure. +@end defun @defun cl-struct-slot-info struct-type This function returns a list of slot descriptors for structure @@ -4263,6 +4264,7 @@ where @code{name} is the name of the slot and @code{opts} is the list of slot options given to @code{defstruct}. Dummy entries represent the slots used for the struct name and that are skipped to implement @code{:initial-offset}. +@end defun @defun cl-struct-slot-offset struct-type slot-name Return the offset of slot @code{slot-name} in @code{struct-type}. The @@ -4270,6 +4272,7 @@ returned zero-based slot index is relative to the start of the structure data type and is adjusted for any structure name and :initial-offset slots. Signal error if struct @code{struct-type} does not contain @code{slot-name}. +@end defun @defun cl-struct-slot-value struct-type slot-name inst Return the value of slot @code{slot-name} in @code{inst} of @@ -4278,6 +4281,7 @@ Return the value of slot @code{slot-name} in @code{inst} of @code{setf} place. @code{cl-struct-slot-value} uses @code{cl-struct-slot-offset} internally and can signal the same errors. +@end defun @defun cl-struct-set-slot-value struct-type slot-name inst value Set the value of slot @code{slot-name} in @code{inst} of @@ -4286,6 +4290,7 @@ Set the value of slot @code{slot-name} in @code{inst} of which to set the given slot. Return @code{value}. @code{cl-struct-slot-value} uses @code{cl-struct-set-slot-offset} internally and can signal the same errors. +@end defun @node Assertions @chapter Assertions and Errors diff --git a/etc/ChangeLog b/etc/ChangeLog index de57d81a685..77294aae776 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,6 +1,6 @@ 2014-04-20 Daniel Colascione - * NEWS: Mention new struct functions. + * NEWS: Mention new struct functions and changes to `cl-the'. 2014-04-17 Daniel Colascione diff --git a/etc/NEWS b/etc/NEWS index c3b2e502f01..06fe4a298fa 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -90,6 +90,8 @@ active region handling. ** deactivate-mark is now buffer-local. +** cl-the now asserts that its argument is of the given type. + * Lisp Changes in Emacs 24.5 -- 2.11.4.GIT