-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Commit 1696f02 introduces a DIRECT_MEM mode that accesses SCIP data structures directly in memory instead of going through the public accessor functions. Unfortunately, this introduces a dependency on the exact structure layout. The problem is, this structure layout can change from one SCIP version to the other. (This is an issue we also had with the C macros in the context of JSCIPOpt: scipopt/JSCIPOpt@5db250f where it affected binary compatibility between libjscip and different versions of libscip.)
As a result, not only is JNA_SCIP compiled to only work with a particular version of SCIP, but a new version can also require changes to the actual source code of JNA_SCIP, because address offsets are hardcoded in your Java code.
So performance-wise, it may be a win (though I would also love to see your benchmark results on this), but compatibility-wise, DIRECT_MEM is unfortunately a nightmare.
Hence, I would suggest to at least turn DIRECT_MEM off by default in the published source code (if it is worth keeping at all due to the performance issue).