summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/misc/ChangeLog4
-rw-r--r--doc/misc/cl.texi13
-rw-r--r--etc/ChangeLog2
-rw-r--r--etc/NEWS2
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 <dancol@dancol.org>
+
+ * cl.texi (Declarations): Document changes to `cl-the' and defstruct functions.
+
2014-04-17 Paul Eggert <eggert@cs.ucla.edu>
* 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 <dancol@dancol.org>
- * NEWS: Mention new struct functions.
+ * NEWS: Mention new struct functions and changes to `cl-the'.
2014-04-17 Daniel Colascione <dancol@dancol.org>
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