Macro | Package: excl | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## defadvice

Arguments: fspec where &rest forms

Starting in Allegro CL release 6.0, the new fwrapper facility, described in fwrappers-and-advice.htm, replaces the advice facility, and continued use of the advice facility is deprecated.

This macro allows advice to be defined in a format similar to a function definition (with defun).

fspec must name a function. It is typically a symbol but can be any function name, as in advise. fspec is not evaluated.

where is either a symbol or a list. If it is a symbol, it can either be the name of the advice or the class. If where is one of `:before`, `:around`, or `:after`, it is interpreted as the class. Any other symbol is interpreted as a name. When where is a symbol, the position of the advice defaults to `nil`. When where defines the name, the class of the advice defaults to `:after`. When where is the class, the name of the advice defaults to `nil`.

If where is a list, the first element (if there is one) is interpreted as the name, the second element as the class, and the third element, if there is one, as the position. If there is no second element, or the second element is `nil`, the class will be `:after`. Please refer to the definition of advise for information on the interpretation and behavior of the class, name and position of advice.

forms are Lisp forms which will be evaluated as if in a progn. Warning: forms cannot be the single form `nil`. If you want the single form `nil` (in, for example, :around advice to not call the function and return `nil`), specify `(progn nil)` instead.

See also fwrappers-and-advice.htm for general information on the new fwrapper facility and the older, now deprecated, advice facility in Allegro CL.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version