FunctionPackage: exclToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 9.0
Moderately revised from 8.2.
8.2 version

uncompile

Arguments: function-name

This function uncompiles the function named by function-name (which must be a symbol). That is, it replaces the compiled function object with an interpreted function object. This replacement will only succeed if the interpreted function information is available. (That is, this function does not analyze the compiled code and infer the Lisp source which produced it. Instead, it finds the original source code if it can, and uses that. If it cannot find the original source code, it will not succeed.)

This function will work if the following two conditions are true:

  1. the function was originally compiled with the compile function (as opposed to having been in a file that was compiled with compile-file and subsequently loaded); and
  2. the value of the variable *save-function-lambda-expression* was true when the compilation was done. (The initial value of that variable is nil so unless the value is changed, uncompile may not work.)

uncompile will also succeed if source debug information for the function has been stored, which will happen if the compiler switch save-source-level-debug-info-switch was true when the function was compiled. For functions de3fined in files, if source file recording was not enabled when the fasl file associated with the function was loaded, the user might be prompted for the source file location. If source file information (and source level debugging information) were enabled, the system will find the source (assuming the necessary files still exist and are accessible). Source file recording is enabled when *record-source-file-info* and *load-source-file-info* are both true.

uncompile only works for function-names that are symbols, not function-specs.


Copyright (c) 1998-2015, Franz Inc. Oakland, CA., USA. All rights reserved.
This page has had moderate revisions compared to the 8.2 page.
Created 2010.1.21.

ToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 9.0
Moderately revised from 8.2.
8.2 version