Avoid intermediate QUBO files for MQLib runs - #6
Conversation
bernalde
left a comment
There was a problem hiding this comment.
Question: This implementation still invokes the MQLib executable and streams the serialized model through stdin on Unix; it does not provide direct shared-library/C-API access. Since #3 specifically asks for direct access to MQLib as a shared library, should the PR body use Refs #3 instead of Closes #3 unless maintainers intend to accept this stdin path as the full resolution?
No code-level blocking issues found in the diff.
Tests run:
julia +1.12 --project=. test/runtests.jlpassed (MQLib input: 4 passed; QUBODrivers suite: 124 passed).julia +1.12 --project=. -e 'using Pkg; Pkg.test()'passed from/tmp/mqlib-review-test.KjtI3U, a clean copy without the ignored localManifest.toml.- Manual default-hyperheuristic smoke test through
MQLib.Optimizer()passed. gh pr checks 6reports Ubuntu and Windows CI passing.
|
Closing this as superseded by the shared-library path in #15. The useful part of this PR is the Unix-only If we still care about optimizing the executable fallback after #15 lands and |
Summary
/dev/stdinon Unix platforms, avoiding an intermediate.qubofile on disk./dev/stdin, including Windows.Note: the current
MQLib_jllbuild recipe only installsExecutableProduct("MQLib"); it does not provide a shared-library product or C ABI. This PR isolates the executable input boundary and removes the file write where the current artifact supports doing so, but it does not yet implement direct shared-library access.Follow-up work for direct shared-library access
MQLib_jllwith a shared library product.Tests run
julia +1.12 --project=. test/runtests.jl- passed (MQLib input: 4 passed; QUBODrivers suite: 124 passed).julia +1.12 --project=. -e 'using Pkg; Pkg.test()'from/tmp/mqlib-ci-test.RMVVVu, a CI-like copy without the repo's ignored localManifest.toml- passed.git -c core.whitespace=cr-at-eol diff --check- passed.Notes about tests not run
julia +1.12 --project=. -e 'using Pkg; Pkg.test()'directly in this checkout was not usable because the ignored localManifest.tomlpins path dependencies from this machine and conflicts with the current QUBOTools checkout version. The CI-like temporary-copy run above excludes that ignored manifest.Refs #3