3.2 Platform Specific Notes

This section contains some installation notes that are platform specific under UNIX.

Solaris 8 SPARC 64-bit
You cannot install (or build) the 64 bit version of SICStus using gcc 2.x. You need to use the Sun Workshop compiler, version 5.0 or later. InstallSICStus will try to find it during installation but if that fails, you can set the environment variable CC to e.g. /opt/SUNWspro/bin/cc before invoking InstallSICStus. Recent versions of gcc, i.e. gcc 3.x or 4.x, do seem to work. To install with gcc, set the environment variable CC appropriately before invoking InstallSICStus.
Solaris Intel 64-bit, SPARC 64-bit
The following libraries are not supported: library(bdb), library(tcltk).
Solaris 8
The default thread library in Solaris 8 is incompatible with SICStus. The “Alternate Thread Library (T2)” must be used instead. This is ensured automatically for executables built with the spld tool. It is not ensured automatically when loading SICStus into Java or other programs not built by spld. See http://developers.sun.com/solaris/articles/alt_thread_lib.html for further information.

Problems caused by the old thread library include:

This problem does not affect Solaris 9 or later.

Mac OS X
Mac OS X 10.5, 10.6, 10.7 and Mac OS X 10.8 are supported on Intel 32-bit and 64-bit. Mac OS X 10.6 or later is recommended, due to deficiencies in Mac OS X 10.5 that affects the SICStus I/O sub-system.

An executable built with spld will only work if there is a properly configured subdirectory sp-4.2.3 in the same directory as the executable; see Runtime Systems on UNIX Target Machines.

Alternatively, the option --wrapper can be passed to spld. In this case a wrapper script is created that will set up various environment variables and invoke the real executable.

When using third-party products like BDB, you may need to set up DYLD_LIBRARY_PATH so that the Mac OS X dynamic linker can find them. When using the SICStus development executable (sicstus), this should happen automatically, if the third-party products have been installed in the standard locations; see Berkeley DB on Mac OS X.

Sometimes, the default limit on the process's data-segment is unreasonably small, which may lead to unexpected memory allocation failures. To check this limit, do:

          bash$ ulimit -d
          6144

This indicates that the maximum size of the data-segment is only 6 Mb. To remove the limit, do:

          bash$ ulimit -d unlimited
          bash$ ulimit -d
          unlimited
Please note: ulimit is a shell built-in in bash. It may have a different name in other shells.

SICStus will set the data segment size of itself according to the value of the system property (or environment variable) SP_ULIMIT_DATA_SEGMENT_SIZE. If you set this variable in the initialization file for your shell you do not have to use the ulimit command when SICStus is started from the shell. See System Properties and Environment Variables for more information about SP_ULIMIT_DATA_SEGMENT_SIZE. This system property is set automatically when SICStus is invoked from the SICStus Prolog IDE (SPIDER), from Emacs (via M-x run-prolog), or from the launcher script SICStus Prolog 4.2.3.term installed in Applications.

File names are encoded in UTF-8 under Mac OS X. This is handled correctly by SICStus.

If SICStus encounters a file name that is not encoded in UTF-8, it will silently ignore the file or directory. This can happen on file systems where files have been created by some other OS than Mac OS X, e.g. on network file servers accessed by other UNIX flavors or Windows.

The default character encoding for the SICStus standard streams is based on the current locale which is POSIX/C, i.e. US ASCII, by default on Mac OS X. This will come in conflict with the default character encoding for the Terminal application which is UTF-8. A clickable launcher for SICStus is optionally installed in the Applications folder. This launcher will set the character encoding of the standard streams to UTF-8 for both the Terminal and SICStus. The character encoding is set automatically when SICStus is invoked from the SICStus Prolog IDE (SPIDER), or from Emacs (via M-x run-prolog)


Send feedback on this subject.