Closed LebedevRI closed 2 months ago
cc @kaol
We already provide a AppImage, Snap package, and a binary archive that is compatible with as many linux distributions as we can feasible make it. Each of these targets already works on the latest debian release to my knowledge. Just maintaining these targets has already proven a lot of work, so (speaking for myself) I would not like to add another linux target to that list.
The fix from the debian side also seems quite straightforward. From your previous issues it is clear that you are running a debug build of the MiniZinc compiler. If debian switches its build to a Release build, that would likely correspond to the ~40% slowdown.
We already provide a AppImage, Snap package, and a binary archive that is compatible with as many linux distributions as we can feasible make it. Each of these targets already works on the latest debian release to my knowledge. Just maintaining these targets has already proven a lot of work, so (speaking for myself) I would not like to add another linux target to that list.
The fix from the debian side also seems quite straightforward. From your previous issues it is clear that you are running a debug build of the MiniZinc compiler. If debian switches its build to a Release build, that would likely correspond to the ~40% slowdown.
If only it were that simple :) Not exactly. That helps with only half of that slowdown, i get another -16..-20% improvement from LTO and 2-stage PGO, and i haven't finished dialing it to 11 yet :)
I would love debian to do the right thing, but that would require active help from the current maintainer with no disagreements on the road taken. I don't think that will happen. @kaol ?
If you have already sent a patch with the compile flags you'd like to see used I must have missed it and I'll have to ask you to send it again. If you haven't then I think it's unreasonable to begin with asking whether I'd do the "right thing".
If you're going to go for a binary outside of a distribution I don't see what benefit having a deb would give.
Oh, hi! Thanks for updating gecode / minizinc packages.
If you have already sent a patch with the compile flags you'd like to see used I must have missed it and I'll have to ask you to send it again.
I have not sent anything yet.
If you haven't then I think it's unreasonable to begin with asking whether I'd do the "right thing".
Locally, i've ended up with this monstrosity: https://github.com/Lebedevri/minizinc-meta This is not how, i guess, it should be done in debian proper, but that was what worked for me locally, and could work for an "official" package.
Roughly, the "right thing", in an increasing order of unlikehood:
-DCMAKE_BUILD_TYPE=Release
+CFLAGS=CXXFLAGS="-O3 -DNDEBUG"
. Now, nowadays i'm not actually sure this is a good idea. There is a number of faulty assertions and whatnot even in latest releases of forementioned packages. -DCMAKE_C_VISIBILITY_PRESET=hidden -DCMAKE_CXX_VISIBILITY_PRESET=hidden -DCMAKE_VISIBILITY_INLINES_HIDDEN=ON
<template>pkg-constraint-programming</template>
debian salsa org (and perhaps a team), and move packaging repositories there (+ other solvers, plus likely z3)minizinc-python
minizinc-python
None of this requires having a meta-build package, but it effectively results in me hijacking packaging maintainership for these packages, which is why i'm not sure if this can actually happen.
This really isn't the place to have this discussion, I invite you to take it to https://lists.debian.org/debian-science/
Yeah that is beyond my current abilities.
It sounds to me like there is more than enough willingness to solve this issue on the Debian side. I’ll close this issue here.
Hm, and current debian packages (minizinc+chuffed) is even 5 times slower, not 40%. That is kind-of funny.
I think you have found some good compilation improvements, and they are likely to be more impactful on longer runs of MiniZinc (and its solvers). It just seems all the more reason to me to get in contact with the Debian maintainers and help them understand what is currently going wrong.
Would there be any interest, in addition to providing the existing "linux binary archive", to also provide a debian package repository?
After running into inadequacies of the existing debian package, i've took a stab at creating a package for minizinc+gecode+chuffed from scratch, and honestly the results make me sad. On a simple-ish model, it's already 30-40% faster than debian package: