Skip to content
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

Split into papilo library package, papilo program package #21

Closed
mkoeppe opened this issue Nov 6, 2022 · 14 comments
Closed

Split into papilo library package, papilo program package #21

mkoeppe opened this issue Nov 6, 2022 · 14 comments

Comments

@mkoeppe
Copy link

mkoeppe commented Nov 6, 2022

... to resolve the circular dependencies scip -> papilo -> scip and soplex -> papilo -> soplex.

@ambros-gleixner

@mkoeppe mkoeppe changed the title Split into header-only package, papilo program package Split into papilo library package, papilo program package Nov 11, 2022
@dimpase
Copy link

dimpase commented Nov 14, 2022

alternatively, make building/installing papilo executable conditional on boost availability.

@mkoeppe
Copy link
Author

mkoeppe commented Nov 14, 2022

... or an option to disable the build of the executable (and the check for its dependencies)

@mkoeppe
Copy link
Author

mkoeppe commented Nov 14, 2022

@fschloesser

@fschloesser
Copy link
Contributor

@alexhoen might be able to help here

@alexhoen
Copy link
Member

We discussed it and came to the following conclusion::

As you pointed out, if PaPILO is integrated into a solver, the interface is not needed and therefore does not need to be included.

We recommend (besides building PaPILO without any solver) to just include it before building. since PaPILO is a header-only library.

In this case, the following list of instructions should work and the circular dependency should not be a problem.

mkdir papilo/build cd papilo/build cmake (-DLUSOL=0) .. mkdir ../../scip/build cd ../../scip/build cmake -DPAPILO=PATH .. make cd - make
(Unfortunately, Lusol needs to be deactivated to only include the files in SCIP, but we are looking into that)

Boost is used in many places all over PaPILO so making boost optional is not an option

@mkoeppe
Copy link
Author

mkoeppe commented Nov 22, 2022

Thanks. There's no problem with most uses of boost (we have the boost headers in Sage) but we are patching out the boost program_options requirement because that requires linking to an actual library, and it is not needed by the header-only library used by SCIP/SoPlex.
https://git.sagemath.org/sage.git/commit/?id=a52e72f39c93852e3f8207619dbbad4a18c781d9

https://trac.sagemath.org/ticket/34726

@alexhoen
Copy link
Member

I see.
Would a PaPILO version with optional boost program_options be helpful for you in this case?

@mkoeppe
Copy link
Author

mkoeppe commented Nov 22, 2022

Yes, that would be helpful!

@alexhoen
Copy link
Member

I implemented a non program_options in which case the cl can not be used anymore.
It will be online mirrored tomorrow

@alexhoen alexhoen closed this as completed Dec 6, 2022
@mkoeppe
Copy link
Author

mkoeppe commented Dec 8, 2022

I don't see this change on the master branch

@ambros-gleixner
Copy link
Member

This may be slightly confusing: In PaPILO, the latest development branch is called the "develop" branch, and "master" is the stable/bugfix branch. This change was only performed in the develop branch.

@alexhoen
Copy link
Member

alexhoen commented Dec 8, 2022

yes Ambros is right: develop contains the new features and master is last stable release.

a573730

this is the merge commit of making program options optional in the develop branch.

Sorry for the inconvience

@mkoeppe
Copy link
Author

mkoeppe commented Dec 8, 2022

Ah, I see, thanks!

@alexhoen
Copy link
Member

alexhoen commented Dec 9, 2022

If it does not work, feel free to reopen the ticket or contact us via e-mail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants