The internal representation of Prolog terms and code has been
redesigned, resulting in code that runs up to twice as fast as in release 3.
Certain memory limitations that existed in release 3 have been
dropped. All available virtual memory can be used without any
limitations imposed by SICStus Prolog.
The limitations on “temporary” and “permanent” variables
for compiled clauses have been dropped. There is no size limit on
compiled clauses.
The number of available atoms is four times larger than in release 3
(1M atoms are available on 32-bit platforms).
The range of small integers is eight times larger than in release 3.
Although the size of integers is unbounded, small integers are handled
more efficiently than other numbers.
Multifile predicates are compiled by default; in release 3, they could
not be compiled.
Native code compilation has been dropped.
Execution profiling is available for compiled as well as interpreted code.
The profiling data accessible by profile_data/1 and
library(gauge) is more precise. Some of the choices of release
3 have been dropped.
Execution profiling has been generalized to support coverage analysis
for compiled as well as interpreted code.