e9720a001d
Update Travis CI config, add AppVeyor for Windows CI coverage.
costan
2017-06-27 11:11:16 -07:00
f24f9d2d97
Explicitly copy internal::wordmask to the stack array to work around a compiler optimization with LLVM that converts const stack arrays to global arrays. This is a temporary change and should be reverted when https://reviews.llvm.org/D30759 is fixed.
tmsriram
2017-06-15 14:24:18 -07:00
82deffcde7
Remove benchmarking support for fastlz.
ysaed
2017-06-13 14:35:23 -07:00
18488d6212
Use 64 bit little endian on ppc64le.
alkis
2017-06-06 01:05:05 -07:00
7b9532b878
Improve the SSE2 macro check on Windows.
alkis
2017-06-02 10:21:49 -07:00
7dadceea52
Check for the existence of sys/uio.h in autoconf build.
alkis
2017-06-02 07:51:56 -07:00
83179dd8be
Remove quicklz and lzf support in benchmarks.
jyrki
2017-05-09 07:41:36 -07:00
c8131680d0
Provide a CMakeLists.txt.
vrabaud
2017-04-26 04:24:58 -07:00
ed3b7b242b
Clean up unused function warnings in snappy.
costan
2017-03-17 13:43:18 -07:00
7d7a8ec805
Add Travis CI configuration to snappy and fix the make build.
costan
2017-03-10 12:27:00 -08:00
1cd3ab02e9
Rename README to README.md. It already in markdown, we might as well let github know so that it renders nicely.
alkis
2017-03-03 12:13:38 -08:00
597fa795de
Delete UnalignedCopy64 from snappy-stubs since the version in snappy.cc is more robust and possibly faster (assuming the compiler knows how to best copy 8 bytes between locations in memory the fastest way possible - a rather safe bet).
alkis
2017-02-22 10:26:14 -08:00
626e1b9faa
Use #ifdef __SSE2__ for the emmintrin.h include, otherwise snappy.cc does not compile with -march=prescott.
alkis
2017-01-30 12:57:14 -08:00
27c5d86527
Re-work fast path for handling copies in zippy decompression.
Geoff Pike
2016-07-06 08:24:48 -07:00
4a74094080
Speed up Zippy decompression in PIE mode by removing the penalty for global array access.
Sriraman Tallam
2016-06-29 10:08:46 -07:00
38a5ec5fca
Re-work fast path that emits copies in zippy compression.
Geoff Pike
2016-06-28 11:53:11 -07:00
094c67de88
Speed up the EmitLiteral fast path, +1.62% for ZFlat benchmarks.
ckennelly
2016-06-27 05:01:31 -07:00
fce661fa8c
Speed up zippy decompression by removing some zero-extensions.
Geoff Pike
2016-06-24 11:56:17 -07:00
e788e527d3
Avoid calling memset when resizing the buffer.
ckennelly
2016-05-26 14:51:33 -07:00
32d6d7d8a2
Merge pull request #6 from deviance/provide-pkg-config-data
Steinar H. Gunderson
2016-05-23 11:16:01 +02:00
971613510f
Add #ifdef to guard against macro redefinition if this is included in another Google project that also defines this.
Peter Kasting
2016-05-16 14:30:12 -07:00
0000f997dd
Merge pull request #13 from huachaohuang/patch-1
Steinar H. Gunderson
2016-05-20 11:27:09 +02:00
d53de18799
Make heuristic match skipping more aggressive.
Steinar H. Gunderson
2016-04-05 11:50:26 +02:00
2b9152d9c5
Default to glibtoolize instead of libtoolize if it exists, and also make it customizable through the environment variable $LIBTOOLIZE.
Steinar H. Gunderson
2016-03-10 18:37:05 +01:00
0800b1e4c7
Work around an issue where some compilers interpret <:: as a trigraph. Also correct the namespace name.
Steinar H. Gunderson
2016-01-08 15:05:44 +01:00
e7d2818d1e
Unbreak the open-source build for ARM due to missing ATTRIBUTE_PACKED declaration.
Steinar H. Gunderson
2016-01-08 11:40:06 +01:00
7525a1600d
Fix an issue where the ByteSource path (used for parsing std::string) would incorrectly accept some invalid varints that the other path would not, causing potential CHECK-failures if the unit test were run with --write_uncompressed and a corrupted input file.
Steinar H. Gunderson
2016-01-04 12:52:15 +01:00
ef5598aa0e
Make UNALIGNED_LOAD16/32 on ARMv7 go through an explicitly unaligned struct, to avoid the compiler coalescing multiple loads into a single load instruction (which only work for aligned accesses).
Steinar H. Gunderson
2016-01-04 12:51:31 +01:00
b8cd908a86
Allow to compile in nested packages.
Huachao Huang
2015-10-28 17:18:23 +08:00
96a2e340f3
Update URLs in the Snappy README to reflect the move to GitHub.
Steinar H. Gunderson
2015-08-26 17:50:48 +02:00
0852af7606
Move the logic from ComputeTable into the unit test, which means it's run automatically together with the other tests, and also removes the stray function ComputeTable() (which was never referenced by anything else in the open-source version, causing compiler warnings for some) out of the core library.
Steinar H. Gunderson
2015-08-19 11:37:51 +02:00
d2cb73b6ac
Provide pkg-config data
Aleksandr Makarov
2015-07-31 16:25:17 +03:00
efb39e81b8
Release Snappy 1.1.3; getting the new Uncompress variant in a release is nice, and it's also good to finally get an official release out after the migration to GitHub.
Steinar H. Gunderson
2015-07-07 10:45:04 +02:00
eb66d8176b
Initialized members of SnappyArrayWriter and SnappyDecompressionValidator. These members were almost surely initialized before use by other member functions, but Coverity was warning about this. Eliminating these warnings minimizes clutter in that report and the likelihood of overlooking a real bug.
Steinar H. Gunderson
2015-06-22 16:10:47 +02:00
b2312c4c25
Add support for Uncompress(source, sink). Various changes to allow Uncompress(source, sink) to get the same performance as the different variants of Uncompress to Cord/DataBuffer/String/FlatBuffer.
Steinar H. Gunderson
2015-06-22 16:03:28 +02:00
b2ad960067
Changes to eliminate compiler warnings on MSVC
Steinar H. Gunderson
2015-06-22 15:48:29 +02:00
e7a897e187
Fixed unit tests to compile under MSVC.
Steinar H. Gunderson
2015-06-22 15:45:11 +02:00
86eb8b152b
Change a few branch annotations that profiling found to be wrong. Overall performance is neutral or slightly positive.
Steinar H. Gunderson
2015-06-22 15:41:30 +02:00
11ccdfb868
Sync with various Google-internal changes.
Steinar H. Gunderson
2015-06-22 16:07:58 +02:00
22acaf438e
Change some internal path names.
Steinar H. Gunderson
2015-06-22 15:39:08 +02:00
19690d78e8
Fix public issue 82: Stop distributing benchmark data files that have unclear or unsuitable licensing.
snappy.mirrorbot@gmail.com
2014-02-19 10:31:49 +00:00
f82bff66af
Add support for padding in the Snappy framed format.
snappy.mirrorbot@gmail.com
2013-10-25 13:31:27 +00:00
6bc39e24c7
Add autoconf tests for size_t and ssize_t. Sort-of resolves public issue 79; it would solve the problem if MSVC typically used autoconf. However, it gives a natural place (config.h) to put the typedef even for MSVC.
snappy.mirrorbot@gmail.com
2013-08-13 12:55:00 +00:00
7c3c01df77
When we compare the number of bytes produced with the offset for a backreference, make the signedness of the bytes produced clear, by sticking it into a size_t. This avoids a signed/unsigned compare warning from MSVC (public issue 71), and also is slightly clearer.
snappy.mirrorbot@gmail.com
2013-07-29 11:06:44 +00:00
2f0aaf8631
In the fast path for decompressing literals, instead of checking whether there's 16 bytes free and then checking right afterwards (when having subtracted the literal size) that there are now 5 bytes free, just check once for 21 bytes. This skips a compare and a branch; although it is easily predictable, it is still a few cycles on a fast path that we would like to get rid of.
snappy.mirrorbot@gmail.com
2013-06-30 19:24:03 +00:00
062bf544a6
Make the two IncrementalCopy* functions take in an ssize_t instead of a len, in order to avoid having to do 32-to-64-bit signed conversions on a hot path during decompression. (Also fixes some MSVC warnings, mentioned in public issue 75, but more of those remain.) They cannot be size_t because we expect them to go negative and test for that.
snappy.mirrorbot@gmail.com
2013-06-14 21:42:26 +00:00
328aafa198
Add support for uncompressing to iovecs (scatter I/O). Windows does not have struct iovec defined anywhere, so we define our own version that's equal to what UNIX typically has.
snappy.mirrorbot@gmail.com
2013-06-13 16:19:52 +00:00
cd92eb0852
Some code reorganization needed for an internal change.
snappy.mirrorbot@gmail.com
2013-06-12 19:51:15 +00:00
a3e928d62b
Supports truncated test data in zippy benchmark.
snappy.mirrorbot@gmail.com
2013-04-09 15:33:30 +00:00
8168446c7e
Make ./snappy_unittest pass without "srcdir" being defined.
snappy.mirrorbot@gmail.com
2013-02-05 14:30:05 +00:00
27a0cc3949
Increase the Zippy block size from 32 kB to 64 kB, winning ~3% density while being effectively performance neutral.
snappy.mirrorbot@gmail.com
2013-01-18 12:16:36 +00:00
81f34784b7
Adjust the Snappy open-source distribution for the changes in Google's internal file API.
snappy.mirrorbot@gmail.com
2013-01-06 19:21:26 +00:00
698af469b4
Change a few ORs to additions where they don't matter. This helps the compiler use the LEA instruction more efficiently, since e.g. a + (b << 2) can be encoded as one instruction. Even more importantly, it can constant-fold the COPY_* enums together with the shifted negative constants, which also saves some instructions. (We don't need it for LITERAL, since it happens to be 0.)
snappy.mirrorbot@gmail.com
2013-01-04 11:54:20 +00:00
55209f9b92
Stop giving -Werror to automake, due to an incompatibility between current versions of libtool and automake on non-GNU platforms (e.g. Mac OS X).
snappy.mirrorbot@gmail.com
2012-10-08 11:37:16 +00:00
b86e81c8b3
Fix public issue 66: Document GetUncompressedLength better, in particular that it leaves the source in a state that's not appropriate for RawUncompress.
snappy.mirrorbot@gmail.com
2012-08-17 13:54:47 +00:00
2e225ba821
Fix public issue 64: Check for <sys/time.h> at configure time, since MSVC seemingly does not have it.
snappy.mirrorbot@gmail.com
2012-07-31 11:44:44 +00:00
e89f20ab46
Handle the case where gettimeofday() goes backwards or returns the same value twice; it could cause division by zero in the unit test framework. (We already had one fix for this in place, but it was incomplete.)
snappy.mirrorbot@gmail.com
2012-07-04 09:34:48 +00:00
3ec60ac987
Mark ARMv4 as not supporting unaligned accesses (not just ARMv5 and ARMv6); apparently Debian still targets these by default, giving us segfaults on armel.
snappy.mirrorbot@gmail.com
2012-07-04 09:28:33 +00:00
be80d6f74f
Fix public bug #62: Remove an extraneous comma at the end of an enum list, causing compile errors when embedded in Mozilla on OpenBSD.
snappy.mirrorbot@gmail.com
2012-05-22 09:46:05 +00:00
8b95464146
Snappy library no longer depends on iostream.
snappy.mirrorbot@gmail.com
2012-05-22 09:32:50 +00:00
dc63e0ad96
For 32-bit platforms, do not try to accelerate multiple neighboring 32-bit loads with a 64-bit load during compression (it's not a win).
snappy.mirrorbot@gmail.com
2012-02-23 17:00:36 +00:00
f8829ea39d
Enable the use of unaligned loads and stores for ARM-based architectures where they are available (ARMv7 and higher). This gives a significant speed boost on ARM, both for compression and decompression. It should not affect x86 at all.
snappy.mirrorbot@gmail.com
2012-02-21 17:02:17 +00:00
f2e184f638
Lower the size allocated in the "corrupted input" unit test from 256 MB to 2 MB. This fixes issues with running the unit test on platforms with little RAM (e.g. some ARM boards).
snappy.mirrorbot@gmail.com
2012-02-11 22:11:22 +00:00
e750dc0f05
Minor refactoring to accomodate changes in Google's internal code tree.
snappy.mirrorbot@gmail.com
2012-01-08 17:55:48 +00:00
d9068ee301
Fix public issue r57: Fix most warnings with -Wall, mostly signed/unsigned warnings. There are still some in the unit test, but the main .cc file should be clean. We haven't enabled -Wall for the default build, since the unit test is still not clean.
snappy.mirrorbot@gmail.com
2012-01-04 13:10:46 +00:00
0755c81519
Add a framing format description. We do not have any implementation of this at the current point, but there seems to be enough of a general interest in the topic (cf. public bug #34).
snappy.mirrorbot@gmail.com
2012-01-04 10:46:39 +00:00
d7eb2dc413
Speed up decompression by moving the refill check to the end of the loop.
snappy.mirrorbot@gmail.com
2011-12-05 21:27:26 +00:00
5ed51ce15f
Speed up decompression by making the fast path for literals faster.
snappy.mirrorbot@gmail.com
2011-11-23 11:14:17 +00:00
0c1b9c3904
Fix public issue #53: Update the README to the API we actually open-sourced with.
snappy.mirrorbot@gmail.com
2011-11-08 14:46:39 +00:00
b61134bc0a
In the format description, use a clearer example to emphasize that varints are stored in little-endian. Patch from Christian von Roques.
snappy.mirrorbot@gmail.com
2011-10-05 12:27:12 +00:00
e2e3032868
Fix public issue #50: Include generic byteswap macros. Also include Solaris 10 and FreeBSD versions.
snappy.mirrorbot@gmail.com
2011-09-15 09:50:05 +00:00
593002da3c
Partially fix public issue 50: Remove an extra comma from the end of some enum declarations, as it seems the Sun compiler does not like it.
snappy.mirrorbot@gmail.com
2011-08-10 18:57:27 +00:00
f1063a5dc4
Use the right #ifdef test for sys/mman.h.
snappy.mirrorbot@gmail.com
2011-08-10 18:44:16 +00:00
41c827a2fa
Fix public issue #47: Small comment cleanups in the unit test.
snappy.mirrorbot@gmail.com
2011-08-10 01:22:09 +00:00
59aeffa604
Fix public issue #46: Format description said "3-byte offset" instead of "4-byte offset" for the longest copies.
snappy.mirrorbot@gmail.com
2011-08-10 01:14:43 +00:00
57e7cd7255
Fix public issue #44: Make the definition and declaration of CompressFragment identical, even regarding cv-qualifiers.
snappy.mirrorbot@gmail.com
2011-06-28 11:40:25 +00:00
13c4a449a8
Correct an inaccuracy in the Snappy format description. (I stumbled into this when changing the way we decompress literals.)
snappy.mirrorbot@gmail.com
2011-06-04 10:19:05 +00:00
f540673740
Speed up decompression by removing a fast-path attempt.
snappy.mirrorbot@gmail.com
2011-06-03 20:53:06 +00:00
197f3ee9f9
Speed up decompression by not needing a lookup table for literal items.
snappy.mirrorbot@gmail.com
2011-06-03 20:47:14 +00:00
2e12124bd8
Remove an unneeded goto in the decompressor; it turns out that the state of ip_ after decompression (or attempted decompresion) is completely irrelevant, so we don't need the trailer.
snappy.mirrorbot@gmail.com
2011-06-02 18:06:54 +00:00
c266bbf321
Speed up decompression by caching ip_.
snappy.mirrorbot@gmail.com
2011-06-02 17:59:40 +00:00
d0ee043bc5
Fix the numbering of the headlines in the Snappy format description.
snappy.mirrorbot@gmail.com
2011-05-17 08:48:25 +00:00
6c7053871f
Fix public issue #32: Add compressed format documentation for Snappy. This text is new, but an earlier version from Zeev Tarantov was used as reference.
snappy.mirrorbot@gmail.com
2011-05-16 08:59:18 +00:00
a1f9f9973d
Fix public issue #39: Pick out the median runs based on CPU time, not real time. Also, use nth_element instead of sort, since we only need one element.
snappy.mirrorbot@gmail.com
2011-05-09 21:29:02 +00:00
f7b105683c
Fix public issue #38: Make the microbenchmark framework handle properly cases where gettimeofday() can stand return the same result twice (as sometimes on GNU/Hurd) or go backwards (as when the user adjusts the clock). We avoid a division-by-zero, and put a lower bound on the number of iterations -- the same amount as we use to calibrate.
snappy.mirrorbot@gmail.com
2011-05-09 21:28:45 +00:00
d8d481427a
Fix public issue #37: Only link snappy_unittest against -lz and other autodetected libraries, not libsnappy.so (which doesn't need any such dependency).
snappy.mirrorbot@gmail.com
2011-05-03 23:22:52 +00:00