User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cl:functions:disassemble [2019/07/14 17:00]
cl:functions:disassemble [2019/10/19 17:00] (current)
Line 1: Line 1:
 +====== Function DISASSEMBLE ======
 +
 +====Syntax====
 +  * **disassemble** //fn// → //​**[[CL:​Constant Variables:​nil]]**//​
 +
 +====Arguments and Values====
 +  * //fn// - an //​[[CL:​Glossary:​extended function designator]]//​ or a //​[[CL:​Glossary:​lambda expression]]//​.
 +
 +====Description====
 +The //​[[CL:​Glossary:​function]]//​ **disassemble** is a debugging aid that composes symbolic instructions or expressions in some //​[[CL:​Glossary:​implementation-dependent]]//​ language which represent the code used to produce the //​[[CL:​Glossary:​function]]//​ which is or is named by the argument //fn//. The result is displayed to //​[[CL:​Glossary:​standard output]]// in an //​[[CL:​Glossary:​implementation-dependent]]//​ format.
 +
 +If //fn// is a //​[[CL:​Glossary:​lambda expression]]//​ or //​[[CL:​Glossary:​interpreted function]]//,​ it is compiled first and the result is disassembled.
 +
 +If the //fn// //​[[CL:​Glossary:​designator]]//​ is a //​[[CL:​Glossary:​function name]]//, the //​[[CL:​Glossary:​function]]//​ that it //​[[CL:​Glossary:​names]]//​ is disassembled.
 +
 +(If that //​[[CL:​Glossary:​function]]//​ is an //​[[CL:​Glossary:​interpreted function]]//,​ it is first compiled but the result of this implicit compilation is not installed.)
 +
 +====Examples====
 +<​blockquote>​
 +([[CL:​Macros:​defun]] f (a) ([[CL:​Functions:​math-one-plus|1+]] a)) <​r>​F</​r>​
 +([[CL:​Functions:​eq]] ([[CL:​Functions:​symbol-function]] 'f)
 +    ([[CL:​Special Operators:​progn]] ​
 +      (disassemble 'f)
 +      ([[CL:​Functions:​symbol-function]] 'f)))
 +<​r>//​[[CL:​Glossary:​true]]//</​r>​
 +</​blockquote>​
 +
 +====Side Effects====
 +None.
 +
 +====Affected By====
 +**[[CL:​Variables:​*standard-output*]]**.
 +
 +====Exceptional Situations====
 +Should signal an error of type type-error if //fn// is not an //​[[CL:​Glossary:​extended function designator]]//​ or a //​[[CL:​Glossary:​lambda expression]]//​.
 +
 +====See Also====
 +None.
 +
 +====Notes====
 +None.
 +
 +\issue{FUNCTION-NAME:​LARGE} \issue{DISASSEMBLE-SIDE-EFFECT:​DO-NOT-INSTALL} \issue{DISASSEMBLE-SIDE-EFFECT:​DO-NOT-INSTALL} \issue{DOCUMENTATION-FUNCTION-TANGLED:​REQUIRE-ARGUMENT}