PSL supports shared libraries of PSL user-defined functions. PSL libraries are binary files that can be loaded into another PSL program using the PSL
requires statement. The PSL libraries can be loaded using the following methods:
- statically--mixing the library object code and symbol table into the PSL program to create a larger binary
- dynamically--requesting at PSL program startup that the PATROL Agent find the required library in its repository of libraries (that is, probably in the KM or in the directory specified by the PATROL_HOME environment variable).
If the PATROL Agent cannot find the library, the program execution fails.
If the PATROL Agent finds the library, it dynamically loads it as a shared library. Shared libraries are loaded only once by the PATROL Agent; all PSL processes using that library (with dynamic loading) share the library object code and constants but have their own copy of library variables. Once loaded, libraries are not unloaded.