In order to locate all relevant files, the following directory structure should be used.
myapp.exe sprt4-0-0.dll sp-4.0.0\ +--- bin\ | +--- sprt.sav +--- library\ +--- <files from %SP_PATH%\library>
If support for multiple SICStus instances is needed, the run-times named e.g. sprt4-0-0_instance_01_.dll need to be available as well, in the same place as sprt4-0-0.dll.
myapp.exe is typically created by a call to spld:
% spld --main=user [...] -o ./myapp.exe
If the directory containing sprt4-0-0.dll contains a directory
called sp-4.0.0
, SICStus assumes that it is part of a runtime system
as described in the picture below. The (extended) runtime library,
sprt.sav (spre.sav), is then looked up in the directory
(sp-4.0.0/bin), as in the picture. Furthermore, the initial
library_directory/1
fact will be set to the same directory with
sp-4.0.0/library
appended.
The directory structure under library/
should look like in a
regularly installed SICStus, including the platform-specific subdirectory
(x86-win32-nt-4
in this case). If your application needs to use
library(system)
and library(random)
, your directory
structure may look like:
myapp.exe sprt4-0-0.dll sp-4.0.0\ +--- bin\ | +--- sprt.sav +--- library\ +--- random.po +--- system.po +--- x86-win32-nt-4 \ +--- random.dll +--- system.dll
The sp*
files can also be put somewhere else in order to be
shared by several applications provided the sprt4-0-0.dll can be
located by the DLL search.
Naming the files with version number enables applications using
different SICStus versions to install the sp*
files in the same
directory.
When a runtime system is redistributed to third parties, only the following files may be included in the distribution. All filenames are relative to %SP_PATH%: