summaryrefslogtreecommitdiff
path: root/lispref/functions.texi
diff options
context:
space:
mode:
authorLuc Teirlinck <teirllm@auburn.edu>2005-05-05 23:12:19 +0000
committerLuc Teirlinck <teirllm@auburn.edu>2005-05-05 23:12:19 +0000
commit8989fec42c9d68b5bc4e680cfb6ccfdcebcee45a (patch)
tree58e1971cbe149e5934737c1fdc078ce368b5ccd3 /lispref/functions.texi
parent53420faaaf930347bd61bd9b4e6941a3a6df2e5d (diff)
downloademacs-8989fec42c9d68b5bc4e680cfb6ccfdcebcee45a.tar.gz
(Functions): Add "Obsolete Functions" to menu.
(Defining Functions): Add xref. (Obsolete Functions): New node. (Function Safety): Standardize capitalization of section title.
Diffstat (limited to 'lispref/functions.texi')
-rw-r--r--lispref/functions.texi43
1 files changed, 41 insertions, 2 deletions
diff --git a/lispref/functions.texi b/lispref/functions.texi
index 26c2449fee6..bcdfc95cc1c 100644
--- a/lispref/functions.texi
+++ b/lispref/functions.texi
@@ -21,6 +21,7 @@ define them.
* 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 @@ which file defined the function, just like @code{defun}
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 @@ file to redefine a function defined elsewhere. If you want to modify
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 @@ Inline functions can be used and open-coded later on in the same file,
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