Xpress release notes - February 2025
Release notes for Xpress 9.5.4
Release notes for Xpress 9.5.3
Release notes for Xpress 9.5.1
Release notes for Xpress 9.5
Release notes for Xpress 9.4.4
Release notes for Xpress 9.4.3
Release notes for Xpress 9.4.2
Release notes for Xpress 9.4.1
Fixed in Release 9.5.4
Xpress Optimizer 44.01.04
- New control BARKEEPLASTSOL that can be used for turning off the automatic
saving of the final Barrier solution.
- Improved how numerical issues are handled during an automatic restart of an MIQP solve.
- Fixed a crash when solving after restoring from a save file which contains multistart
jobs.
- Fixed an issue where nonlinear information was sometimes not restored from a save file.
- Fixed an issue where XSLP_CONTROL was set incorrectly after restoring from a save file.
- Fixed an issue where the nonlinear API was used when solving any problem with Insight
Compute, even when the problem contained no nonlinearities, which caused unnecessary
data to be transferred from the compute server after the solve.
Xpress Nonlinear 44.01.04
- Fixed an issue in reporting the relative primal infeasibilities.
- Fixed an issue with postsolving in SLP-MIP-SLP and MIP-in-SLP.
- Fixed an issue with the original problem not being correctly reset during
postsolve for problems with nonlinear coefficients.
- Fixed an issue where a lot of memory was used when loading many nonlinear coefficients
for the same row/column.
Xpress Interfaces 44.01.04 (Python, R, Matlab, .NET, Java, C++, C)
- Python
- Fixed a memory leak in Python when handling quadratic objectives.
Fixed in Release 9.5.3
Xpress Optimizer 44.01.03
- Fixed issues with XPRSchgcoef and XPRSgetcoef that could set or return wrong
coefficients when the original problem is scaled.
- Fixed a crash when passing invalid indices to XPRS_bo_addrows.
- Fixed a problem which meant XPRS_bo_getlasterror never returned the last
error.
- Fixed an uninitialized memory read in XPRSwritedirs().
- Fixed a crash in XPRSsave().
- When reading multi-objective MPS files, neutral rows without objective attributes
are no longer treated as objectives.
- Fixed an issue where in a rare situation a column could be fixed to the wrong bound.
Xpress Interfaces 44.01.03 (Python, R, Matlab, .NET, Java, C++, C)
- Python
- Fixed a crash in problem.getCallbackSolution and related functions when
the first/last arguments are invalid.
Xpress Workbench 3.14.1
- Improved robustness of handling of messages from remote debugger.
Fixed in Release 9.5.1
Xpress Optimizer 44.01.02
- Improved the numerical handling in presolve of very large rows.
- Fixed an issue with a local search heuristic running on a background thread
for MIQPs.
- Fixed an issue with semi-continuous columns in presolve
- Fixed: Loading a semi-continuous variable with negative upper bound now
returns an immediate error at load time, because the model is trivially
infeasible.
- Linux binaries now include a "Build ID"
- Fixed an issue in IIS resulting in data loss if a subproblem solve fails.
- Fixed an issue in the hybrid gradient algorithm when used with LP folding
and crossover.
Xpress Nonlinear 44.01.02
- Fixed issues with integer deltas in MISLP.
Xpress Global 44.01.02
- If several licenses are available, a license authorizing the global solver
will now only be consumed when the global solver is invoked. Note that to
guarantee this behaviour, the NLPSOLVER control must not be set to AUTOMATIC.
Xpress Interfaces 44.01.02 (Python, R, Matlab, .NET, Java, C++, C)
- Python
- Added support for more iterable index set types to problem.addVariables,
including Pandas Series with sparse integer indices.
- Improved performance of problem.addrows, problem.addcols and
problem.loadproblem, when names are provided.
- Collections of indicator tuples can now be provided to problem.addIndicator.
- Passing an array of expressions in the body argument of xpress.constraint()
now raises an error, instead of silently using the first element as the
constraint body.
- Fixed a crash when passing names=None to problem.addnames.
- Fixed a crash when passing a generator for an array argument, when the
generator does not produce enough values.
- Fixed a crash when the problem.getCallbackPresolveXxx functions were called
with index arguments.
- Fixed a problem where a semi-continuous, semi-integer or partial integer
threshold of zero was ignored when creating linked variables.
- The default threshold for semi-continuous, semi-integer and partial integer
variables is now 1.
- Using variable/constraint objects from a callback or when the problem is
presolved is no longer deprecated.
- C++
- Fixed some compilation problems in C++ header files that occured when using
clang-15 and -std=c++20
- The makefile shipped in the examples directory on Windows now adds /EHsc
to the compiler flags to avoid warnings.
- Fixed a problem in the example makefiles.
- Fixed a problem in which an application might crash if a callback was
installed and the global solver was used.
- C
- Fixed a problem in the example makefiles.
Xpress Mosel 6.8.1
Runtime Library
- The matrix generator now detects and reports invalid bounds for semi continuous and semi integer decision variables.
New in Release 9.5
Release 9.5 introduces new object-oriented C++ interfaces for the Xpress solver.
- The new C++ interface allows user to formulate problems in an object-
oriented manner, using features such as lambda functions and containers.
- It provides a new XpressProblem class and related functions for ease of
model building. Since XpressProblem is a subclass of XPRSprob it also
gives developers direct access to the matrix-oriented C++ interface.
- The C++ interface complements the existing .NET and Java object-oriented
to provide a consistent API across all three programming languages.
These interfaces provide an alternative for current FICO Xpress BCL users,
and guidance is available from FICO to help transition existing applications.
Xpress Optimizer 44.01.01
- New functions XPRSgetcallbacksolution, XPRSgetcallbackslacks,
XPRSgetcallbackduals and XPRSgetcallbackredcosts. These functions can be
used for retrieving the context specific solution for any problem type and
any callback where a solution is available.
The solution returned in the affected callbacks are:
- bariteration: Barrier iteration solution
- chgbranchobject, nodelpsolved, optnode: Node relaxation solution
- intsol, slpintsol: New incumbent solution
- preintsol: Candidate incumbent solution
- slpcascadeend, slpcascadestart, slpiterend, slpiterstart, slpitervar,
slppreupdatelinearization: SLP iteration solution.
The new function should be used instead of XPRSgetlpsol to retrieve a
solution within a callback. This includes obtaining the new incumbent
solution in the preintsol and intsol callbacks, and obtaining the node
relaxation solution in the optnode, nodelpsolved and chgbranchobject
callbacks. The corresponding presolved solution
can be obtained using the new XPRSgetcallbackpresolvesolution,
XPRSgetcallbackpresolveslacks, XPRSgetcallbackpresolveduals and
XPRSgetcallbackpresolveredcosts functions.
- XPRSgetmipsol, XPRSgetnlpsol, XPRSgetmipsolval and XPRSgetlpsolval
are now deprecated. Use XPRSgetsolution, XPRSgetcallbacksolution and
related functions instead.
- Performance improvements:
- Dual sparsification: New presolve technique to improve sparsity by column-
based elimination.
- New knapsack cover lifting procedure which uses super-additive lifting.
- Perform additional coefficient tightening for models with big-M's.
- Better handling of lower bound for integral objectives in objective
propagation.
- Improved sorting procedures throughout the solver.
- New starting point heuristics have been added to the barrier algorithm when
BARSTART = 1 is set.
- Minor changes:
- New functions, XPRSsparsebtran and XPRSsparseftran, which allows sparsity
in the input and output vectors to be handled efficiently. These provide
the same transformation as the dense XPRSbtran and XPRSftran.
- The new function XPRSiisprint can be used to print an IIS in the log.
- Improved numerical handling of cutting planes to improve
numerical stability of some challenging models.
- Improved our compression routines, resulting in a notable speedup of
save file generation by 30% on some platforms.
- Functions XPRSrepairweightedinfeas() and XPRSrepairweightedinfeasbounds()
will now check if the provided arrays are NULL and raise an error if so.
Xpress Nonlinear 44.01.01
- Knitro has been upgraded to its latest version of 14.1.
- Necessary reformulations (such as adding an equalscolumn) will now be restored
at the end of the solve even if nonlinear presolve is off. This behaviour is
affected by the NLPPOSTSOLVE control, which, if disabled, will keep the problem
in a solving state at the end of the solve.
- Solution infeasibilities are now listed in the log at the end of a solve. They are
also available through the attributes MAXABSPRIMALINFEAS, MAXRELPRIMALINFEAS and MAXMIPINFEAS.
- XPRSfixglobals can now also be called after global or postsolved MISLP solves
to fix all MIP entities according to their values in the (nonlinear) solution.
- Performance improvements:
- Improved performance of heuristics within multi-threaded MISLP.
- Minor changes:
- Tokens with invalid indices will be rejected earlier and values for tokens
that do not require a value (e.g., brackets) will be ignored.
- NOFORMULADOMAINIV is deprecated.
- The following functions have been deprecated for a while. They will now
raise a deprecation warning when used:
XPRSslpadddfs, XPRSslpaddtolsets, XPRSslpaddvars, XPRSslpchgdf,
XPRSslpchgtolset, XPRSslpdeltolsets, XPRSslpdelvars, XPRSslpgetdf,
XPRSslpgettolset, XPRSslploaddfs, XPRSslploadtolsets, XPRSslploadvars,
XSLPadddfs, XSLPaddtolsets, XSLPaddvars, XSLPchgccoef, XSLPchgdf,
XSLPchgformulastring, XSLPchgtolset, XSLPdeltolsets, XSLPdelvars,
XSLPgetbanner, XSLPgetccoef, XSLPgetdf, XSLPgetformulastring,
XSLPgettolset, XSLPloaddfs, XSLPloadtolsets, XSLPloadvars,
XSLPremaxim, XSLPreminim
- The nonlinear tuner will no longer try settings that keep non-convex
quadratics in the XPRS problem, like bits 1 and 3 of the NLPREFORMULATE
control and NLPPRESOLVE=0.
- The TIMELIMIT control is now also forwarded to Knitro and both TIMELIMIT
and XSLP_MAXTIME include both the presolve and Knitro time.
- Improved the reading of .lp files with a large number of nonlinear expressions.
- The maximum number of rows and columns when solving quadratic problems with the
community license has been reduced from 5000 to 200.
Xpress Global 44.01.01
- XPRSaddmipsol is now supported for global solves.
- Performance improvements:
- Improved computation of spatial branching point
- General efficiency improvements
Xpress Interfaces 44.01.01
- Java, .NET
- Functions XpressProblem.getSolution(), .getDuals(),
.getSlacks(), .getRedCosts(), as well as Variable.getSolution(),
Variable.getRedCost(), Inequality.getDual(), Inequality.getSlack()
will now all raise an exception in case the queried information is
not available.
- Hashing of multi-dimensional map keys for dimensions larger than 2
now works correctly.
- In the object based APIs some methods were shuffled and some argument
types were generalized to super classes. No code changes should be required
but you may have to recompile your application, especially if you used
reflection on the object based API.
- Function XPRSprob.createBranchObjectFromGlobal() was marked deprecated.
It will be removed in a future release.
- The MultipleKnapsack example was split into two examples:
MultipleKnapsack_Arrays and MultipleKnapsack_Collections.
- The PolygonModeling.cs example file was renamed to PolygonObjects.cs to match
the name of the class and the corresponding example in Java.
- Python:
- Using deprecated functionality now causes a warning to be emitted.
Warnings can be disabled with warnings.simplefilter or warnings.filterwarnings;
see the documentation for more information.
- New deprecations: creating unlinked variables, sharing unlinked
variables between several problems, passing variables or constraints objects
to the API while in a callback or presolved, problem.getObjVal, accessing the
constraint body via constraint.body.
- New function constraint.getBody can be used to get an expression
representing the left-hand side of a constraint.
- Functions problem.getSlack, problem.getDual and problem.getRCost have been
renamed to problem.getSlacks, problem.getDuals and problem.getRedCosts.
- The problem.getSolution, problem.getSlacks, problem.getDuals
and problem.getRedCosts functions now behave consistently with XPRSgetsolution,
XPRSgetslacks, XPRSgetduals and XPRSgetredcosts.
- The xpress.Dot operator now supports SciPy matrices of type int32,
int64, float32 and float64 in CSR and CSC format.
- In R, the xprs_getsolution function is now deprecated. Instead, use getsolution,
which can now be called with just a problem argument, along with getslacks,
getduals and getredcosts.
- The Matlab interfaces for Xpress (Solver and Mosel) are now available
for macOS on Apple Silicon M-series processors.
- The C and Java example programs can now be run more easily, with "make all.run".
Xpress Kalis 13.4.0
- Performance improvement to define idle time resources (function 'updateDurationWithIdleTimes').
- New parameter 'kalis_max_min_bound_consistency' to control the propagation level of maximum/minimum constraints.
- New parameter 'kalis_task_variables_domain_type' to control the domain representation of task variables.
Using a bound domain only can improve performance on problems where constructive approaches are used (e.g. earliest start time heuristic).
- Performance improvement for collecting solution values (function 'getsol').
Xpress Mosel 6.8.0
Language
- New annotation property 'noimplicit'.
mmsystem 2.14.1
- 'untar' and 'tarlist' now ignore extended tar flag 'g' instead of failing.
advmod
- The package advmod is now deprecated and will be removed in a future release,
please see section
Logical constructs
of the MIP formulations whitepaper on how to rewrite logical expressions with indicator constraints.
deploy 3.2.1
- Executables produced from a model not using 'deploy' may now have their parameters set via the command line.
hadoop 0.0.3 (Linux platforms only)
moseltest 0.10.1
- Added parallel execution of tests:
- New parameters NBW, ASYNCOUT, LOGWKR, XSRVLOG.
- New tags 'after', 'sync'.
- Added selection of tests by labels:
- New parameters SKIPLABELS, ONLYLABELS.
- New tag 'labels'.
- Added optional coloured display with default report format (new parameter COLOR).
- Coverage report for Jenkins in Cobertura format (enabled with bit 2/value 4 for COVREP).
- This tool is now included with the Xpress binaries in the release build, it also remains available from the
Mosel open source repository.
Xpress Workbench 3.14
- macOS: Workbench now ships in both the Intel and ARM editions of the Xpress installer
- Workbench binary components, unlike the Xpress libraries, are still built to target Intel Macs,
and run on ARM Macs via Apple's Rosetta2 emulation.
- Allow arguments for custom Python environment in Compile Options.
- Also allows for the executable Path to be to Conda instead, and the arguments to specify a Conda environment.
- Can also use "$CONDA_EXE" (without quotes) to use CONDA_EXE environment variable (if present).
as the executable path instead of hard-coding a particular path.
- Support for Insight 4 is removed.
- This also means that logging in to an Insight server is now done via the OS credentials manager, rather than
via username & password.
- DMP: switched from miniconda to micromamba; should not affect experience of configuring an environment
with the environment.yaml file, but the resulting console output may differ from previous version.
- Known issue: the current micromamba release may issue a spurious warning about a missing "root prefix" option,
and the defaulting to the user's home directory; this can be ignored.
- Insight pane has new Manage Connections dialog for more information about Insight connection (replaces the Unlink menu item).
- Profiler now supports Python as well as Mosel models.
- Uses the yappi Python library.
- Unlike Mosel profiler (which puts out a .prof file for each source file), generates a single .prof file
with links to the given source file.
- Updated View Designer to support latest features of VDL 5 in Xpress Insight 5.12.
- Added the "Shelf modify" action to View Designer
- Updated VDL templates to specify VDL version 5.6
Fixed in Release 9.5
Xpress Optimizer 44.01.01
- Fixed handling of infeasible start solutions in LNS heuristic.
- Fixed numerical issue in MIR tightening.
- Fixed an issue where incorrect rows were reported as a reason for infeasibility
during presolve.
- Fixed an issue with wrongly calculated solution infeasibilities when solving with PRESOLVE=0
- All fixes from Xpress 9.4.3 (Optimizer 43.01.04).
Xpress Nonlinear 44.01.01
- Fixed an issue where the SLP optnode callback was never thrown.
- Fixed an issue where single-threaded MISLP solves were not postsolved correctly.
- Fixed a performance issue in the nonlinear data structures that could impact large
nonlinear problems
- All fixes from Xpress 9.4.3 (Optimizer 43.01.04).
Xpress Interfaces 44.01.01
Xpress Global 44.01.01
Xpress BCL 44.01.01
Xpress Mosel 6.8.0
mmxnlp 34.5.3
- 'getparam' now works with Knitro parameters, such as 'xktr_param_opttol'.
- Knitro parameters are now also available via the 'xprs_knitro_param' prefixes.
- Fixed an error that occurred when a multi-objective problem has 'nlctr' objectives but they are all linear.
Fixed in Release 9.4.4
Xpress Optimizer 43.01.05
- Improved the numerical handling in presolve of very large rows.
- Fixed an issue with a local search heuristic running on a background thread
for MIQPs.
- Fixed an issue with in-tree coefficient tightening of a MIP that could result
in memory corruption.
- Fixed some multi-threading issues with the 'B' heuristic for MIPs.
- Fixed an issue where the solution was sometimes unavailable when a multi-
objective solve was interrupted after the first objective.
- Fixed an issue with tolerances that could lead to cancellation of
coefficients in presolving.
- Fixed an issue with semi-continuous columns in presolve.
- Fixed: Loading a semi-continuous variable with negative upper bound now
returns an immediate error at load time, because the model is trivially
infeasible.
- Fixed an issue in IIS resulting in data loss if the subproblem solves failed.
- Fixed an issue in the hybrid gradient algorithm when used with LP folding and
crossover.
Xpress Nonlinear 43.01.05
- Fixed an issue that could lead to an internal error when MISLP ran into LP
infeasibility.
- Querying a Knitro parameter which has not been set by the user now returns
the correct default value.
- XSLPsetdefaults and XSLPsetdefaultcontrol now reset Knitro parameters.
- Fixed an issue where the objectivetransfercol could take a wrong value in the
merit solution when the problem had an additional linear objective
contribution.
- Fixed issues with integer deltas in MISLP.
Xpress Global 43.01.05
- If several licenses are available, a license authorizing the global solver
will now only be consumed when the global solver is invoked. Note that to
guarantee this behaviour, the NLPSOLVER control must not be set to AUTOMATIC.
- Fixed an issue in the hybrid gradient algorithm which could cause a crash.
Xpress Interfaces 43.01.05 (Python, R, Matlab, .NET, Java)
- Python
- Fixed error about deallocating NotImplemented when solving a problem with
a chgbranchobject callback.
- Added support for more iterable index set types to problem.addVariables,
including Pandas Series with sparse integer indices.
- Improved performance of problem.addrows, problem.addcols and
problem.loadproblem, when names are provided.
- Collections of indicator tuples can now be provided to problem.addIndicator.
- Passing an array of expressions in the body argument of xpress.constraint()
now raises an error, instead of silently using the first element as the
constraint body.
- Fixed a crash when passing names=None to problem.addnames.
- Fixed a crash when passing a generator for an array argument, when the
generator does not produce enough values.
- Fixed a problem where a semi-continuous, semi-integer or partial integer
threshold of zero was ignored when creating linked variables.
- The default threshold for semi-continuous, semi-integer and partial integer
variables is now 1.
- Java, .NET
- Fixed a problem where a constant term of 1 was not extracted if a
LinTermMap or QuadTermMap was part of a non-linear expression.
Xpress Mosel 6.6.2
Runtime Library
- The matrix generator now detects and reports invalid bounds for semi continuous and semi integer decision variables
mmxnlp 34.5.3
- getparam now works with Knitro parameters, such as xktr_param_opttol.
- Knitro parameters are now also available via the xprs_knitro_param prefixes.
- Fixed an error that occurred when a multi-objective problem has nlctr objectives but they are
all linear.
mmxprs 4.4.3
- 'estimatemarginals' now raises an error if the problem is presolved, since the functionality is not available in that case.
- Fixed an error that occurred when a multi-objective problem has nlctr objectives but they are all linear
Fixed in Release 9.4.3
Xpress Optimizer 43.01.04
- Fixed an issue that could result in MIP callbacks being fired from a
different thread than the main thread when setting CALLBACKFROMMASTERTHREAD=1
and THREADS=1.
- Fixed an issue with presolving of MIPs with indicator constraints that could
result in invalid tightenings.
- Fixed an issue when setting OBJSCALEFACTOR for MIQPs that could result in a
sub-optimal solution being returned.
- In multi-objective problems, the beforeobjective and afterobjective callbacks
are now fired for empty objectives with non-zero weight. Objectives with zero
weight are considered disabled and will continue to be skipped.
Xpress Nonlinear 43.01.04
- The TIMELIMIT control is now also forwarded to Knitro and both TIMELIMIT
and XSLP_MAXTIME include both the presolve and Knitro time.
- Fixed a potential crash on nonlinear problems with binary rows with only
a few repeating coefficients (where the configuration presolver would have
been applied).
- Fixed an issue with reading in .lp files with nonlinear coefficients like
y * { x ^ 2 } <= 1 .
- Fixed an issue that could lead to a wrong value for the objective transfer
column when the objective coefficient was not +1.
- Fixed an issue with the TIME attribute not including all of nonlinear presolve.
Xpress Interfaces 43.01.04 (Python, R, Matlab, .NET, Java)
- Fixed an issue that caused API calls that change nonlinear formulas to be
recorded incorrectly when API recording is enabled.
- In Java and C# object based API any object information is now correctly
dropped if the problem is reloaded via readProb() or loadLp() and friends.
Previously, that information was not dropped which could lead to stale
information being present.
Fixed in Release 9.4.2
Xpress Optimizer 43.01.03
- Fixed an issue where a wrong solution could be returned by XPRSgetlpsol in a
preintsol callback fired before the initial LP relaxation has been solved.
- Improved the numerical handling when presolving MIPs with very poorly scaled
coefficients.
- Fixed a deadlock that could occur when querying attribute values from callbacks.
- Fixed an issue in the barrier algorithm which could cause a crash.
- Fixed an issue where the LP relaxation solution was not available after a MIP
solve that was completely presolved away.
- Fixed an issue in the mod2 presolver.
- Fixed a numerics issue in a presolver that can lead to wrong results.
- Improved numerical handling with large bound values.
- Fixed issue with restarts in component presolver.
- Improved error message when a duplicate name error occurs.
Xpress Nonlinear 43.01.03
- Fixed an issue on problems with non-convex quadratic objective and pre-existing
objective transfer row that could lead to wrong results.
Xpress Global 43.01.03
- Fixed a potential crash on problems with complementarity constraints.
- Fixed an incorrect NLP-status for global solves that were stopped prematurely.
Xpress Interfaces 43.01.03 (Python, R, Matlab, .NET, Java)
- Fixed a crash when calling XPRS.license(int) from Java and .NET.
- In Python, fixed some issues with problem.getcutlist. It will now correctly return
the list of loaded cuts and return the number of cuts.
- In Python, problem.getSolution now raises an error after interrupting a MIP
solve before a solution is found.
- On Intel platforms, the Python interface requires OpenMP 2024.1 or earlier,
due to an incompatibility in 2024.2.
- Fixed a performance regression in vectorised operations, including xpress.Dot.
- Fixed handling of duplicate terms in XpressProblem.setObjective() in case
a LinTermList or a QuadTermList where passed.
Xpress Mosel 6.6.1
mmodbc 3.12.2
- 'SQLdataframe' now updates parameter 'SQLrowxfr'.
mmsheet 1.14.1
- I/O drivers csv/xls/xlsx now accept to process a 1-line range when reading with option 'skiph'.
mmxprs 4.4.2
- Constant part of objective sometimes had the wrong sign when formulated with 'mmquad'.
- Errors are no longer printed when 'writeprob' is called from a callback.
dmp 1.5.1
- Fixed an issue with the 'name' attribute being set to the wrong value by 'dmpinitcomp' in Insight 5.
Fixed in Release 9.4.1
Xpress Optimizer 43.01.02
- With numerical emphasis activated (i.e. with the NUMERICALEMPHASIS control
set to any value greater than 0), a more careful numerical handling of
cutting planes is applied to improve the numerical stability of some
pathological models.
- Fixed numerical issue in presolve reduction that can lead to incorrect results on extreme inputs
- Fixed an issue in the crossover which could cause a crash.
Xpress Nonlinear 43.01.02
- Fixed a potential issue when reading in problems with an explicit
equalscolumn from .lp-files.
- Fixed an issue where validationindices in the convergence callbacks could
reflect a heuristic instead of the iteration solution.
Xpress Interfaces 43.01.02 (Python, R, Matlab, .NET, Java)
- The Xpress solver libraries have been moved out of the main Python package
(xpress) into a dependency package (xpresslibs). There are no changes to the
installation procedure: the xpresslibs package will be downloaded and installed
automatically by Pip and Conda.
- In Conda environments, the Xpress solver libraries are now installed into the
shared library folder: <env>\Library\bin on Windows, <env>/lib on macOS and
Linux.
Xpress Mosel 6.6.1
Compiler Library
- An issue has been fixed in the handling of procedure reference types coming from packages.
Xpress Workbench 3.13.1
- Fixed issue where --prod command-line option was not correctly surfaced in xpwinsightcmd.
|