This page contains code examples, tips, known bugs and work-arounds,
and similar information which may not be available in the regular
documentation. All code examples may be freely downloaded.
For information that do not apply to the latest version of SICStus
Prolog 4, please see the separate pages for earlier releases of SICStus Prolog 4 and
for SICStus Prolog 3.
Entries are marked with SP3/SP4 to indicate that they apply to both
SICStus Prolog 3 and SICStus Prolog 4. Unmarked entries only apply to
SICStus Prolog 4.
Download Password Does Not Work (SP3/SP4)
The password for downloading the SICStus Prolog installers changes
frequently. Contact SICStus
Request if the password you received with your license information
no longer works.
Using SICStus Prolog from Microsoft Visual C++
Examples on building foreign resources and run-time systems under
Windows, with and without
examples use both C and C++. The same techniques can be used under
UNIX, for instance if you want to use the C compiler directly instead
Browse the SICStus 4 source or Download the SICStus 4 version
Mac OS X Prerequisites
If you want to use the tools
you need to install the XCode development tools available, for free,
How to Re-Enter License Information under Windows (SP3/SP4)
The SICStus development system
spwin.exe) will prompt for license information if the
license entered during installation was invalid or has expired.
Note: On Windows Vista, and later, you need to use
"Run as administrator" to start
spwin.exe if you intend
to enter or change the license information. Otherwise it will be saved
in a location where
sicstus.exe will not find it.
Managing Extended Runtime License Information
Read More >>>.
Starting SICStus in Emacs on Windows
The following steps creates a Windows shortcut that, when clicked,
starts SICStus Prolog in an Emacs with Unicode enabled.
- Install SICStus Prolog 4.2.3. The following steps assumes it
is installed in
C:\Program Files\SICStus Prolog 4.2.3\.
- Download and install the latest version of
ntemacs from ntemacs.sourceforge.net.
- Right click on your windows desktop. Select "New shortcut".
- In the shortcut creation wizard, under "Type the location of the
item", use the Browse button to navigate to
- Type a name for the shortcut, e.g. "Emacs SICStus". Press the
- Now right click on the "Emacs SICStus" shortcut that you created and left
click on "Properties" on the pop-up menu.
- In the "Target:" field change from
C:\NTEmacs\bin\runemacs.exe to the following, all as one line:
C:\NTEmacs\bin\runemacs.exe --load "C:\Program Files\SICStus Prolog 4.2.3\emacs\sicstus_emacs_init.el" --funcall run-prolog --name "Emacs SICStus"
- You may wish to change the "Start in:" field to some folder where
you store your Prolog files.
- Click the "Apply" button.
- Now double click the shortcut "Emacs SICStus" on your desktop. It
should start Emacs and automatically start SICStus Prolog within
Emacs. (There may be a warning from Emacs about it being alpha
software, click it to make it go away).
- To verify that Unicode works, try the following at the SICStus top-level prompt:
atom_codes(A, [0x666E, 0x901A, 0x8BDD]).
It should say something like:
Known Bugs and Some Provisional Fixes
All bugs are fixed for the next release unless otherwise noted.
Error handling bug in floating point overflows caused (a) spurious
memory resource errors, (b) different interpreted and compiled behavior.
predicate_property/2 with nonvar second argument would lose solutions.
when/2 could cause stack overflow.
In the build for 64-bit OS X 10.8,
library(tcltk) would crash the process.
spxref would loop on cyclic import dependencies.
library(gauge): logarithmic scale was broken
Bad use of the global constraint API could crash SICStus.
Critical bug in bounds-consistent
Enabling FDBG could cause missing propagation.
geost/[2,3,4] in greedy assignment mode ignored the
The default consistency for
all_different/1 is now
maximize, the objective variable is no
longer automatically appended to the labeling variables.
Parsing floats was broken, causing spurious errors.
ozn_file/1 options misbehaved if used
without explicit .fzn and .ozn extensions.
Empty arrays caused spurious existence errors.
+ and - are no longer incompatibly defined as prefix operators.