[Pkg-parrot-devel] Bug#636944: Bug#636944: Please binNMU parrot on i386
Allison Randal
allison at parrot.org
Tue Aug 23 21:38:41 UTC 2011
On 08/09/2011 05:03 PM, Dominique Dumont wrote:
> IMHO, there are 2 long-term solutions:
>
> - without ffi: as kibi suggested, this requires a --with{,out}-libffi flag in
> parrot's Configure.pl. In the meantime, the binNMU on i386 will achieve the
> same result.
>
> - with ffi: parrot needs a build-dep on libfffi-dev and libparrot-dev needs a
> dependency on libffi-dev. Then rakudo needs to be re-built for all arches.
>
> Only upstream parrot people know what's best.
>
> Allison, what do you think ?
I've been thinking about it, and talking with other Parrot devs. The
thing is, libffi is entirely optional for Parrot. When it's present at
compile-time, Parrot will use it, and when it's not, Parrot uses a
different method for linking to C libraries (precompiled signature
thunks). It's not clear yet in the long-term which method will be
preferred in Parrot, so I've been debating which method we should choose
in the Debian packaging.
(What is clear is that we need to use the provided Parrot configure
flags to explicitly choose one method, rather than relying on the
dynamic configuration options to choose a method based on what's
installed at compile-time. For packaging, we need the builds for all
architectures to be the same, no matter what's installed on the build
machine.)
Weighing the options, it is certain than parrot+libffi is slower than
parrot+thunks at runtime, but it's unlikely that the slow-down is
significant enough to be noticed by Rakudo. On the other hand, there is
a chance that parrot+libffi is smaller (for install footprint) than
parrot+thunks, but again, unlikely that the size difference is
significant. Both of these questions need more testing and benchmarking
to be certain.
On the whole, if there's no radical difference in performance or
resources, I'm inclined to go with the conservative strategy for now,
and not add any additional dependencies to the Parrot packages until
it's clear that we need them. This means configuring Parrot in Debian
using the --without-libffi option (which already exists), to guarantee
that all packages on all architectures are built without libffi.
Allison
More information about the Pkg-parrot-devel
mailing list