qsave_program(+File, 
+Options)Saves the current state of the program to the file File. The 
result is a resource archive containing a saved state that expresses all 
Prolog data from the running program and all user-defined resources. 
Depending on the stand_alone option, the resource is headed 
by the emulator, a Unix shell script or nothing. Options is a 
list of additional options:
- local(+KBytes)
 - Limit for the local stack. See section 
2.4.3.
 
- global(+KBytes)
 - Limit for the global stack. See section 
2.4.3.
 
- trail(+KBytes)
 - Limit for the trail stack. See section 
2.4.3.
 
- goal(:Callable)
 - Initialization goal for the new executable (see -g).
 
- toplevel(:Callable)
 - Top-level goal for the new executable (see -t).
 
- init_file(+Atom)
 - Default initialization file for the new executable. See
-f.
 
- class(+Class)
 - If 
runtime, only read resources from the state (default). 
If
kernel, lock all predicates as system predicates. If
development, save the predicates in their current state and 
keep reading resources from their source (if present). See also resource/3. 
- autoload(+Boolean)
 - If 
true (default), run autoload/0 
first. 
- map(+File)
 - Dump a human-readable trace of what has been saved in File.
 
- op(+Action)
 - One of 
save (default) to save the current operator table or standard 
to use the initial table of the emulator. 
- stand_alone(+Boolean)
 - If 
true, the emulator is the first part of the state. If 
the emulator is started it will test whether a boot file (state) is 
attached to the emulator itself and load this state. Provided the 
application has all libraries loaded, the resulting executable is 
completely independent of the runtime environment or location where it 
was built. See also
section 2.10.2.4. 
- emulator(+File)
 - File to use for the emulator. Default is the running Prolog image.
 
- foreign(+Action)
 - If 
save, include shared objects (DLLs) into the saved 
state. See
current_foreign_library/2. 
If the program strip is available, this is first used to reduce 
the size of the shared object. If a state is started, use_foreign_library/1 
first tries to locate the foreign resource in the executable. When found 
it copies the content of the resource to a temporary file and loads it. 
If possible (Unix), the temporary object is deleted immediately after 
opening.181This option is 
experimental and currently disabled by default. It will become the 
default if it proves robust.