Xpress Mosel is the premier algebraic modeling and programming language. Its best-in-class functionality enables operations researchers, and modeling experts to rapidly develop and deploy optimization solutions that solve complex, real-world business problems. It provides an easy-to-learn, robust way to interact with solver engines, and tightly integrates with Xpress Insight to deploy models into powerful, business user-friendly applications.
Xpress Mosel 6.2 builds out the programming features of the Mosel language.At the same time, this new release also provides various extensions to Mosel'soptimization capabilities by giving access to new functionality of the XpressSolvers. Most importantly, the mmxprsmodule now makes it possible toformulate, configure, and solve optimization problems with multipleobjectives, along with access to new Solver status parameters. Via Mosel the beta features of the Xpress global optimization solver can be tested. For users of Xpress Insight 5, this release brings new packages to Mosel, mminsightrestapi and mminsightscenario allowing to conveniently invoke operations from Insight 5 REST API.
Updates to Optimization capability:
Mosel core programming features:
New features of Mosel components
Visit the Xpress release notes to learn more.
Xpress Mosel 6.2 builds out the programming features of the Mosel language.At the same time, this new release also provides various extensions to Mosel'soptimization capabilities by giving access to new functionality of the XpressSolvers. Most importantly, the mmxprsmodule now makes it possible toformulate, configure, and solve optimization problems with multipleobjectives, along with access to new Solver status parameters. Via Mosel the beta features of the Xpress global optimization solver can be tested. For users of Xpress Insight 5, this release brings new packages to Mosel, mminsightrestapi and mminsightscenario allowing to conveniently invoke operations from Insight 5 REST API.
Updates to Optimization capability:
- Mosel adds support for optimization problems with multiple objectives supporting the new Xpress Solver controls and functions by providing new variants of maximize/minimize statement to configure priorities, weight absolute and relative tolerance per objective function conveniently.
- Mosel 6.2 supports the beta features of Xpress 9.0, the global optimization solving capabilities – which requires an evaluation license. Clients interested in participating in the beta are invited to write to [email protected].
- With Xpress Solver 9.0., formerly deprecated parameters have been removed.
- When used from Mosel, these will simply be ignored.
- To prevent ambiguity between global entities and the global solver functionality, some MIP related functionality has been renamed.
- Solver controls of type integer that have become reals, remain of integer type in Mosel to ensure backwards compatibility. A future release of Mosel, will add support for such type changes.
- See Xpress release notes for more details on renaming, deprecation and removal. We advise to carefully assess your code w.r.t. these solver updates
Mosel core programming features:
- The most immediately visible new programming feature are a set of new compiler warnings to ease the long-term development and maintenance of Mosel programs by providing detailed reports on unused entities and inconsistent private/public declarations of subroutines. By default, unsused local and non-public entities are reported. Add ‘-wu’ as compiler option to extend the reporting to public entities.
- Shortened form of 'if' is now available which allows for asingle-line statement.
if condition: dosomething - Updates to the names generation functionality: When using 'setname' on an mpvar, linctr or nlctr, it will take priority over default Mosel names, including names of public entities. Similarly, names for arrays of variables or constraints can now be provided, where names specified for individual entries take priority over array names.
- Windows filename length limit is now handled consistently in all locations where filenames can be used in Mosel (fcopy, fdelete,...).
- DSO unloading has been reworked to avoid repeated (un)loading of modules, hence leading to improved performance.
- It is now possible to clone arrays, lists and sets of user type by using the type name.
New features of Mosel components
- The 'mmreflect' module allows a model or package to programmatically access Mosel entities whose names and types were not known at compile-time. This module has been extended with access routines for records and record fields allowing to retrieve and modify these.
- New packages ‘mminsightrestapi’ and ‘mminsightscenario’ allow a Mosel app or external Mosel model to invoke operations from the Insight 5 REST API. The former works generically against all REST endpoints, while the latter is focused on scenario data access, e.g., read and write scenario data, or clone and execute scenarios.
- In module ‘mmxprs’ the CHECKTIME callback functionality has been extended to ease its use for logging and handling of user interrupts. Users can now specify a custom delay. Along with that comes access to new Solver status parameters.
- Improved 'deploy' functionality that provides access to Mosel command line parameters from within Mosel models.
- Handling of special values (NAN/INF) by the 'mmsheet' I/O drivers xls and xlsx. In particular, spreadsheet reading can be configured to ignore spreadsheet cells showing error values and a replacement for NaN and +/- infinity for reading and writing spreadsheets can be defined by the user.
- New versions of Mosel tools include the handling of unions and subroutine references by the documentation annotations and the 'moseldoc' tool and a substantial update of the open-source tool 'moseltest', including a coverage mode for Mosel packages and models and its use with Insight app ZIP archives.
Visit the Xpress release notes to learn more.
Updated 3 years ago
Version 3.0FICO
Community Manager
Joined July 21, 2025
FICO® Xpress Optimization Blog
Follow this blog board to get notified when there's new activity