G12 MiniZinc Distribution version 0.8 ------------------------------------- Changes to the MiniZinc language: * Output items can now make use of show_cond(A, B, C) expressions. show_cond(A, B, C) is equivalent to show(B) if A is true, and show(C) if not. Expression A does not have to be decidable at compile time. * Some aspects of how arrays work have changed. - Array indices no longer are automatically coerced according to context. - 1d array literals (eg. '[1,2,3]') are now always indexed from 1, not 0. - 2d array literal syntax has been introduced. For example: array[1..3,1..3] of int: a = [| 1, 2, 3 | 4, 5, 6 | 7, 8, 9 |]; 2d array literals are always (1,1)-indexed. The choice to use 1-indexing instead of 0-indexing is because we have found that, in practice, modellers use 1-indexing the vast majority of the time. Changes to the FlatZinc language: * Output items can now make use of 'show_cond' expressions, as in MiniZinc. * Solve minimize/maximize items can now specify linear expressions via the 'int_float_lin' built-in. * To match MiniZinc, array variables and literals are now always indexed from 1, not 0. * Var scalars can now be assigned to when declared, eg. "var int: x = y;". Changes to the G12 MiniZinc-to-FlatZinc converter: * A new command line option, `--no-warn-unknown-annotations', allows warnings about unknown annotations to be suppressed. * A new command line option, `--output-to-file', allows the name of the file in which the FlatZinc is written to be specified. * The ordering of search directories for the converter has been changed so that its standard search directories come after any user specified search directories. This allows the default globals.mzn to be more easily overridden with a custom version. * Numerous bug fixes and other improvements. Changes to the G12 FlatZinc interpreter: * The interpreter now uses a generic interpretation framework that allows it to support multiple solver backends. Currently, the only supported solver backend is the finite domain solver backend. There are a number of other experimental solver backends, e.g. MIP, hybrid FD/MIP, SAT, column generation, that we hope to support in future releases. * The following command line options have been added in order to provide finer grained control over warnings emitted by the interpreter: --no-warn-unknown-annotations --no-warn-false-constraints --no-warn-ignored-annotations --no-warn-empty-initial-domains --no-warn-unsupported-search-params Other Changes: * We have added more examples and benchmarks. G12 MiniZinc Distribution version 0.7.1 --------------------------------------- This is a bug-fix release. * The implementation of the regular and range constraints in the MiniZinc library has been fixed. Changes to the G12 MiniZinc-to-FlatZinc converter: * The missing support for superset expressions has been added. * Unused constants are no longer incorrectly changed into vars during flattening. * Flattening of expressions containing the built-in operation dom no longer cause the converter to abort. Changes to the G12 FlatZinc interpreter: * A bug that with satisfiability checking of models containing LP variables has been fixed. G12 MiniZinc Distribution version 0.7 ------------------------------------- Changes to the FlatZinc language: * FlatZinc now supports additional linear equality and disequality builtins. Changes to the G12 MiniZinc-to-FlatZinc converter: * The converter now supports now includes a `--statistics' option that allows its time and memory usage to be printed. * String concatenation expressions are now flattened properly. * Escaped single quotes can now be used in string literals. * The absolute value function for ints is now implemented. * Some bugs that caused the converter to run out of stack space have been fixed. Changes to the G12 FlatZinc interpreter: * The interpreter now includes a `--statistics' option that allows its time and memory usage to be printed. * The interpreter no longer runs out of stack space when reading large models. Other Changes: * We have added suite of MiniZinc benchmarks to the distribution. The benchmark suite is in the `benchmarks' directory. G12 MiniZinc Distribution version 0.6 ------------------------------------- This was the initial public release of the G12 MiniZinc Distribution.