Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[osqp-eigen, osqp] Add new port #41676
base: master
Are you sure you want to change the base?
[osqp-eigen, osqp] Add new port #41676
Changes from all commits
ed2050c
477c760
f3d2cc9
08f2daa
951f714
ecb7ae1
5156189
462198c
4778eca
f751aea
0ab8da7
0ac0d5b
d4def60
6af9bf0
0a049c6
ba1b1ea
29d5cee
c938406
5497ca9
4667ee0
176d432
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe a candidate for a separate port?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is currently loaded as a git sub module, which is why I took this approach.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fyi I opened an issue on this upstream some time ago: osqp/osqp#85 . If I recall correctly the critical point is that osqp package also has some code-generation functionalities, and so at least for those they need access to qdldl source code, but I guess there is nothing preventing using an external qdldl for all other uses.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And apparently I forgot that eventually we devendored qdldl in conda-forge, see https://github.com/conda-forge/libosqp-feedstock/blob/main/recipe/patches/0002-build-qdldl-interface-as-part-of-osqp.patch and conda-forge/libosqp-feedstock#8 .
fyi @h-vetinari as he is the author of the patch, so I guess he need to be onboard for the patch to be used here unless the copyright info of the conda-forge feedstock needs to be added here somehow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The feedstock is under bsd-3 license so the patch can be used freely. If properly attributed, even better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I finally got around to looking at the patch. It seems that the patch is not for compiling osqp against a separate installation of qdldl. Instead it pulls in the relevant code of qdldl and compiles it as part of osqp.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where did you get that impression? The patch explicitly removed the
add_subdirectory
of the submodule, and substitute it with afind_package(qdldl)
, see https://github.com/conda-forge/libosqp-feedstock/blob/a60a9fc6866820657fe71a112f35d99fe19a5978/recipe/patches/0002-build-qdldl-interface-as-part-of-osqp.patch#L64 . Are you sure you are not confusing qdldl itself with theqdldl_interface.h
/qdldl_interface.c
files that are instead the osqp files used to interface with qdldl ?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe I misread? "Since we were not building the MKL pardiso bindings correctly anyway we can just ignore the whole
./lin_sys
folder, or rather: just take out what we need and put it in the sources directly, rather than muck around with trying to build a separate library."There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I see why it is misleading. The folder contains both
qdldl_interface.h
andqdldl_interface.c
, and the qdldl submodules, see https://github.com/osqp/osqp/tree/v0.6.3/lin_sys/direct/qdldl . If you check what the patch is actually doing, it takes the non-qdldl files and move them to the osqp library, while using the qdldl external library.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK. Thanks for the explanation.