rename find, find2, maxEntries, and minEntries to multima_find,
multimap_find2, multimap_maxEntries, and multimap_minEntries.
update preference_holds and preference_variableValue to take an
optional condition before the label.
remove the warning for multiple preference scores for the same expression.
update variable_assign and variable_choice to take a condition
argument.
update multimap_assign to take an optional condition argument.
multimap_assign(VAR,KEY,VALUE,COND,LBL) adds the pair only when COND
evaluates to true. The former labelled four-argument form now requires
val(bool,true) before the label.
introduce declaration warning_raise(KIND,MSG,COND,LBL) to let the user
specify warnings to be emitted conditionally.
update variable_domain to take an optional condition argument.
variable_domain(VAR,E,COND,LBL) includes E in VAR's domain only when
COND evaluates to true. The former labelled variable_domain(VAR,E,LBL)
form is now variable_domain(VAR,E,val(bool,true),LBL).
update optimize_maximizeSum to take an optional condition argument.
replace CH's execution_run with an optional boolean condition in
execution_declare(NAME,STMT,INPUT,OUTPUT,COND,LBL).
introduce the declaration check(COND) that rejects candidate where COND
evaluates to false.
update the semantics of ensure to reject condition with bad evaluation.
disable and remove multipleDefinitions warning.
update variable_define to take an optional condition argument.
variable_define(VAR,E,COND,LBL) defines VAR only when COND evaluates
to true. The former labelled variable_define(VAR,E,LBL) form is now
variable_define(VAR,E,val(bool,true),LBL).
add the flat constraint handler (FCH) to constraint_handler and expose it
through the new api="fch" argument of add_to_control, while keeping the
existing CH API as the default.
add find_values and add_declarations to API
update variable_declare(LBL,X,D) to be variable_declare(X,D,LBL) and do
the same for other input predicates,
allow python expression as expression and not only as operators
ensure that execution_declare defines its output variables regardless of
execution_run. If there is no corresponding execution_run the variables
take the value none.
raise warning atom(syntaxError) when a set, variable, or multimap atom is
malformed
introduce bool_evaluate
fix optimize_maximizeSum and declare_variable regressions introduced in
v0.0.2.dev6
add engine-specific performance benchmark sessions and pytest-benchmark
compare workflow for saved benchmark runs
turn variable_declare's non-determinism to be between values rather than
expressions
introduce optional label argument to variable_domain and
variable_declareOptional, if unspecified, it defaults to the label of the
corresponding variable_declare atom.
introduce optional label argument to evaluate
raise warning expression(syntaxError) when an expression is malformed
evaluate declarations now also generate expression-related warnings
Introduce warning variable(badValue) that is emitted when the value of some
variable is bad
Introduce set_baseDomain/2 to allow non-deterministic set definitions.
remove recoverable
introduce _operator_recoverable/1 and use it for every currently
recoverable operator
avoid patterns of the form "p(A) :- q(A), r(A), not s(A), A=some(term)." in
favor of "p(some(term)) :- q(some(term)), r(some(term)), not s(some(term))."
to work around gringo's heuristic getting it wrong.