@JuliaRegistrator register
Release notes:
- Added
MOI.SolverVersion to the JuMP / MOI interface. It reports the version
of the Xpress library actually loaded at runtime (via
XPRSgetversionnumbers), which may differ from the version the bindings were
built against, as a major.minor.build string.
- Added
MOI.ListOfConstraintTypesPresent to the JuMP / MOI interface. It
reports each (F, S) constraint-type tuple currently present in the model
exactly once.
- Added
MOI.ObjectiveFunctionType to the JuMP / MOI interface. It reports the
type of the objective function currently set (MOI.VariableIndex,
MOI.ScalarAffineFunction, MOI.ScalarQuadraticFunction, or
MOI.VectorOfVariables), defaulting to MOI.ScalarAffineFunction when no
objective has been set.
- Fixed the low-level wrapper for deferred-reference (dref) output-array
functions such as XPRSgetqrowqmatrixtriplets when called with
pre-allocated arrays (or nothing). The generated code previously skipped
the C call on that path, returning the untouched input arrays and a size of
0; it now issues the call and returns the correct data and size.
- Hardened the generated bindings against a garbage-collection use-after-free
that could corrupt the heap (observed as intermittent access violations on
Windows). String output buffers are now kept alive with GC.@preserve
across the unsafe_string(pointer(...)) conversion, and callbacks are rooted
in the problem's callback list before being registered with the C library.
- Reported callback support accurately:
MOI.supports now returns true only
for MOI.UserCutCallback (the one implemented callback) and false for
MOI.LazyConstraintCallback and MOI.HeuristicCallback, instead of a
blanket true that made JuMP offer callbacks that then failed at runtime.
The feature docs were corrected to match.
- Cleaned up the generated low-level wrapper following upstream review
feedback: module globals are now const or concretely typed (avoiding the
untyped-global performance penalty); Libdl/SparseArrays are brought in
with import and referenced qualified; the broken default argument on
Base.showerror was removed; and redundant global/export statements
were dropped (all XPRS-prefixed symbols are exported by a single loop).
- Fixed the
SparseMatrixCSC overload of XPRSaddcols, which passed a
malformed map.nzval instead of the matrix's non-zero values.
@JuliaRegistrator register
Release notes:
MOI.SolverVersionto the JuMP / MOI interface. It reports the versionof the Xpress library actually loaded at runtime (via
XPRSgetversionnumbers), which may differ from the version the bindings werebuilt against, as a
major.minor.buildstring.MOI.ListOfConstraintTypesPresentto the JuMP / MOI interface. Itreports each
(F, S)constraint-type tuple currently present in the modelexactly once.
MOI.ObjectiveFunctionTypeto the JuMP / MOI interface. It reports thetype of the objective function currently set (
MOI.VariableIndex,MOI.ScalarAffineFunction,MOI.ScalarQuadraticFunction, orMOI.VectorOfVariables), defaulting toMOI.ScalarAffineFunctionwhen noobjective has been set.
functions such as
XPRSgetqrowqmatrixtripletswhen called withpre-allocated arrays (or
nothing). The generated code previously skippedthe C call on that path, returning the untouched input arrays and a size of
0; it now issues the call and returns the correct data and size.
that could corrupt the heap (observed as intermittent access violations on
Windows). String output buffers are now kept alive with
GC.@preserveacross the
unsafe_string(pointer(...))conversion, and callbacks are rootedin the problem's callback list before being registered with the C library.
MOI.supportsnow returnstrueonlyfor
MOI.UserCutCallback(the one implemented callback) andfalseforMOI.LazyConstraintCallbackandMOI.HeuristicCallback, instead of ablanket
truethat made JuMP offer callbacks that then failed at runtime.The feature docs were corrected to match.
feedback: module globals are now
constor concretely typed (avoiding theuntyped-global performance penalty);
Libdl/SparseArraysare brought inwith
importand referenced qualified; the broken default argument onBase.showerrorwas removed; and redundantglobal/exportstatementswere dropped (all
XPRS-prefixed symbols are exported by a single loop).SparseMatrixCSCoverload ofXPRSaddcols, which passed amalformed
map.nzvalinstead of the matrix's non-zero values.