[Debian-med-packaging] Bug#938431: Fixing sambamba 0.8.6

Matthias Klumpp matthias at tenstral.net
Thu Nov 28 14:42:20 GMT 2019


Am Do., 28. Nov. 2019 um 15:19 Uhr schrieb Andreas Tille <andreas at an3as.eu>:
>
> Hi Pjotr,
>
> On Thu, Nov 28, 2019 at 07:50:34AM -0600, Pjotr Prins wrote:
> > Dear Andreas and Matthias,
> >
> > Good news, I think I have fixed the Sambamba bug! After a 3 day bug
> > hunt. Thanks Andreas for pushing me again. Let me ping you when I have
> > a new release. I need to do some performance testing still. But no
> > more segfaults using the Debian ldc 1.17 compiler.
>
> Very cool!  Just waiting for your ping. :-)
>
> > With regard to BioD I suggest the following:
> >
> > 1. We create libraries libbiod.so and libbiod.a which ship with D
> >    source code - they act like header files in C.
> > 2. sambamba uses these header files to build (not linking against the
> >    shared lib)
> >
> > The reason is simply performance. The ldc compiler is capable of heavy
> > optimizations (mostly unrolling loops and inlining code) when it has
> > all code available. Point I am making that code is available anyway.
> >
> > You can choose to change that compile time behaviour by linking
> > against a shared lib, but just realise you'll end with a much slower
> > sambamba. The BioD source code shoud be included because you can't
> > build anything without it.
>
> As we discussed at BioHackathon: I just got your point but I have no
> idea how to implement that source code shipping model for the
> libbiod-dev package.  I'm fine with whatever is done with D packaging
> in Debian.
>
> To get some numbers:  Do you think rinning test/test_suite.sh could
> give some impression about the performance gain / loss?

So, we absolutely have to build this separately, ideally using Meson,
in Debian - otherwise transitions to newer or different D compilers
will become an even bigger mess than they already are. Also, embedded
code copies are explicitly forbidden by the Debian Policy.
So, libbiod needs a Meson build file or Makefile or anything that
generates a library installed to a system path that sambamba can find
later.
BUT it doesn't mean that the library has to be a shared library. If
you find that linking libbiod statically into sambamba increases
performance significantly, we can make the libbiod package generate
both a shared and static library and then make sambamba prefer the
static library. This should make transition handling possible as it
used to (our tracker is smart enough to detect this), satisfy Debian
policy and reduce the speed impact on sambamba.

I have been on vacation for a while and then needed to go through a
lot of stuff @work, so sorry for replying late and also I hope I
understand the problem correctly.
FWIW, very, very soon (maybe this week) LDC 1.18 will land in Debian,
so these packages will go through yet another transition. If you can
make sure they build & work with LDC 1.18, it would be very great.

Cheers,
    Matthias




-- 
I welcome VSRE emails. See http://vsre.info/



More information about the Debian-med-packaging mailing list