5 Commits

Author SHA1 Message Date
Leonardo Arena
2713818c7c community/xxhash: disable tests on armhf
make: *** [Makefile:129: check] Bus error
2018-12-18 08:06:18 +00:00
alpine-mips-patches
492665f7e9 community/xxhash: fix 20x speed degradation on x86*, upgrade to 0.6.5
Yes, it is 20 times slower on x86* than it should be because xxhash.c always
uses "safe" memcpy()-based methods for unaligned memory access (XXH_readXX)
irregardless of input alignment due to x86-default XXH_FORCE_ALIGN_CHECK=0.
This ends up with real memcpy() calls in hot path (with -O2 too).

The bug affects Alpine x86* (not just edge, but at least 3.8 too -- i.e. this
is not something introduced in 0.6.5) for aligned and unaligned inputs. Other
architectures are severely affected for unaligned inputs only.

The fix lifts the XXH_FORCE_MEMORY_ACCESS=1 condition to enable XXH_readXX
methods based on __attribute__((__packed__)) usage everywhere except ARMv6
(which is covered by its own case earlier).

This is safe and fast because the compiler will either:
 - use direct storage access instructions on capable architectures such as
   aarch64, armv7, ppc64le, s390x, x86* irregardless of input alignment;
 - or use relatively fast LWL/LWR instructions on mips* with unaligned input;
 - or use byte load/stores and shifts/ors on armel with unaligned input which
   is still faster then memcpy() call.

All aports that use xxhash.c are likely affected. For example, community/zstd
suffers too though not so grave (~15% difference for "zstd -t" on big archive)
and main/lz4 is twice slower on basic compression levels.

Other aport changes:
 - modernize;
 - enable check(); it is short and fast so suitable for slow builders too.

The python part is left intact though newer version exists.
2018-12-18 07:14:07 +00:00
Jakub Jirutka
63f5e7d295 [various]: unify names of licenses according to SPDX
This commit updates $license variable in all APKBUILDs to comply with
short names specified by SPDX version 3.0 [1] where possible. It was
done using find-and-replace method on substrings inside $license
variables.

Only license names were updated, not "expressions" specifying relation
between the licenses (e.g. "X and Y", "X or Y", "X and (Y or Z)") or
exceptions (e.g. "X with exceptions").

Many licenses have a version or multiple variants, e.g. MPL-2.0,
BSD-2-Clause, BSD-3-Clause. However, $license in many aports do not
contain license version or variant. Since there's no way how to infer
this information just from abuild, it were left without the variant
suffix or version, i.e. non SPDX compliant.

GNU licenses (AGPL, GFDL, GPL, LGPL) are especially complicated. They
exist in two variants: -only (formerly e.g. GPL-2.0) and -or-later
(formerly e.g. GPL-2.0+). We did not systematically noted distinguish
between these variants, so GPL-2.0, GPL2, GPLv2 etc. may mean
GPL-2.0-only or GPL-2.0-or-later. Thus GNU licenses without "+" (e.g.
GPL2+) were left without the variant suffix, i.e. non SPDX compliant.

Note: This commit just fixes format of the license names, no
verification has been done if the specified license information is
actually correct!

[1]: https://spdx.org/licenses/
2017-12-30 21:05:50 +01:00
Łukasz Jendrysik
9d87343a42 community/xxhash: rebuild against new version of python3 2017-02-18 16:33:01 +01:00
Stuart Cardall
1a74530067 testing/xxhash: move to community
moves xxhash / py2-xxhash / py3-xxhash to community so xpra builds
with xxhash support.
2017-02-15 13:45:48 +00:00