diff lispref/functions.texi @ 62096:8e4e8735ffb3

(Functions): Add "Obsolete Functions" to menu. (Defining Functions): Add xref. (Obsolete Functions): New node. (Function Safety): Standardize capitalization of section title.
author Luc Teirlinck <teirllm@auburn.edu>
date Thu, 05 May 2005 23:12:19 +0000
parents 88341b374ad0
children f0e4b6c7de96 62afea0771d8
line wrap: on
line diff
--- a/lispref/functions.texi	Thu May 05 23:05:00 2005 +0000
+++ b/lispref/functions.texi	Thu May 05 23:12:19 2005 +0000
@@ -21,6 +21,7 @@
 * Anonymous Functions::   Lambda expressions are functions with no names.
 * Function Cells::        Accessing or setting the function definition
                             of a symbol.
+* Obsolete Functions::    Declaring functions obsolete.
 * Inline Functions::	  Defining functions that the compiler will open code.
 * Function Safety::       Determining whether a function is safe to call.
 * Related Topics::        Cross-references to specific Lisp primitives
@@ -601,7 +602,7 @@
 
 By contrast, in programs that manipulate function definitions for other
 purposes, it is better to use @code{fset}, which does not keep such
-records.
+records.  @xref{Function Cells}.
 @end defun
 
   You cannot create a new primitive function with @code{defun} or
@@ -1150,6 +1151,44 @@
 a function defined by another package, it is cleaner to use
 @code{defadvice} (@pxref{Advising Functions}).
 
+@node Obsolete Functions
+@section Declaring Functions Obsolete
+
+You can use @code{make-obsolete} to declare a function obsolete.  This
+indicates that the function may be removed at some stage in the future.
+
+@defun make-obsolete function new &optional when
+This function makes the byte compiler warn that the function
+@var{function} is obsolete.  If @var{new} is a symbol, the warning
+message says to use @var{new} instead of @var{function}.  @var{new}
+does not need to be an alias for @var{function}; it can be a different
+function with similar functionality.  If @var{new} is a string, it is
+the warning message.
+
+If provided, @var{when} should be a string indicating when the function
+was first made obsolete---for example, a date or a release number.
+@end defun
+
+You can define a function as an alias and declare it obsolete at the
+same time using the macro @code{define-obsolete-function-alias}.
+
+@defmac define-obsolete-function-alias function new &optional when docstring
+This macro marks the function @var{function} obsolete and also defines
+it as an alias for the function @var{new}.  A typical call has the form:
+
+@example
+(define-obsolete-function-alias 'old-fun 'new-fun "22.1" "Doc.")
+@end example
+
+@noindent
+which is equivalent to the following two lines of code:
+
+@example
+(defalias 'old-fun 'new-fun "Doc.")
+(make-obsolete 'old-fun 'new-fun "22.1")
+@end example
+@end defmac
+
 @node Inline Functions
 @section Inline Functions
 @cindex inline functions
@@ -1186,7 +1225,7 @@
 following the definition, just like macros.
 
 @node Function Safety
-@section Determining whether a function is safe to call
+@section Determining whether a Function is Safe to Call
 @cindex function safety
 @cindex safety of functions