B-Prolog 7.1Version of implementation B-Prolog of programming language Prolog
A version of B-Prolog, released on June 25, 2008.
- Stack initialization is unnecessary in TOAM Jr. now.
- Programs with large numbers of clauses compile faster now.
- An improvement of the performance of the memory manager.
- An improvement of the debugger which leads to an order-of-magnitude reduction in memory consumption by programs run in the debug mode.
- New functions: log(Base,X), ‘e’ (2.7182818284590455), min(L), max(L), sum(L), float_fractional_part(X), and float_integer_part(X).
modredefined: X mod Y = X-(integer(floor(X/Y))*Y).
- A bug fix in directory_files/2.
- The number of streams that can be open at a time is increased to 40 from 20.
- The code generator generates faster code for if-then-else than before.
- The following built-ins are modified to accept string file names: cl/1, consult/1,/1, compile/1, and load/1.
- The compiler issues error messages when a program to be compiled contains an atom that is longer than 225 characters or a structure whose arity is bigger than 225.
- A fix of a memory leak in findall when used with catch/throw.
- Change of throw/1 to make it ISO compliant.
- A critical section is used to control Timer threads and the main thread when shared data are accessed.
- New global constraint disjunctive_tasks(Starts,Durations), which is equivalent to cumulative(Starts,Durations,Resources,Limit) where Resources and Limit are all unit.
- Improvements in constraint propagators: global constraints (element/3, cumulative/3, X#=min(L), X#=max(L)), nonlinear constraints (X#=abs(Y),X#=abs(Y-Z)), and disjunctive constraints.
- statistics/0 and statistics/2 are extended to show statistics on numbers of backtracks in labeling finite domain variables.
- New directive multifile/1 added.