|IDL Reference Guide: Procedures and Functions|
The RESOLVE_ALL procedure iteratively resolves (by compiling) any uncompiled procedures or functions that are called in any already-compiled procedure or function. The process ends when there are no unresolved routines left to compile. If an unresolved procedure or function is not in the IDL search path, RESOLVE_ALL exits with an error, and no additional routines are compiled.
RESOLVE_ALL is of special interest when using SAVE to construct an IDL SAVE file containing the compiled code for a package of routines. If you are constructing such a SAVE file and it contains calls to built-in IDL system functions that are not present under all operating systems (e.g., IOCTL), you must make sure to use FORWARD_FUNCTION to tell IDL that these names are functions. Otherwise, IDL may interpret them as arrays and generate unintended results. If you are creating a SAVE file that relies upon iTools components, you must use ITRESOLVE instead of RESOLVE_ALL to create a valid SAVE file.
RESOLVE_ALL does not resolve procedures or functions that are called via quoted strings such as CALL_PROCEDURE, CALL_FUNCTION, or EXECUTE, or in keywords that can contain procedure names such as TICKFORMAT or EVENT_PRO. You must manually compile these routines if they are not called normally elsewhere.
Similarly, RESOLVE_ALL does not resolve widget event handler procedures based on a call to the widget routine that uses the event handler. In general, it is best to include the event handling routine in the same program file as the widget creation routine—building widget programs in this way ensures that RESOLVE_ALL will "catch" the event handler for a widget application.
This routine is written in the IDL language. Its source code can be found in the file
resolve_all.pro in the
lib subdirectory of the IDL distribution.
RESOLVE_ALL [, CLASS=string] [, /CONTINUE_ON_ERROR] [, /QUIET] [, RESOLVE_EITHER=string] [, RESOLVE_FUNCTION=string] [, RESOLVE_PROCEDURE=string] [, SKIP_ROUTINES=string] [, UNRESOLVED=variable]
To properly resolve routines, make sure you run RESOLVE_ALL in an IDL session in which no compilation errors have occurred. This is important because if IDL has previously attempted (and failed) to compile a routine, that routine will be added to IDL's list of user-defined routines as an uncompiled routine. A subsequent call to RESOLVE_ALL will attempt to compile the uncompiled routine, potentially causing another error.
You can ensure that an IDL session is "clean" either by exiting and restarting IDL or by issuing the .RESET_SESSION executive command.
Set this keyword to a string or string array containing object class names.
RESOLVE_ALL's rules for finding uncompiled functions and procedures are not able to find object definitions or methods, because those things are not known to IDL until the object classes are actually instantiated and the methods called. However, if the CLASS keyword is set, RESOLVE_ALL will ensure that the
*__define.pro files for the specified classes and their superclasses are compiled and executed. RESOLVE_ALL then locates all methods for the specified classes and their superclasses, and makes sure they are also compiled.
Set this keyword to allow continuation upon error.
Set this keyword to suppress informational messages.
Set this keyword to a string or string array of routine names to resolve. Use this keyword instead of RESOLVE_FUNCTION or RESOLVE_PROCEDURE if you do not know the type of the routine being resolved. If the routines are already compiled, they are not recompiled.
Set this keyword to a string or string array of function names to resolve. If the functions are already compiled, they are not recompiled.
Set this keyword to a string or string array of procedure names to resolve. If the procedures are already compiled, they are not recompiled.
Set this keyword to a string array containing the names of routines not to resolve. Using this keyword is useful when a library file containing the designated routines will be later included.
Set this keyword to a variable that will contain the names of the unresolved procedures and functions if CONTINUE_ON_ERROR is set. Routines in the SKIP_ROUTINES list are also included in the result.
.COMPILE, RESOLVE_ROUTINE, ROUTINE_INFO
IDL Online Help (March 06, 2007)