This section contains some installation notes that are platform specific under UNIX.
InstallSICStuswill 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. Using gcc 3.x does seem to work but has not yet received much testing. To install with gcc 3.x, set the environment variable CC appropriately before invoking
The following libraries are not supported:
timeoutdoes not work with the default thread implementation in Solaris 8. Instead the “Alternate Thread Library (T2)” must be used. This is ensured automatically for executables built with the spld tool. See http://developers.sun.com/solaris/articles/alt_thread_lib.html for further information.
This problem does not affect Solaris 9 or later.
An executable built with spld will only work if there is a properly configured subdirectory sp-4.0.0 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), a wrapper script does this automatically.
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
tcsh> limit data datasize 6144 kbytes bash> ulimit -d 6144
This indicates that the maximum size of the data-segment is only 6 Mb. To remove the limit, do
tcsh> limit datasize unlimited datasize unlimited bash> ulimit -d unlimited bash> ulimit -d unlimited
Please note: limit (ulimit) is a shell built-in in csh/tcsh (sh/bash). It may have a different name in other shells.
Please note: The limit will also affect SICStus when started from within Emacs, e.g. with M-x run-prolog. To change the limit used by Emacs and its sub-processes (such as SICStus) you will need to change the limit in the shell used to start Emacs. Alternatively you can create a shell wrapper for the emacs command.
library(timeout) does not work reliably when Mac OS X runs on a
multi-CPU machine. In particular, timeouts tend to happen much later than
they should. This is caused by an OS bug. One workaround is to disable
all but one CPU using the “Processor” control in the “System
Preferences” or the hwprefs command. These utilities are part
of “CHUD” which can be installed as part of Apple XCode. The
underlying bug is related to
setitimer(ITIMER_VIRTUAL) and has
been observed at least up to Mac OS X 10.4.8 (Darwin 8.8.1).
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.