Back
Data61 and Monash University
Patches for MiniZinc IDE x64
Windows
7 patches available
The MiniZinc IDE lets you edit and run MiniZinc models. It requires a working installation of the MiniZinc tool chain (which is included when you download the bundled version of the IDE)
MiniZinc IDE x64 Version 2.10.1
Release Date
8/31/2026
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.10.1?$$$(released 31 August 2026)$$$$$$Packaging changes:?$$$The naming scheme for GitHub release assets has changed to use the build target triple.$$$$$$Windows ARM64 packages are now available.$$$$$$Separate ARM and Intel macOS packages are provided instead of a single universal binary.$$$$$$Packages containing the MiniZinc command line tools and solvers are now available without the IDE.$$$$$$Docker images are now released on the GitHub Container Registry; including -dist variants which contain only the MiniZinc installation and are designed to copied into other images.$$$$$$Changes:?$$$Add an experimental parser using the tree-sitter grammar shared with shackle; enabled by setting the MZN_TREE_SITTER_PARSER environment variable. Syntax that is not yet supported; such as class declarations and lambdas; is rejected by name rather than as a generic syntax error. Data files are read with a separate; stricter grammar that accepts data; not all MiniZinc expressions. A warning is issued for invalid data; but will not be accepted in the future.$$$$$$Harden how external FlatZinc solvers are launched. On POSIX; the solver is now started with posix_spawn in its own process group; using close-on-exec pipes and full error checking. On Windows; the solver inherits only the three standard I/O handles (instead of every inheritable handle) and is placed in a kill-on-close job object; so it is reliably terminated together with MiniZinc. Several descriptor and handle leaks were fixed in the process.$$$$$$Extend the Xpress solver interface with support for lazy constraints; lexicographic multiple objectives (via the goal_hierarchy annotation); and user cuts; and enable quadratic and bilinear constraints.$$$$$$Make built-in Gecode solver interface handle restart annotations and statistics output.$$$$$$Greatly reduce the memory used by two-pass compilation (--two-pass; -O2 and above). The paths that identify variables between passes were stored as one string per variable; each spelling out the file name of every frame on the flattening call stack; and held several times over. They are now an interned tree of shared frames; and the text is only built when --keep-paths or --output-paths asks for it. Where an expression has picked up more than one path; the deepest one is now kept. Previously the textually longest was kept; which could prefer a shallower path that happened to run through longer file or function names (issue 1029).$$$$$$Bug fixes:?$$$Fix a crash when projecting a field that is itself a tuple or record out of an array of tuples or records (as in x.1 and x.1.1 for any: x = [((1; 2); 3)]). The projection gave the resulting array type the type id of the field instead of an array type id; which was then misinterpreted when the element type was looked up again.$$$$$$Fix a crash when indexing or slicing the result of a projection (as in x.1[1] and x.2[1..2] for any: x = [((1; 2); 3)]). Array access was the only context that did not coerce its object; so the projection was never rewritten into a comprehension and reached evaluation as a field access on an array. This affected fields of any type; not just structs.$$$$$$Fix projecting an array-valued field out of an array of tuples or records (as in x.1 for any: x = [([1; 2]; 3)]). The result is an array of arrays; but the projection did not build the tuple wrapper that represents one; dropping the field’s own dimensions and producing an array of the element type instead. The model was then accepted with a wrong type and failed in evaluation with not an integer expression; or; for a var field; handed malformed FlatZinc to the solver.$$$$$$Fix possible process hanging after receiving IDE interrupts on Windows.$$$$$$Fix incorrect return type of select_from_index_X and concat_index_X functions.$$$$$$Fix incorrect index restriction for concat_index_6 function.$$$$$$Fix output reverse mapping for tuples/record function parameters which shadow top-level declarations of the same name.$$$$$$Fix element type of concatenated mult
MiniZinc IDE x64 Version 2.10.0
Release Date
7/22/2026
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.10.0?$$$(released 23 July 2026)$$$$$$Changes:?$$$Add reified regular constraint decompositions. Rewrite to direct decomposition if non-reified regular is also a decomposition; or to an augmented automaton if a native regular constraint is available.$$$$$$Add an experimental assumption interface. The new assume predicate (in experimental/assume.mzn) records a set of Boolean assumptions and lowers them to a solver-overridable fzn_assume. Solvers that support solving under assumptions can report an unsatisfiable core; which is translated back into the original MiniZinc expressions and printed as a %%%mzn-core comment (or a core message in the --json-stream output). Solvers without native support post the assumptions as hard constraints and issue a warning.$$$$$$The SCIP interface is now only compatible with SCIP 10 and later.$$$$$$Some performance improvements through better inlining and reducing allocation in hot paths of the compiler.$$$$$$Compile root forall constraints with variable generators or where clauses in root context instead of reified context.$$$$$$Improve compilation of comprehensions with complex variable generators by moving the generator expression into a generator alias.$$$$$$Add an experimental black-box propagator interface. A bodyless predicate or function annotated with ::minizinc_value_propagator or ::minizinc_bounds_propagator (in experimental/blackbox.mzn) together with a source annotation (::blackbox_exec for an external executable or ::blackbox_dll for a dynamically loaded library) has its body generated by the compiler as a call to a solver-overridable blackbox / blackbox_bounds constraint. Supporting solvers invoke the external code during search to propagate values or bounds; solvers without support abort with a clear message.$$$$$$Add support for interactive FlatZinc solvers. These can read commands from standard input while running; and output both solutions and messages.$$$$$$Add support for warm starts to HiGHS and SCIP interfaces.$$$$$$It is now a type error to declare two overloads of a function or predicate that a call supplying all of its arguments by name could not tell apart; i.e. two overloads that give the same name and type to every parameter that has to be supplied. Previously such a call silently resolved to whichever overload was declared first. Parameter order is irrelevant here; and parameters with a default value are exempt; since a call need not supply them.$$$$$$The parameter names of the global constraints in the standard library have been revised so that they read well as named arguments (now that named arguments make them part of the public interface). As part of this; all_different gains an optional except set parameter (defaulting to the empty set); unifying it with all_different_except and all_different_except_0; which are now deprecated.$$$$$$$$$Bug fixes:?$$$Fix a crash (segmentation fault) when a non-optional variable is constrained to be equal to an absent optional value. The model is now correctly detected as unsatisfiable (issue 1023).$$$$$$Fix a crash when finalising FlatZinc for models containing chains of equality constraints between output variables. Depending on the order; the alias chain could collapse into a cyclic right-hand side (issue 1022).$$$$$$Fix x=infinity and x=-infinity being incorrectly translated when used in reified positions.$$$$$$Fix a bug in type specialisation that could produce incorrect internal type representations for tuples.$$$$$$Fix spurious UNSATISFIABLE results under -O1 for half-reified constraints whose right-hand side uses a pinned var float as a coefficient operand. The LE chain compressor was incorrectly adding the folded-in constant offset to the RHS instead of subtracting it (issue 1020).$$$$$$Fix parsing of JSON data files with enumerated or record types where the model contains a type alias for the type of the parameter.$$$$$$Fix the type signature of set_search to allow sets of enums without warning about enum2int conversion (issue 1024).$$$$$$Fix flatteni
MiniZinc IDE x64 Version 2.9.7
Release Date
4/30/2026
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.9.7?$$$(released 30 April 2026)$$$$$$Bug fixes:?$$$Fix invalid FlatZinc output caused by inlining non-literal variable right-hand sides that were incorrectly marked as par (issue 1015).$$$$$$Fix generation of par versions of functions referencing top-level model variables for use in the output model (issue 1016).$$$$$$Fix crash during type checking of enum constructors (issue 1017).$$$$$$Fix incorrect typing of record literals containing both decision variables and parameter values; affecting the automatic generation of table constraints. (issue 1014).$$$$$$Fix output aliasing during multipass compilation when multiple output variables map to the same FlatZinc variable; which could produce invalid .ozn output under optimisation (issue 1018).
MiniZinc IDE x64 Version 2.9.5
Release Date
1/23/2026
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.9.5?$$$(released 23 January 2026)$$$$$$Changes:?$$$Automatically detect Gurobi 13.0 and potential future versions.$$$$$$Enable projection of arrays of tuples and records using field access notation (issue 970).$$$$$$Enable anonymous assignment generators in comprehensions.$$$$$$Rewrite regular to fzn_regular instead of fzn_regular_set when possible; in order to improve performance for solvers that do not support fzn_regular_set natively (issue 981).$$$$$$Add zip and unzip functions to the standard library (issue 967).$$$$$$Add enum constructors lifted to arrays (issue 965).$$$$$$Add sliding_among constraint to the standard globals library (issue 960).$$$$$$Improve support for input of enum definitions using using JSON data files.$$$$$$Bug fixes:?$$$Fix type checking for tuple and record literals to correctly reflect whether they contain any variable types (issue 955).$$$$$$Fix bug in decomposition for the reified nvalue global (issue 964).$$$$$$Fix issue where output items were evaluated twice when using JSON streaming output mode$$$$$$Fix bug in type inference for arrays of tuples or records containing a mix of optional and non-optional arrays (issue 963).$$$$$$Fix typing of indexed comprehensions that create arrays of arrays.$$$$$$Fix output of arrays with optional elements in cases where the array definition cannot be moved to the output model.$$$$$$Fix domain bounds when hoisting if-then-else expressions.$$$$$$Fix bugs in the parser where a syntax error could lead to a crash because of incorrectly initialised memory.$$$$$$Fix a bug in type checking of arrays of arrays that could result in crashes (issue 980).$$$$$$Fix type checking of varified type aliases (issue 983).$$$$$$Fix a flattening bug that introduced integer constants into float expressions; potentially leading to crashes (issue 984).$$$$$$Fix crash when emitting solutions with empty sets for the gecode_presolver solver interface (issue 988).$$$$$$Fix a bug in the flattening of output expressions that could result in the output model being invalid (issue 975).$$$$$$Fix type checking of return types of generic functions that return tuples or records.$$$$$$Fix type checking of functions that return arrays with generic index sets and enum element types.$$$$$$Fix false-positive enum compatibility type errors when using enum2int in arguments to generic functions.$$$$$$Improve performance of function matching by avoiding to copy functions unnecessarily between models.$$$$$$Fix incorrect printing of anonymous enum values.$$$$$$Fix typing of generic functions with integer array indices when called with enum indexed arrays (issue 966).
MiniZinc IDE x64 Version 2.9.5
Release Date
1/23/2026
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.9.5?$$$(released 23 January 2026)$$$$$$Changes:?$$$Automatically detect Gurobi 13.0 and potential future versions.$$$$$$Enable projection of arrays of tuples and records using field access notation (issue 970).$$$$$$Enable anonymous assignment generators in comprehensions.$$$$$$Rewrite regular to fzn_regular instead of fzn_regular_set when possible; in order to improve performance for solvers that do not support fzn_regular_set natively (issue 981).$$$$$$Add zip and unzip functions to the standard library (issue 967).$$$$$$Add enum constructors lifted to arrays (issue 965).$$$$$$Add sliding_among constraint to the standard globals library (issue 960).$$$$$$Improve support for input of enum definitions using using JSON data files.$$$$$$Bug fixes:?$$$Fix type checking for tuple and record literals to correctly reflect whether they contain any variable types (issue 955).$$$$$$Fix bug in decomposition for the reified nvalue global (issue 964).$$$$$$Fix issue where output items were evaluated twice when using JSON streaming output mode$$$$$$Fix bug in type inference for arrays of tuples or records containing a mix of optional and non-optional arrays (issue 963).$$$$$$Fix typing of indexed comprehensions that create arrays of arrays.$$$$$$Fix output of arrays with optional elements in cases where the array definition cannot be moved to the output model.$$$$$$Fix domain bounds when hoisting if-then-else expressions.$$$$$$Fix bugs in the parser where a syntax error could lead to a crash because of incorrectly initialised memory.$$$$$$Fix a bug in type checking of arrays of arrays that could result in crashes (issue 980).$$$$$$Fix type checking of varified type aliases (issue 983).$$$$$$Fix a flattening bug that introduced integer constants into float expressions; potentially leading to crashes (issue 984).$$$$$$Fix crash when emitting solutions with empty sets for the gecode_presolver solver interface (issue 988).$$$$$$Fix a bug in the flattening of output expressions that could result in the output model being invalid (issue 975).$$$$$$Fix type checking of return types of generic functions that return tuples or records.$$$$$$Fix type checking of functions that return arrays with generic index sets and enum element types.$$$$$$Fix false-positive enum compatibility type errors when using enum2int in arguments to generic functions.$$$$$$Improve performance of function matching by avoiding to copy functions unnecessarily between models.$$$$$$Fix incorrect printing of anonymous enum values.$$$$$$Fix typing of generic functions with integer array indices when called with enum indexed arrays (issue 966).
MiniZinc IDE x64 Version 2.9.4
Release Date
9/29/2025
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.9.4$$$(released 29 September 2025)$$$$$$Changes:$$$Add new builtin functions for array manipulation: select_from_index_X can slice an array with a non-contiguous set of indices; and concat_index_X can concatenate two arrays along a specified index.$$$Add option type versions of bin packing and cumulatives constraints.$$$Remove bool_xor with two arguments from the FlatZinc builtins. It is never output into FlatZinc by the compiler and violated the rule that FlatZinc builtins are not overloaded (issue 913). Also remove some other duplicates and incorrect overloads from flatzinc_builtins.mzn.$$$Add includes for header files where symbols are required; in order to avoid issues with some compilers.$$$Fix AST string allocation to avoid warnings about writing into unallocated memory.$$$Fix float literal parsing; making it consistent across all platforms (issue 941).$$$$$$Bug fixes:$$$Fix compilation of arrays of arrays when inferred type-inst is var; and pretty-printing of arrays of arrays (issue 942).$$$Fix CSE for empty arrays; which could cause incorrect function overloads to be called (issue 946).$$$Fix a bug in the Constants class that caused the GC to access uninitialised memory (issue 933).$$$Fix a bug in the chain compression algorithm that resulted in incorrectly removing constraints that were not redundant (issue 943).$$$Fix a bug in the nvalue decomposition to also make it work for empty arrays.$$$Fix a bug in the parser that could sometimes cause a crash when parsing invalid syntax (issue 950).$$$Fix a bug in type specialisation that could sometimes lead to a crash (issue 950).$$$Fix a bug where trace_dbg would always get evaluated regardless of the presence of the --debug flag (issue 926).$$$Fix a bug where the argument to --fzn-flags would not be correctly parsed if it also matched a MiniZinc flag (issue 940).$$$Fix bounds computation for division and modulo operations to not abort if the bounds cannot be computed (issue 917).$$$Fix two incorrect comparison functions that could trigger assertions in debug builds (and likely incorrect behaviour in optimised builds).$$$Fix incorrect overloading resolution for polymorphic functions when called with empty set literals as arguments (issue 875).$$$Fix handling of duplicate polymorphic function definitions with empty bodies (issue 875).$$$Fix internal error when accessing out of bounds indices for arrays containing arrays (issue 954).$$$Fix performance of evaluating array comprehensions; which previously could lead to quadratic behaviour in some cases.
MiniZinc IDE x64 Version 2.9.4
Release Date
9/29/2025
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.9.4$$$(released 29 September 2025)$$$$$$Changes:$$$Add new builtin functions for array manipulation: select_from_index_X can slice an array with a non-contiguous set of indices; and concat_index_X can concatenate two arrays along a specified index.$$$Add option type versions of bin packing and cumulatives constraints.$$$Remove bool_xor with two arguments from the FlatZinc builtins. It is never output into FlatZinc by the compiler and violated the rule that FlatZinc builtins are not overloaded (issue 913). Also remove some other duplicates and incorrect overloads from flatzinc_builtins.mzn.$$$Add includes for header files where symbols are required; in order to avoid issues with some compilers.$$$Fix AST string allocation to avoid warnings about writing into unallocated memory.$$$Fix float literal parsing; making it consistent across all platforms (issue 941).$$$$$$Bug fixes:$$$Fix compilation of arrays of arrays when inferred type-inst is var; and pretty-printing of arrays of arrays (issue 942).$$$Fix CSE for empty arrays; which could cause incorrect function overloads to be called (issue 946).$$$Fix a bug in the Constants class that caused the GC to access uninitialised memory (issue 933).$$$Fix a bug in the chain compression algorithm that resulted in incorrectly removing constraints that were not redundant (issue 943).$$$Fix a bug in the nvalue decomposition to also make it work for empty arrays.$$$Fix a bug in the parser that could sometimes cause a crash when parsing invalid syntax (issue 950).$$$Fix a bug in type specialisation that could sometimes lead to a crash (issue 950).$$$Fix a bug where trace_dbg would always get evaluated regardless of the presence of the --debug flag (issue 926).$$$Fix a bug where the argument to --fzn-flags would not be correctly parsed if it also matched a MiniZinc flag (issue 940).$$$Fix bounds computation for division and modulo operations to not abort if the bounds cannot be computed (issue 917).$$$Fix two incorrect comparison functions that could trigger assertions in debug builds (and likely incorrect behaviour in optimised builds).$$$Fix incorrect overloading resolution for polymorphic functions when called with empty set literals as arguments (issue 875).$$$Fix handling of duplicate polymorphic function definitions with empty bodies (issue 875).$$$Fix internal error when accessing out of bounds indices for arrays containing arrays (issue 954).$$$Fix performance of evaluating array comprehensions; which previously could lead to quadratic behaviour in some cases.
MiniZinc IDE x64 Version 2.9.3
Release Date
5/23/2025
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.9.3?$$$(released 23 May 2025)$$$$$$Changes:?$$$Add mzn_max_version_required to enable models to speficy the maximum version of MiniZinc required to run the model (issue 872).$$$$$$Replace use of ptrdiff_t with appropriate unsigned integer type.$$$$$$Clarify documentation example use of boolean extra flags in solver configuration files.$$$$$$Warnings produced in solution checkers are now output as part of the checker message when running in --json-stream mode.$$$$$$Bug fixes:?$$$Fix the rewriting of the multidimensional search annotations to ensure correct coercion of arguments (issue 897).$$$$$$Output location of some errors where the problematic expression previously did not have a location (issue 899).$$$$$$Fix domain computation to avoid variables being moved to the output model when they are constrained (issue 911).$$$$$$Fix output processing to also respect the -o flag when flattening already detects unsatisfiability (issue 908).$$$$$$Report an error when solving a FlatZinc file that does not contain a solve item (issue 907).$$$$$$Pass command line options to the compiler phases earlier to avoid problems with e.g. the --disable-warnings flag (issue 893).$$$$$$Fix incorrect generation of par versions of functions referencing top-level tuples/records containing var fields (issue 919).$$$$$$Fix problem where using an iterator of variable tuple or record types could result in a segfault (issue 901).$$$$$$Fix a problem where an operator such as <= on an optional type would sometimes lead to an internal compiler error (issue 898).$$$$$$Print enum values in stack traces (issue 912).$$$$$$Fix a bug where incompatible overloads could be used when dispatching to more specific versions of functions (issue 905).$$$$$$Fix internal error when constraining the domain of var opt bool variables.$$$$$$Fix record merge operator when evaluated via a field access (issue 892).$$$$$$Update documentation to indicate that the float_ceil; float_floor; and float_round FlatZinc builtins need to be placed in redefinitions-2.7.1.mzn (issue 914).$$$$$$Fix handling of basic standard flags when running .fzn files (issue 920).$$$$$$Fix return type computation for generic functions called with tuple or record types (issue 902).$$$$$$Fix type computation for arrays of tuples/records containing $T members.$$$$$$Fix flattening of anonymous variables of enum type to be correctly bounded.$$$$$$Emit type errors for unsupported usage of anonymous variables in tuples and records.$$$$$$Fix incorrect flattening of in for tuples/records containing optional values (issue 900).
MiniZinc IDE x64 Version 2.9.3
Release Date
5/23/2025
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes
Version 2.9.3?$$$(released 23 May 2025)$$$$$$Changes:?$$$Add mzn_max_version_required to enable models to speficy the maximum version of MiniZinc required to run the model (issue 872).$$$$$$Replace use of ptrdiff_t with appropriate unsigned integer type.$$$$$$Clarify documentation example use of boolean extra flags in solver configuration files.$$$$$$Warnings produced in solution checkers are now output as part of the checker message when running in --json-stream mode.$$$$$$Bug fixes:?$$$Fix the rewriting of the multidimensional search annotations to ensure correct coercion of arguments (issue 897).$$$$$$Output location of some errors where the problematic expression previously did not have a location (issue 899).$$$$$$Fix domain computation to avoid variables being moved to the output model when they are constrained (issue 911).$$$$$$Fix output processing to also respect the -o flag when flattening already detects unsatisfiability (issue 908).$$$$$$Report an error when solving a FlatZinc file that does not contain a solve item (issue 907).$$$$$$Pass command line options to the compiler phases earlier to avoid problems with e.g. the --disable-warnings flag (issue 893).$$$$$$Fix incorrect generation of par versions of functions referencing top-level tuples/records containing var fields (issue 919).$$$$$$Fix problem where using an iterator of variable tuple or record types could result in a segfault (issue 901).$$$$$$Fix a problem where an operator such as <= on an optional type would sometimes lead to an internal compiler error (issue 898).$$$$$$Print enum values in stack traces (issue 912).$$$$$$Fix a bug where incompatible overloads could be used when dispatching to more specific versions of functions (issue 905).$$$$$$Fix internal error when constraining the domain of var opt bool variables.$$$$$$Fix record merge operator when evaluated via a field access (issue 892).$$$$$$Update documentation to indicate that the float_ceil; float_floor; and float_round FlatZinc builtins need to be placed in redefinitions-2.7.1.mzn (issue 914).$$$$$$Fix handling of basic standard flags when running .fzn files (issue 920).$$$$$$Fix return type computation for generic functions called with tuple or record types (issue 902).$$$$$$Fix type computation for arrays of tuples/records containing $T members.$$$$$$Fix flattening of anonymous variables of enum type to be correctly bounded.$$$$$$Emit type errors for unsupported usage of anonymous variables in tuples and records.$$$$$$Fix incorrect flattening of in for tuples/records containing optional values (issue 900).
MiniZinc IDE x64 Version 2.9.2
Release Date
3/6/2025
Bug Fix?
Yes
Minor Release?
No
Patch Notes
Version 2.9.2$$$(released 6 March 2025)$$$Bug fixes:$$$Prevent output of and emit warning for invalid statistics in JSON streaming mode.$$$Fix crash in string interpolation (issue 891).$$$Fix row and col functions to use enumerated types instead of int (issue 888).
MiniZinc IDE x64 Version 2.8.7
Release Date
10/2/2024
Bug Fix?
Yes
Minor Release?
No
Patch Notes
Version 2.8.7?$$$(released 2 October 2024)$$$$$$Bug fixes:?$$$Fix bug that caused where clauses to be removed from comprehensions.$$$$$$Fix optimisation of Boolean constraints that could sometimes trigger an assertion failure in debug builds (issue 843).
Interested in automating patching for MiniZinc IDE x64?