12.12.1 New Features
- SPIDER, the SICStus Prolog IDE, is a new Eclipse-based development
environment for SICStus with many powerful features. See SICStus Prolog IDE for more information.
- Do-loops, a new control structure and built-in predicate
do/2
for performing simple iterations.
See Do-Loops.
- Conditional compilation, a pre-processing step that selectively
discards parts of a file at compile time. This is especially useful
for writing code that needs to be compatible with more than one Prolog
implementation. See Conditional Compilation for more
information.
- New Prolog flags:
dialect
version_data
- make it easier
to determine which version of SICStus is running. Especially useful with
conditional compilation.
platform_data
os_data
- make it easier
to determine on which operating system SICStus is running.
min_tagged_integer
max_tagged_integer
-
The range of small integers.
argv
-
Not a new flag but is no longer read-only. Setting it can be useful,
e.g. in test cases.
- Added stream property
interactive
for interactive streams, like
the standard input and output streams when invoking SICStus on a
terminal or with the -i command line option.
- Meta-predicate declarations now allow an integer instead of
:
(colon) in order to help analysis tools follow code references. All
documentation and libraries have been updated to reflect this. (This was
always allowed in SICStus as a substitute for :
(colon) but was
never documented).
- Compound terms denoting references to dynamic clauses are
recognized by the new built-in predicate
db_reference/1
.
- The previously reserved argument to
SP_initialize()
can now be
used to pass initialization options.
- Saved-states and `.po' files are portable across architectures
that have the same word size. Pre-4.1 `.sav' and `.po' files
are not compatible with this and future releases.
- Several new statistics keywords are available. Also,
statistics/0
now resets the “time spent since the latest call” counters.
library(odbc)
is
a new ODBC library for interfacing with databases. ODBC (Open Database
Connectivity) is a standard API for using a DBMS (DataBase Management
System). By using ODBC you can access data from a multitude of DBMSs
without having to know the details of each DBMS.
- It is now possible to pass environment variables to the sub-process
using the new
environment/1
option to
process:process_create/3
.
random:setrand/1
can now be passed an arbitrary integer for
initializing the state of the random number generators. This is easier
than constructing a valid random state like those returned by
getrand/1
.
library(clpfd)
:
geost/[2,3,4]
is a new powerful constraint that constrains the
location in space of non-overlapping multi-dimensional objects.
table/[2,3]
is more scalable and has
several new options for controlling its DAG construction.
automaton/3
is a shorthand for the most common use of automaton/8
, and
automaton/9
extends automaton/8
with options.
- Unary minus (
-
) is allowed in arithmetic expressions.
- Several new demo examples.
library(zinc)
: upgraded to FlatZinc version 1.0.
library(system)
: a new predicate, environ/3
, for reading system properties,
environment variables or a merged view of both. See below for the new concept
“System Properties” that has replaced most uses of environment
variables.
-
library(sockets)
: The predicates that create socket streams now
take options encoding/1
and eol/1
with the same meaning as
for open/4
.
Send feedback on this subject.