run-prolognow prompts for a (Lisp) list of extra command line arguments, when invoked with a prefix argument, i.e. as C-U M-x run-prolog.
The change is largely backwards compatible with the following notable exceptions:
SP_RT_DIR, etc. are no longer set in the environment. This means that their value can no longer be obtained, e.g. from C code, by using
getenv()or similar functions. Instead,
SP_getenv()can be used for a similar effect.
process:process_create/[2,3]will no longer see
SP_APP_DIRet al. in their inherited environment. Instead it is now possible to explicitly pass environment variables to the sub-process using the new
SP_APP_PATH, the path to the executable,
SP_RT_DIR, the path to the SICStus runtime, and
SP_STARTUP_DIRthe initial working directory. See System Properties and Environment Variables in the SICStus Prolog Manual for more information.
SP_STARTUP_DIR, independently from the process’s working directory. By setting the system property
SP_ALLOW_CHDIRto ‘no’, SICStus can be told to never change the process’s working directory. These features are especially useful when embedding SICStus.
spio_t_simple_device_writeis now a
void const*instead of a plain
void *. This affects code that use
SP_create_stream()to create user-defined streams.
SP_get_list_n_codes()now use stricter input validation.
close/[1,2]) or flushed (
flush_output/1) if their contents is precious.
leaves/2option has been dropped, and the variable order must be the same on every path.
library(system)no longer depends on any foreign code so the
systemforeign resource is gone.
library(jasper): The SICStus (Java) working directory is now passed to Java (SICStus) when Java (SICStus) is started from SICStus (Java). Also, SICStus will not change the process’s working directory when started from Java.
library(bdb), is now built using Berkeley DB 4.8.24.