[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