ECLiPSe 7.1 Release Notes
Version 7.1 (DRAFT)
Not yet frozen, features may still be added...
Built-In Predicates
Engines and Threads
New predicate
- engine_clone(+Original, +Clone, +Options)
- Make a duplicate of the Original engine by copying all its computational state.
Random Numbers
Multiple random number generators can now be selected
as random_mode
via
set_flag/2:
- lcg
- (default) a Linear Congruential Generator with a period of 2^31-1.
- xs
- xorshift64* generator with a period of 2^64-1.
- system
- the system's random() or rand() library function.
- random(+Limit, -N), N is random(Limit)
- Generates a random integer N between 0 and Limit-1.
Constraint Solvers
EPLEX (LP/MIP Solver Interface)
The LP/MIP Solver Interface library(eplex) now also works with the free GLPK (GNU Linear Programming Kit).
GFD Gecode Solver Interface
The Gecode interface library(gfd) has been updated for Gecode 6.2.
IC Solver (interval and finite domain constraints)
The interval solver library(ic) now supports additional functions in constraint expressions:
- floor(Expr)
- Expr rounded down to nearest integer.
- ceiling(Expr)
- Expr rounded up to nearest integer.
- truncate(Expr)
- Expr rounded to nearest integer toward zero.
- Expr1//Expr2
- Integer division, rounding towards zero. This is only defined over integral arguments and yields an integral result.
- Expr1 rem Expr2
- Remainder corresponding to integer division //. This is only defined over integral arguments and yields an integral result.
- ?BoolExprX <=> ?BoolExprY
- BoolExprX and BoolExprY are equivalent.
- <=>(?BoolExprX, ?BoolExprY, ?Bool)
- Bool is the truth value of the equivalence BoolExprX <=> BoolExprY being true.
Other Libraries
New Libraries
- lib(json)
- Read/write JSON format.
Library Enhancements
- library(hash)
- Add hash_update/5 and hash_map/3.
- library(csv)
- Add options and csv_read_row/3.
- library(lips)
- Made thread-safe and added par_lips/1.
Kernel and Built-in Predicates
- Named references
- References can now be initialised with a free variable. Added built-in swapref(+Name, -OldValue, ?NewValue)
Supported Architectures
This release is available for the following architectures:
- Linux/ARM 32-bit (armv7_linux), for Raspberry Pi 2&3
- NEW: Linux/ARM 64-bit (aarch64_linux), for Raspberry Pi 3&4
- Linux/x86 (Intel, AMD,...) 32-bit (i386_linux)
- Linux/x86-64 (Intel, AMD) 64-bit (x86_64_linux)
- Windows 32-bit (i386_nt)
- Windows 64-bit (x86_64_nt)