17.05.2015 Views

zl:1 - FTP

zl:1 - FTP

zl:1 - FTP

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

99 flavor:compose-handler-source<br />

flavor: compose-handler-source generic flavor-name &key env Function<br />

Finds the methods that handle the specified generic operation on instances<br />

of the flavor specified by flavor-name, and finds the source code of the combined<br />

method (if any). Seven values are returned:<br />

form<br />

A Lisp form which is the body of the combined method.<br />

If there isn't actually a combined method, this is nil.<br />

handler-function-spec<br />

The name of the handler, which can be a combined<br />

method, a single method, or an instance-variable accessor.<br />

combined-method-list<br />

A list of function specs of all the methods called,. in order<br />

of execution; the order is approximate because of<br />

wrappers.<br />

wrapper-sources Information that the combined method requires so that<br />

Flavors knows when it needs to be recompiled.<br />

lambda-list A list describing what the arguments of the combined<br />

method should be (not including the three interal arguments<br />

automatically given to all methods).<br />

method-combination<br />

error<br />

A list of the method combination type and parameters to<br />

it.<br />

nil normally, otherwise a string describing an error that<br />

occurred.<br />

flavor:compose-handler-source is generally slower than<br />

flavor: compose-handler, since the latter function can usually take advantage<br />

of pre-computed information present in virtual memory.<br />

The env parameter to flavor:compose-handler and<br />

flavor:compose-handler-source can be used to insert hypotheses into their<br />

computations. If env is nil, the generics, flavors, and methods in the running<br />

world are used. env can be an alist of modifications to the running<br />

world; each element takes the form:<br />

(name flavor-structure generic-structure (method definition) ... )<br />

Everything except name can be nil. name is the name of a generic, or a<br />

flavor, or both. flavor-structure is nil or the internal structure that<br />

describes the flavor. generic-structure is nil or the internal structure that<br />

describes the generic function. The remaining elements of an alist element<br />

refer to methods of the flavor named name; method is a function spec and<br />

definition is nil if that method is to be ignored, t if the method is to be assumed<br />

to exist, or the actual definition (expander function) in the case of a<br />

wrapper.<br />

I

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!