]> git.cworth.org Git - apitrace/blob - thirdparty/snappy/ChangeLog
Update snappy to version 1.0.5.
[apitrace] / thirdparty / snappy / ChangeLog
1 ------------------------------------------------------------------------
2 r60 | snappy.mirrorbot@gmail.com | 2012-02-23 18:00:36 +0100 (Thu, 23 Feb 2012) | 57 lines
3
4 For 32-bit platforms, do not try to accelerate multiple neighboring
5 32-bit loads with a 64-bit load during compression (it's not a win).
6
7 The main target for this optimization is ARM, but 32-bit x86 gets
8 a small gain, too, although there is noise in the microbenchmarks.
9 It's a no-op for 64-bit x86. It does not affect decompression.
10
11 Microbenchmark results on a Cortex-A9 1GHz, using g++ 4.6.2 (from
12 Ubuntu/Linaro), -O2 -DNDEBUG -Wa,-march=armv7a -mtune=cortex-a9
13 -mthumb-interwork, minimum 1000 iterations:
14
15   Benchmark            Time(ns)    CPU(ns) Iterations
16   ---------------------------------------------------
17   BM_ZFlat/0            1158277    1160000       1000 84.2MB/s  html (23.57 %)    [ +4.3%]
18   BM_ZFlat/1           14861782   14860000       1000 45.1MB/s  urls (50.89 %)    [ +1.1%]
19   BM_ZFlat/2             393595     390000       1000 310.5MB/s  jpg (99.88 %)    [ +0.0%]
20   BM_ZFlat/3             650583     650000       1000 138.4MB/s  pdf (82.13 %)    [ +3.1%]
21   BM_ZFlat/4            4661480    4660000       1000 83.8MB/s  html4 (23.55 %)   [ +4.3%]
22   BM_ZFlat/5             491973     490000       1000 47.9MB/s  cp (48.12 %)      [ +2.0%]
23   BM_ZFlat/6             193575     192678       1038 55.2MB/s  c (42.40 %)       [ +9.0%]
24   BM_ZFlat/7              62343      62754       3187 56.5MB/s  lsp (48.37 %)     [ +2.6%]
25   BM_ZFlat/8           17708468   17710000       1000 55.5MB/s  xls (41.34 %)     [ -0.3%]
26   BM_ZFlat/9            3755345    3760000       1000 38.6MB/s  txt1 (59.81 %)    [ +8.2%]
27   BM_ZFlat/10           3324217    3320000       1000 36.0MB/s  txt2 (64.07 %)    [ +4.2%]
28   BM_ZFlat/11          10139932   10140000       1000 40.1MB/s  txt3 (57.11 %)    [ +6.4%]
29   BM_ZFlat/12          13532109   13530000       1000 34.0MB/s  txt4 (68.35 %)    [ +5.0%]
30   BM_ZFlat/13           4690847    4690000       1000 104.4MB/s  bin (18.21 %)    [ +4.1%]
31   BM_ZFlat/14            830682     830000       1000 43.9MB/s  sum (51.88 %)     [ +1.2%]
32   BM_ZFlat/15             84784      85011       2235 47.4MB/s  man (59.36 %)     [ +1.1%]
33   BM_ZFlat/16           1293254    1290000       1000 87.7MB/s  pb (23.15 %)      [ +2.3%]
34   BM_ZFlat/17           2775155    2780000       1000 63.2MB/s  gaviota (38.27 %) [+12.2%]
35
36 Core i7 in 32-bit mode (only one run and 100 iterations, though, so noisy):
37
38   Benchmark            Time(ns)    CPU(ns) Iterations
39   ---------------------------------------------------
40   BM_ZFlat/0             227582     223464       3043 437.0MB/s  html (23.57 %)    [ +7.4%]
41   BM_ZFlat/1            2982430    2918455        233 229.4MB/s  urls (50.89 %)    [ +2.9%]
42   BM_ZFlat/2              46967      46658      15217 2.5GB/s  jpg (99.88 %)       [ +0.0%]
43   BM_ZFlat/3             115298     114864       5833 783.2MB/s  pdf (82.13 %)     [ +1.5%]
44   BM_ZFlat/4             913440     899743        778 434.2MB/s  html4 (23.55 %)   [ +0.3%]
45   BM_ZFlat/5             110302     108571       7000 216.1MB/s  cp (48.12 %)      [ +0.0%]
46   BM_ZFlat/6              44409      43372      15909 245.2MB/s  c (42.40 %)       [ +0.8%]
47   BM_ZFlat/7              15713      15643      46667 226.9MB/s  lsp (48.37 %)     [ +2.7%]
48   BM_ZFlat/8            2625539    2602230        269 377.4MB/s  xls (41.34 %)     [ +1.4%]
49   BM_ZFlat/9             808884     811429        875 178.8MB/s  txt1 (59.81 %)    [ -3.9%]
50   BM_ZFlat/10            709532     700000       1000 170.5MB/s  txt2 (64.07 %)    [ +0.0%]
51   BM_ZFlat/11           2177682    2162162        333 188.2MB/s  txt3 (57.11 %)    [ -1.4%]
52   BM_ZFlat/12           2849640    2840000        250 161.8MB/s  txt4 (68.35 %)    [ -1.4%]
53   BM_ZFlat/13            849760     835476        778 585.8MB/s  bin (18.21 %)     [ +1.2%]
54   BM_ZFlat/14            165940     164571       4375 221.6MB/s  sum (51.88 %)     [ +1.4%]
55   BM_ZFlat/15             20939      20571      35000 196.0MB/s  man (59.36 %)     [ +2.1%]
56   BM_ZFlat/16            239209     236544       2917 478.1MB/s  pb (23.15 %)      [ +4.2%]
57   BM_ZFlat/17            616206     610000       1000 288.2MB/s  gaviota (38.27 %) [ -1.6%]
58
59 R=sanjay
60
61 ------------------------------------------------------------------------
62 r59 | snappy.mirrorbot@gmail.com | 2012-02-21 18:02:17 +0100 (Tue, 21 Feb 2012) | 107 lines
63
64 Enable the use of unaligned loads and stores for ARM-based architectures 
65 where they are available (ARMv7 and higher). This gives a significant 
66 speed boost on ARM, both for compression and decompression. 
67 It should not affect x86 at all. 
68  
69 There are more changes possible to speed up ARM, but it might not be 
70 that easy to do without hurting x86 or making the code uglier. 
71 Also, we de not try to use NEON yet. 
72  
73 Microbenchmark results on a Cortex-A9 1GHz, using g++ 4.6.2 (from Ubuntu/Linaro), 
74 -O2 -DNDEBUG -Wa,-march=armv7a -mtune=cortex-a9 -mthumb-interwork: 
75  
76 Benchmark            Time(ns)    CPU(ns) Iterations
77 ---------------------------------------------------
78 BM_UFlat/0             524806     529100        378 184.6MB/s  html            [+33.6%]
79 BM_UFlat/1            5139790    5200000        100 128.8MB/s  urls            [+28.8%]
80 BM_UFlat/2              86540      84166       1901 1.4GB/s  jpg               [ +0.6%]
81 BM_UFlat/3             215351     210176        904 428.0MB/s  pdf             [+29.8%]
82 BM_UFlat/4            2144490    2100000        100 186.0MB/s  html4           [+33.3%]
83 BM_UFlat/5             194482     190000       1000 123.5MB/s  cp              [+36.2%]
84 BM_UFlat/6              91843      90175       2107 117.9MB/s  c               [+38.6%]
85 BM_UFlat/7              28535      28426       6684 124.8MB/s  lsp             [+34.7%]
86 BM_UFlat/8            9206600    9200000        100 106.7MB/s  xls             [+42.4%]
87 BM_UFlat/9            1865273    1886792        106 76.9MB/s  txt1             [+32.5%]
88 BM_UFlat/10           1576809    1587301        126 75.2MB/s  txt2             [+32.3%]
89 BM_UFlat/11           4968450    4900000        100 83.1MB/s  txt3             [+32.7%]
90 BM_UFlat/12           6673970    6700000        100 68.6MB/s  txt4             [+32.8%]
91 BM_UFlat/13           2391470    2400000        100 203.9MB/s  bin             [+29.2%]
92 BM_UFlat/14            334601     344827        522 105.8MB/s  sum             [+30.6%]
93 BM_UFlat/15             37404      38080       5252 105.9MB/s  man             [+33.8%]
94 BM_UFlat/16            535470     540540        370 209.2MB/s  pb              [+31.2%]
95 BM_UFlat/17           1875245    1886792        106 93.2MB/s  gaviota          [+37.8%]
96 BM_UValidate/0         178425     179533       1114 543.9MB/s  html            [ +2.7%]
97 BM_UValidate/1        2100450    2000000        100 334.8MB/s  urls            [ +5.0%]
98 BM_UValidate/2           1039       1044     172413 113.3GB/s  jpg             [ +3.4%]
99 BM_UValidate/3          59423      59470       3363 1.5GB/s  pdf               [ +7.8%]
100 BM_UValidate/4         760716     766283        261 509.8MB/s  html4           [ +6.5%]
101 BM_ZFlat/0            1204632    1204819        166 81.1MB/s  html (23.57 %)   [+32.8%]
102 BM_ZFlat/1           15656190   15600000        100 42.9MB/s  urls (50.89 %)   [+27.6%]
103 BM_ZFlat/2             403336     410677        487 294.8MB/s  jpg (99.88 %)   [+16.5%]
104 BM_ZFlat/3             664073     671140        298 134.0MB/s  pdf (82.13 %)   [+28.4%]
105 BM_ZFlat/4            4961940    4900000        100 79.7MB/s  html4 (23.55 %)  [+30.6%]
106 BM_ZFlat/5             500664     501253        399 46.8MB/s  cp (48.12 %)     [+33.4%]
107 BM_ZFlat/6             217276     215982        926 49.2MB/s  c (42.40 %)      [+25.0%]
108 BM_ZFlat/7              64122      65487       3054 54.2MB/s  lsp (48.37 %)    [+36.1%]
109 BM_ZFlat/8           18045730   18000000        100 54.6MB/s  xls (41.34 %)    [+34.4%]
110 BM_ZFlat/9            4051530    4000000        100 36.3MB/s  txt1 (59.81 %)   [+25.0%]
111 BM_ZFlat/10           3451800    3500000        100 34.1MB/s  txt2 (64.07 %)   [+25.7%]
112 BM_ZFlat/11          11052340   11100000        100 36.7MB/s  txt3 (57.11 %)   [+24.3%]
113 BM_ZFlat/12          14538690   14600000        100 31.5MB/s  txt4 (68.35 %)   [+24.7%]
114 BM_ZFlat/13           5041850    5000000        100 97.9MB/s  bin (18.21 %)    [+32.0%]
115 BM_ZFlat/14            908840     909090        220 40.1MB/s  sum (51.88 %)    [+22.2%]
116 BM_ZFlat/15             86921      86206       1972 46.8MB/s  man (59.36 %)    [+42.2%]
117 BM_ZFlat/16           1312315    1315789        152 86.0MB/s  pb (23.15 %)     [+34.5%]
118 BM_ZFlat/17           3173120    3200000        100 54.9MB/s  gaviota (38.27%) [+28.1%]
119
120
121 The move from 64-bit to 32-bit operations for the copies also affected 32-bit x86;
122 positive on the decompression side, and slightly negative on the compression side
123 (unless that is noise; I only ran once):
124
125 Benchmark              Time(ns)    CPU(ns) Iterations
126 -----------------------------------------------------
127 BM_UFlat/0                86279      86140       7778 1.1GB/s  html             [ +7.5%]
128 BM_UFlat/1               839265     822622        778 813.9MB/s  urls           [ +9.4%]
129 BM_UFlat/2                 9180       9143      87500 12.9GB/s  jpg             [ +1.2%]
130 BM_UFlat/3                35080      35000      20000 2.5GB/s  pdf              [+10.1%]
131 BM_UFlat/4               350318     345000       2000 1.1GB/s  html4            [ +7.0%]
132 BM_UFlat/5                33808      33472      21212 701.0MB/s  cp             [ +9.0%]
133 BM_UFlat/6                15201      15214      46667 698.9MB/s  c              [+14.9%]
134 BM_UFlat/7                 4652       4651     159091 762.9MB/s  lsp            [ +7.5%]
135 BM_UFlat/8              1285551    1282528        538 765.7MB/s  xls            [+10.7%]
136 BM_UFlat/9               282510     281690       2414 514.9MB/s  txt1           [+13.6%]
137 BM_UFlat/10              243494     239286       2800 498.9MB/s  txt2           [+14.4%]
138 BM_UFlat/11              743625     740000       1000 550.0MB/s  txt3           [+14.3%]
139 BM_UFlat/12              999441     989717        778 464.3MB/s  txt4           [+16.1%]
140 BM_UFlat/13              412402     410076       1707 1.2GB/s  bin              [ +7.3%]
141 BM_UFlat/14               54876      54000      10000 675.3MB/s  sum            [+13.0%]
142 BM_UFlat/15                6146       6100     100000 660.8MB/s  man            [+14.8%]
143 BM_UFlat/16               90496      90286       8750 1.2GB/s  pb               [ +4.0%]
144 BM_UFlat/17              292650     292000       2500 602.0MB/s  gaviota        [+18.1%]
145 BM_UValidate/0            49620      49699      14286 1.9GB/s  html             [ +0.0%]
146 BM_UValidate/1           501371     500000       1000 1.3GB/s  urls             [ +0.0%]
147 BM_UValidate/2              232        227    3043478 521.5GB/s  jpg            [ +1.3%]
148 BM_UValidate/3            17250      17143      43750 5.1GB/s  pdf              [ -1.3%]
149 BM_UValidate/4           198643     200000       3500 1.9GB/s  html4            [ -0.9%]
150 BM_ZFlat/0               227128     229415       3182 425.7MB/s  html (23.57 %) [ -1.4%]
151 BM_ZFlat/1              2970089    2960000        250 226.2MB/s  urls (50.89 %) [ -1.9%]
152 BM_ZFlat/2                45683      44999      15556 2.6GB/s  jpg (99.88 %)    [ +2.2%]
153 BM_ZFlat/3               114661     113136       6364 795.1MB/s  pdf (82.13 %)  [ -1.5%]
154 BM_ZFlat/4               919702     914286        875 427.2MB/s  html4 (23.55%) [ -1.3%]
155 BM_ZFlat/5               108189     108422       6364 216.4MB/s  cp (48.12 %)   [ -1.2%]
156 BM_ZFlat/6                44525      44000      15909 241.7MB/s  c (42.40 %)    [ -2.9%]
157 BM_ZFlat/7                15973      15857      46667 223.8MB/s  lsp (48.37 %)  [ +0.0%]
158 BM_ZFlat/8              2677888    2639405        269 372.1MB/s  xls (41.34 %)  [ -1.4%]
159 BM_ZFlat/9               800715     780000       1000 186.0MB/s  txt1 (59.81 %) [ -0.4%]
160 BM_ZFlat/10              700089     700000       1000 170.5MB/s  txt2 (64.07 %) [ -2.9%]
161 BM_ZFlat/11             2159356    2138365        318 190.3MB/s  txt3 (57.11 %) [ -0.3%]
162 BM_ZFlat/12             2796143    2779923        259 165.3MB/s  txt4 (68.35 %) [ -1.4%]
163 BM_ZFlat/13              856458     835476        778 585.8MB/s  bin (18.21 %)  [ -0.1%]
164 BM_ZFlat/14              166908     166857       4375 218.6MB/s  sum (51.88 %)  [ -1.4%]
165 BM_ZFlat/15               21181      20857      35000 193.3MB/s  man (59.36 %)  [ -0.8%]
166 BM_ZFlat/16              244009     239973       2917 471.3MB/s  pb (23.15 %)   [ -1.4%]
167 BM_ZFlat/17              596362     590000       1000 297.9MB/s  gaviota (38.27%) [ +0.0%]
168
169 R=sanjay
170
171 ------------------------------------------------------------------------
172 r58 | snappy.mirrorbot@gmail.com | 2012-02-11 23:11:22 +0100 (Sat, 11 Feb 2012) | 9 lines
173
174 Lower the size allocated in the "corrupted input" unit test from 256 MB
175 to 2 MB. This fixes issues with running the unit test on platforms with
176 little RAM (e.g. some ARM boards).
177
178 Also, reactivate the 2 MB test for 64-bit platforms; there's no good
179 reason why it shouldn't be.
180
181 R=sanjay
182
183 ------------------------------------------------------------------------
184 r57 | snappy.mirrorbot@gmail.com | 2012-01-08 18:55:48 +0100 (Sun, 08 Jan 2012) | 2 lines
185
186 Minor refactoring to accomodate changes in Google's internal code tree.
187
188 ------------------------------------------------------------------------
189 r56 | snappy.mirrorbot@gmail.com | 2012-01-04 14:10:46 +0100 (Wed, 04 Jan 2012) | 19 lines
190
191 Fix public issue r57: Fix most warnings with -Wall, mostly signed/unsigned
192 warnings. There are still some in the unit test, but the main .cc file should
193 be clean. We haven't enabled -Wall for the default build, since the unit test
194 is still not clean.
195
196 This also fixes a real bug in the open-source implementation of
197 ReadFileToStringOrDie(); it would not detect errors correctly.
198
199 I had to go through some pains to avoid performance loss as the types
200 were changed; I think there might still be some with 32-bit if and only if LFS
201 is enabled (ie., size_t is 64-bit), but for regular 32-bit and 64-bit I can't
202 see any losses, and I've diffed the generated GCC assembler between the old and
203 new code without seeing any significant choices. If anything, it's ever so
204 slightly faster.
205
206 This may or may not enable compression of very large blocks (>2^32 bytes)
207 when size_t is 64-bit, but I haven't checked, and it is still not a supported
208 case.
209
210 ------------------------------------------------------------------------
211 r55 | snappy.mirrorbot@gmail.com | 2012-01-04 11:46:39 +0100 (Wed, 04 Jan 2012) | 6 lines
212
213 Add a framing format description. We do not have any implementation of this at
214 the current point, but there seems to be enough of a general interest in the
215 topic (cf. public bug #34).
216
217 R=csilvers,sanjay
218
219 ------------------------------------------------------------------------
220 r54 | snappy.mirrorbot@gmail.com | 2011-12-05 22:27:26 +0100 (Mon, 05 Dec 2011) | 81 lines
221
222 Speed up decompression by moving the refill check to the end of the loop.
223
224 This seems to work because in most of the branches, the compiler can evaluate
225 “ip_limit_ - ip” in a more efficient way than reloading ip_limit_ from memory
226 (either by already having the entire expression in a register, or reconstructing
227 it from “avail”, or something else). Memory loads, even from L1, are seemingly
228 costly in the big picture at the current decompression speeds.
229
230 Microbenchmarks (64-bit, opt mode):
231
232 Westmere (Intel Core i7):
233
234   Benchmark     Time(ns)    CPU(ns) Iterations
235   --------------------------------------------
236   BM_UFlat/0       74492      74491     187894 1.3GB/s  html      [ +5.9%]
237   BM_UFlat/1      712268     712263      19644 940.0MB/s  urls    [ +3.8%]
238   BM_UFlat/2       10591      10590    1000000 11.2GB/s  jpg      [ -6.8%]
239   BM_UFlat/3       29643      29643     469915 3.0GB/s  pdf       [ +7.9%]
240   BM_UFlat/4      304669     304667      45930 1.3GB/s  html4     [ +4.8%]
241   BM_UFlat/5       28508      28507     490077 823.1MB/s  cp      [ +4.0%]
242   BM_UFlat/6       12415      12415    1000000 856.5MB/s  c       [ +8.6%]
243   BM_UFlat/7        3415       3415    4084723 1039.0MB/s  lsp    [+18.0%]
244   BM_UFlat/8      979569     979563      14261 1002.5MB/s  xls    [ +5.8%]
245   BM_UFlat/9      230150     230148      60934 630.2MB/s  txt1    [ +5.2%]
246   BM_UFlat/10     197167     197166      71135 605.5MB/s  txt2    [ +4.7%]
247   BM_UFlat/11     607394     607390      23041 670.1MB/s  txt3    [ +5.6%]
248   BM_UFlat/12     808502     808496      17316 568.4MB/s  txt4    [ +5.0%]
249   BM_UFlat/13     372791     372788      37564 1.3GB/s  bin       [ +3.3%]
250   BM_UFlat/14      44541      44541     313969 818.8MB/s  sum     [ +5.7%]
251   BM_UFlat/15       4833       4833    2898697 834.1MB/s  man     [ +4.8%]
252   BM_UFlat/16      79855      79855     175356 1.4GB/s  pb        [ +4.8%]
253   BM_UFlat/17     245845     245843      56838 715.0MB/s  gaviota [ +5.8%]
254
255 Clovertown (Intel Core 2):
256
257   Benchmark     Time(ns)    CPU(ns) Iterations
258   --------------------------------------------
259   BM_UFlat/0      107911     107890     100000 905.1MB/s  html    [ +2.2%]
260   BM_UFlat/1     1011237    1011041      10000 662.3MB/s  urls    [ +2.5%]
261   BM_UFlat/2       26775      26770     523089 4.4GB/s  jpg       [ +0.0%]
262   BM_UFlat/3       48103      48095     290618 1.8GB/s  pdf       [ +3.4%]
263   BM_UFlat/4      437724     437644      31937 892.6MB/s  html4   [ +2.1%]
264   BM_UFlat/5       39607      39600     358284 592.5MB/s  cp      [ +2.4%]
265   BM_UFlat/6       18227      18224     768191 583.5MB/s  c       [ +2.7%]
266   BM_UFlat/7        5171       5170    2709437 686.4MB/s  lsp     [ +3.9%]
267   BM_UFlat/8     1560291    1559989       8970 629.5MB/s  xls     [ +3.6%]
268   BM_UFlat/9      335401     335343      41731 432.5MB/s  txt1    [ +3.0%]
269   BM_UFlat/10     287014     286963      48758 416.0MB/s  txt2    [ +2.8%]
270   BM_UFlat/11     888522     888356      15752 458.1MB/s  txt3    [ +2.9%]
271   BM_UFlat/12    1186600    1186378      10000 387.3MB/s  txt4    [ +3.1%]
272   BM_UFlat/13     572295     572188      24468 855.4MB/s  bin     [ +2.1%]
273   BM_UFlat/14      64060      64049     218401 569.4MB/s  sum     [ +4.1%]
274   BM_UFlat/15       7264       7263    1916168 555.0MB/s  man     [ +1.4%]
275   BM_UFlat/16     108853     108836     100000 1039.1MB/s  pb     [ +1.7%]
276   BM_UFlat/17     364289     364223      38419 482.6MB/s  gaviota [ +4.9%]
277
278 Barcelona (AMD Opteron):
279
280   Benchmark     Time(ns)    CPU(ns) Iterations
281   --------------------------------------------
282   BM_UFlat/0      103900     103871     100000 940.2MB/s  html    [ +8.3%]
283   BM_UFlat/1     1000435    1000107      10000 669.5MB/s  urls    [ +6.6%]
284   BM_UFlat/2       24659      24652     567362 4.8GB/s  jpg       [ +0.1%]
285   BM_UFlat/3       48206      48193     291121 1.8GB/s  pdf       [ +5.0%]
286   BM_UFlat/4      421980     421850      33174 926.0MB/s  html4   [ +7.3%]
287   BM_UFlat/5       40368      40357     346994 581.4MB/s  cp      [ +8.7%]
288   BM_UFlat/6       19836      19830     708695 536.2MB/s  c       [ +8.0%]
289   BM_UFlat/7        6100       6098    2292774 581.9MB/s  lsp     [ +9.0%]
290   BM_UFlat/8     1693093    1692514       8261 580.2MB/s  xls     [ +8.0%]
291   BM_UFlat/9      365991     365886      38225 396.4MB/s  txt1    [ +7.1%]
292   BM_UFlat/10     311330     311238      44950 383.6MB/s  txt2    [ +7.6%]
293   BM_UFlat/11     975037     974737      14376 417.5MB/s  txt3    [ +6.9%]
294   BM_UFlat/12    1303558    1303175      10000 352.6MB/s  txt4    [ +7.3%]
295   BM_UFlat/13     517448     517290      27144 946.2MB/s  bin     [ +5.5%]
296   BM_UFlat/14      66537      66518     210352 548.3MB/s  sum     [ +7.5%]
297   BM_UFlat/15       7976       7974    1760383 505.6MB/s  man     [ +5.6%]
298   BM_UFlat/16     103121     103092     100000 1097.0MB/s  pb     [ +8.7%]
299   BM_UFlat/17     391431     391314      35733 449.2MB/s  gaviota [ +6.5%]
300
301 R=sanjay
302
303 ------------------------------------------------------------------------
304 r53 | snappy.mirrorbot@gmail.com | 2011-11-23 12:14:17 +0100 (Wed, 23 Nov 2011) | 88 lines
305
306 Speed up decompression by making the fast path for literals faster.
307
308 We do the fast-path step as soon as possible; in fact, as soon as we know the
309 literal length. Since we usually hit the fast path, we can then skip the checks
310 for long literals and available input space (beyond what the fast path check
311 already does).
312
313 Note that this changes the decompression Writer API; however, it does not
314 change the ABI, since writers are always templatized and as such never
315 cross compilation units. The new API is slightly more general, in that it
316 doesn't hard-code the value 16. Note that we also take care to check
317 for len <= 16 first, since the other two checks almost always succeed
318 (so we don't want to waste time checking for them until we have to).
319
320 The improvements are most marked on Nehalem, but are generally positive
321 on other platforms as well. All microbenchmarks are 64-bit, opt.
322
323 Clovertown (Core 2):
324
325   Benchmark     Time(ns)    CPU(ns) Iterations
326   --------------------------------------------
327   BM_UFlat/0      110226     110224     100000 886.0MB/s  html    [ +1.5%]
328   BM_UFlat/1     1036523    1036508      10000 646.0MB/s  urls    [ -0.8%]
329   BM_UFlat/2       26775      26775     522570 4.4GB/s  jpg       [ +0.0%]
330   BM_UFlat/3       49738      49737     280974 1.8GB/s  pdf       [ +0.3%]
331   BM_UFlat/4      446790     446792      31334 874.3MB/s  html4   [ +0.8%]
332   BM_UFlat/5       40561      40562     350424 578.5MB/s  cp      [ +1.3%]
333   BM_UFlat/6       18722      18722     746903 568.0MB/s  c       [ +1.4%]
334   BM_UFlat/7        5373       5373    2608632 660.5MB/s  lsp     [ +8.3%]
335   BM_UFlat/8     1615716    1615718       8670 607.8MB/s  xls     [ +2.0%]
336   BM_UFlat/9      345278     345281      40481 420.1MB/s  txt1    [ +1.4%]
337   BM_UFlat/10     294855     294855      47452 404.9MB/s  txt2    [ +1.6%]
338   BM_UFlat/11     914263     914263      15316 445.2MB/s  txt3    [ +1.1%]
339   BM_UFlat/12    1222694    1222691      10000 375.8MB/s  txt4    [ +1.4%]
340   BM_UFlat/13     584495     584489      23954 837.4MB/s  bin     [ -0.6%]
341   BM_UFlat/14      66662      66662     210123 547.1MB/s  sum     [ +1.2%]
342   BM_UFlat/15       7368       7368    1881856 547.1MB/s  man     [ +4.0%]
343   BM_UFlat/16     110727     110726     100000 1021.4MB/s  pb     [ +2.3%]
344   BM_UFlat/17     382138     382141      36616 460.0MB/s  gaviota [ -0.7%]
345
346 Westmere (Core i7):
347
348   Benchmark     Time(ns)    CPU(ns) Iterations
349   --------------------------------------------
350   BM_UFlat/0       78861      78853     177703 1.2GB/s  html      [ +2.1%]
351   BM_UFlat/1      739560     739491      18912 905.4MB/s  urls    [ +3.4%]
352   BM_UFlat/2        9867       9866    1419014 12.0GB/s  jpg      [ +3.4%]
353   BM_UFlat/3       31989      31986     438385 2.7GB/s  pdf       [ +0.2%]
354   BM_UFlat/4      319406     319380      43771 1.2GB/s  html4     [ +1.9%]
355   BM_UFlat/5       29639      29636     472862 791.7MB/s  cp      [ +5.2%]
356   BM_UFlat/6       13478      13477    1000000 789.0MB/s  c       [ +2.3%]
357   BM_UFlat/7        4030       4029    3475364 880.7MB/s  lsp     [ +8.7%]
358   BM_UFlat/8     1036585    1036492      10000 947.5MB/s  xls     [ +6.9%]
359   BM_UFlat/9      242127     242105      57838 599.1MB/s  txt1    [ +3.0%]
360   BM_UFlat/10     206499     206480      67595 578.2MB/s  txt2    [ +3.4%]
361   BM_UFlat/11     641635     641570      21811 634.4MB/s  txt3    [ +2.4%]
362   BM_UFlat/12     848847     848769      16443 541.4MB/s  txt4    [ +3.1%]
363   BM_UFlat/13     384968     384938      36366 1.2GB/s  bin       [ +0.3%]
364   BM_UFlat/14      47106      47101     297770 774.3MB/s  sum     [ +4.4%]
365   BM_UFlat/15       5063       5063    2772202 796.2MB/s  man     [ +7.7%]
366   BM_UFlat/16      83663      83656     167697 1.3GB/s  pb        [ +1.8%]
367   BM_UFlat/17     260224     260198      53823 675.6MB/s  gaviota [ -0.5%]
368
369 Barcelona (Opteron):
370
371   Benchmark     Time(ns)    CPU(ns) Iterations
372   --------------------------------------------
373   BM_UFlat/0      112490     112457     100000 868.4MB/s  html    [ -0.4%]
374   BM_UFlat/1     1066719    1066339      10000 627.9MB/s  urls    [ +1.0%]
375   BM_UFlat/2       24679      24672     563802 4.8GB/s  jpg       [ +0.7%]
376   BM_UFlat/3       50603      50589     277285 1.7GB/s  pdf       [ +2.6%]
377   BM_UFlat/4      452982     452849      30900 862.6MB/s  html4   [ -0.2%]
378   BM_UFlat/5       43860      43848     319554 535.1MB/s  cp      [ +1.2%]
379   BM_UFlat/6       21419      21413     653573 496.6MB/s  c       [ +1.0%]
380   BM_UFlat/7        6646       6645    2105405 534.1MB/s  lsp     [ +0.3%]
381   BM_UFlat/8     1828487    1827886       7658 537.3MB/s  xls     [ +2.6%]
382   BM_UFlat/9      391824     391714      35708 370.3MB/s  txt1    [ +2.2%]
383   BM_UFlat/10     334913     334816      41885 356.6MB/s  txt2    [ +1.7%]
384   BM_UFlat/11    1042062    1041674      10000 390.7MB/s  txt3    [ +1.1%]
385   BM_UFlat/12    1398902    1398456      10000 328.6MB/s  txt4    [ +1.7%]
386   BM_UFlat/13     545706     545530      25669 897.2MB/s  bin     [ -0.4%]
387   BM_UFlat/14      71512      71505     196035 510.0MB/s  sum     [ +1.4%]
388   BM_UFlat/15       8422       8421    1665036 478.7MB/s  man     [ +2.6%]
389   BM_UFlat/16     112053     112048     100000 1009.3MB/s  pb     [ -0.4%]
390   BM_UFlat/17     416723     416713      33612 421.8MB/s  gaviota [ -2.0%]
391
392 R=sanjay
393
394 ------------------------------------------------------------------------
395 r52 | snappy.mirrorbot@gmail.com | 2011-11-08 15:46:39 +0100 (Tue, 08 Nov 2011) | 5 lines
396
397 Fix public issue #53: Update the README to the API we actually open-sourced
398 with.
399
400 R=sanjay
401
402 ------------------------------------------------------------------------
403 r51 | snappy.mirrorbot@gmail.com | 2011-10-05 14:27:12 +0200 (Wed, 05 Oct 2011) | 5 lines
404
405 In the format description, use a clearer example to emphasize that varints are
406 stored in little-endian. Patch from Christian von Roques.
407
408 R=csilvers
409
410 ------------------------------------------------------------------------
411 r50 | snappy.mirrorbot@gmail.com | 2011-09-15 21:34:06 +0200 (Thu, 15 Sep 2011) | 4 lines
412
413 Release Snappy 1.0.4.
414
415 R=sanjay
416
417 ------------------------------------------------------------------------
418 r49 | snappy.mirrorbot@gmail.com | 2011-09-15 11:50:05 +0200 (Thu, 15 Sep 2011) | 5 lines
419
420 Fix public issue #50: Include generic byteswap macros.
421 Also include Solaris 10 and FreeBSD versions.
422
423 R=csilvers
424
425 ------------------------------------------------------------------------
426 r48 | snappy.mirrorbot@gmail.com | 2011-08-10 20:57:27 +0200 (Wed, 10 Aug 2011) | 5 lines
427
428 Partially fix public issue 50: Remove an extra comma from the end of some
429 enum declarations, as it seems the Sun compiler does not like it.
430
431 Based on patch by Travis Vitek.
432
433 ------------------------------------------------------------------------
434 r47 | snappy.mirrorbot@gmail.com | 2011-08-10 20:44:16 +0200 (Wed, 10 Aug 2011) | 4 lines
435
436 Use the right #ifdef test for sys/mman.h.
437
438 Based on patch by Travis Vitek.
439
440 ------------------------------------------------------------------------
441 r46 | snappy.mirrorbot@gmail.com | 2011-08-10 03:22:09 +0200 (Wed, 10 Aug 2011) | 6 lines
442
443 Fix public issue #47: Small comment cleanups in the unit test.
444
445 Originally based on a patch by Patrick Pelletier.
446
447 R=sanjay
448
449 ------------------------------------------------------------------------
450 r45 | snappy.mirrorbot@gmail.com | 2011-08-10 03:14:43 +0200 (Wed, 10 Aug 2011) | 8 lines
451
452 Fix public issue #46: Format description said "3-byte offset"
453 instead of "4-byte offset" for the longest copies.
454
455 Also fix an inconsistency in the heading for section 2.2.3.
456 Both patches by Patrick Pelletier.
457
458 R=csilvers
459
460 ------------------------------------------------------------------------
461 r44 | snappy.mirrorbot@gmail.com | 2011-06-28 13:40:25 +0200 (Tue, 28 Jun 2011) | 8 lines
462
463 Fix public issue #44: Make the definition and declaration of CompressFragment
464 identical, even regarding cv-qualifiers.
465
466 This is required to work around a bug in the Solaris Studio C++ compiler
467 (it does not properly disregard cv-qualifiers when doing name mangling).
468
469 R=sanjay
470
471 ------------------------------------------------------------------------
472 r43 | snappy.mirrorbot@gmail.com | 2011-06-04 12:19:05 +0200 (Sat, 04 Jun 2011) | 7 lines
473
474 Correct an inaccuracy in the Snappy format description. 
475 (I stumbled into this when changing the way we decompress literals.) 
476
477 R=csilvers
478
479 Revision created by MOE tool push_codebase.
480
481 ------------------------------------------------------------------------
482 r42 | snappy.mirrorbot@gmail.com | 2011-06-03 22:53:06 +0200 (Fri, 03 Jun 2011) | 50 lines
483
484 Speed up decompression by removing a fast-path attempt.
485
486 Whenever we try to enter a copy fast-path, there is a certain cost in checking
487 that all the preconditions are in place, but it's normally offset by the fact
488 that we can usually take the cheaper path. However, in a certain path we've
489 already established that "avail < literal_length", which usually means that
490 either the available space is small, or the literal is big. Both will disqualify
491 us from taking the fast path, and thus we take the hit from the precondition
492 checking without gaining much from having a fast path. Thus, simply don't try
493 the fast path in this situation -- we're already on a slow path anyway
494 (one where we need to refill more data from the reader).
495
496 I'm a bit surprised at how much this gained; it could be that this path is
497 more common than I thought, or that the simpler structure somehow makes the
498 compiler happier. I haven't looked at the assembler, but it's a win across
499 the board on both Core 2, Core i7 and Opteron, at least for the cases we
500 typically care about. The gains seem to be the largest on Core i7, though.
501 Results from my Core i7 workstation:
502
503
504   Benchmark            Time(ns)    CPU(ns) Iterations
505   ---------------------------------------------------
506   BM_UFlat/0              73337      73091     190996 1.3GB/s  html      [ +1.7%]
507   BM_UFlat/1             696379     693501      20173 965.5MB/s  urls    [ +2.7%]
508   BM_UFlat/2               9765       9734    1472135 12.1GB/s  jpg      [ +0.7%]
509   BM_UFlat/3              29720      29621     472973 3.0GB/s  pdf       [ +1.8%]
510   BM_UFlat/4             294636     293834      47782 1.3GB/s  html4     [ +2.3%]
511   BM_UFlat/5              28399      28320     494700 828.5MB/s  cp      [ +3.5%]
512   BM_UFlat/6              12795      12760    1000000 833.3MB/s  c       [ +1.2%]
513   BM_UFlat/7               3984       3973    3526448 893.2MB/s  lsp     [ +5.7%]
514   BM_UFlat/8             991996     989322      14141 992.6MB/s  xls     [ +3.3%]
515   BM_UFlat/9             228620     227835      61404 636.6MB/s  txt1    [ +4.0%]
516   BM_UFlat/10            197114     196494      72165 607.5MB/s  txt2    [ +3.5%]
517   BM_UFlat/11            605240     603437      23217 674.4MB/s  txt3    [ +3.7%]
518   BM_UFlat/12            804157     802016      17456 573.0MB/s  txt4    [ +3.9%]
519   BM_UFlat/13            347860     346998      40346 1.4GB/s  bin       [ +1.2%]
520   BM_UFlat/14             44684      44559     315315 818.4MB/s  sum     [ +2.3%]
521   BM_UFlat/15              5120       5106    2739726 789.4MB/s  man     [ +3.3%]
522   BM_UFlat/16             76591      76355     183486 1.4GB/s  pb        [ +2.8%]
523   BM_UFlat/17            238564     237828      58824 739.1MB/s  gaviota [ +1.6%]
524   BM_UValidate/0          42194      42060     333333 2.3GB/s  html      [ -0.1%]
525   BM_UValidate/1         433182     432005      32407 1.5GB/s  urls      [ -0.1%]
526   BM_UValidate/2            197        196   71428571 603.3GB/s  jpg     [ +0.5%]
527   BM_UValidate/3          14494      14462     972222 6.1GB/s  pdf       [ +0.5%]
528   BM_UValidate/4         168444     167836      83832 2.3GB/s  html4     [ +0.1%]
529         
530 R=jeff
531
532 Revision created by MOE tool push_codebase.
533
534 ------------------------------------------------------------------------
535 r41 | snappy.mirrorbot@gmail.com | 2011-06-03 22:47:14 +0200 (Fri, 03 Jun 2011) | 43 lines
536
537 Speed up decompression by not needing a lookup table for literal items.
538
539 Looking up into and decoding the values from char_table has long shown up as a
540 hotspot in the decompressor. While it turns out that it's hard to make a more
541 efficient decoder for the copy ops, the literals are simple enough that we can
542 decode them without needing a table lookup. (This means that 1/4 of the table
543 is now unused, although that in itself doesn't buy us anything.)
544
545 The gains are small, but definitely present; some tests win as much as 10%,
546 but 1-4% is more typical. These results are from Core i7, in 64-bit mode;
547 Core 2 and Opteron show similar results. (I've run with more iterations
548 than unusual to make sure the smaller gains don't drown entirely in noise.)
549
550   Benchmark            Time(ns)    CPU(ns) Iterations
551   ---------------------------------------------------
552   BM_UFlat/0              74665      74428     182055 1.3GB/s  html      [ +3.1%]
553   BM_UFlat/1             714106     711997      19663 940.4MB/s  urls    [ +4.4%]
554   BM_UFlat/2               9820       9789    1427115 12.1GB/s  jpg      [ -1.2%]
555   BM_UFlat/3              30461      30380     465116 2.9GB/s  pdf       [ +0.8%]
556   BM_UFlat/4             301445     300568      46512 1.3GB/s  html4     [ +2.2%]
557   BM_UFlat/5              29338      29263     479452 801.8MB/s  cp      [ +1.6%]
558   BM_UFlat/6              13004      12970    1000000 819.9MB/s  c       [ +2.1%]
559   BM_UFlat/7               4180       4168    3349282 851.4MB/s  lsp     [ +1.3%]
560   BM_UFlat/8            1026149    1024000      10000 959.0MB/s  xls     [+10.7%]
561   BM_UFlat/9             237441     236830      59072 612.4MB/s  txt1    [ +0.3%]
562   BM_UFlat/10            203966     203298      69307 587.2MB/s  txt2    [ +0.8%]
563   BM_UFlat/11            627230     625000      22400 651.2MB/s  txt3    [ +0.7%]
564   BM_UFlat/12            836188     833979      16787 551.0MB/s  txt4    [ +1.3%]
565   BM_UFlat/13            351904     350750      39886 1.4GB/s  bin       [ +3.8%]
566   BM_UFlat/14             45685      45562     308370 800.4MB/s  sum     [ +5.9%]
567   BM_UFlat/15              5286       5270    2656546 764.9MB/s  man     [ +1.5%]
568   BM_UFlat/16             78774      78544     178117 1.4GB/s  pb        [ +4.3%]
569   BM_UFlat/17            242270     241345      58091 728.3MB/s  gaviota [ +1.2%]
570   BM_UValidate/0          42149      42000     333333 2.3GB/s  html      [ -3.0%]
571   BM_UValidate/1         432741     431303      32483 1.5GB/s  urls      [ +7.8%]
572   BM_UValidate/2            198        197   71428571 600.7GB/s  jpg     [+16.8%]
573   BM_UValidate/3          14560      14521     965517 6.1GB/s  pdf       [ -4.1%]
574   BM_UValidate/4         169065     168671      83832 2.3GB/s  html4     [ -2.9%]
575
576 R=jeff
577
578 Revision created by MOE tool push_codebase.
579
580 ------------------------------------------------------------------------
581 r40 | snappy.mirrorbot@gmail.com | 2011-06-03 00:57:41 +0200 (Fri, 03 Jun 2011) | 2 lines
582
583 Release Snappy 1.0.3.
584
585 ------------------------------------------------------------------------
586 r39 | snappy.mirrorbot@gmail.com | 2011-06-02 20:06:54 +0200 (Thu, 02 Jun 2011) | 11 lines
587
588 Remove an unneeded goto in the decompressor; it turns out that the
589 state of ip_ after decompression (or attempted decompresion) is
590 completely irrelevant, so we don't need the trailer.
591
592 Performance is, as expected, mostly flat -- there's a curious ~3-5%
593 loss in the "lsp" test, but that test case is so short it is hard to say
594 anything definitive about why (most likely, it's some sort of
595 unrelated effect).
596
597 R=jeff
598
599 ------------------------------------------------------------------------
600 r38 | snappy.mirrorbot@gmail.com | 2011-06-02 19:59:40 +0200 (Thu, 02 Jun 2011) | 52 lines
601
602 Speed up decompression by caching ip_.
603
604 It is seemingly hard for the compiler to understand that ip_, the current input
605 pointer into the compressed data stream, can not alias on anything else, and
606 thus using it directly will incur memory traffic as it cannot be kept in a
607 register. The code already knew about this and cached it into a local
608 variable, but since Step() only decoded one tag, it had to move ip_ back into
609 place between every tag. This seems to have cost us a significant amount of
610 performance, so changing Step() into a function that decodes as much as it can
611 before it saves ip_ back and returns. (Note that Step() was already inlined,
612 so it is not the manual inlining that buys the performance here.)
613
614 The wins are about 3-6% for Core 2, 6-13% on Core i7 and 5-12% on Opteron
615 (for plain array-to-array decompression, in 64-bit opt mode).
616
617 There is a tiny difference in the behavior here; if an invalid literal is
618 encountered (ie., the writer refuses the Append() operation), ip_ will now
619 point to the byte past the tag byte, instead of where the literal was
620 originally thought to end. However, we don't use ip_ for anything after
621 DecompressAllTags() has returned, so this should not change external behavior
622 in any way.
623
624 Microbenchmark results for Core i7, 64-bit (Opteron results are similar):
625
626 Benchmark            Time(ns)    CPU(ns) Iterations
627 ---------------------------------------------------
628 BM_UFlat/0              79134      79110       8835 1.2GB/s  html      [ +6.2%]
629 BM_UFlat/1             786126     786096        891 851.8MB/s  urls    [+10.0%]
630 BM_UFlat/2               9948       9948      69125 11.9GB/s  jpg      [ -1.3%]
631 BM_UFlat/3              31999      31998      21898 2.7GB/s  pdf       [ +6.5%]
632 BM_UFlat/4             318909     318829       2204 1.2GB/s  html4     [ +6.5%]
633 BM_UFlat/5              31384      31390      22363 747.5MB/s  cp      [ +9.2%]
634 BM_UFlat/6              14037      14034      49858 757.7MB/s  c       [+10.6%]
635 BM_UFlat/7               4612       4612     151395 769.5MB/s  lsp     [ +9.5%]
636 BM_UFlat/8            1203174    1203007        582 816.3MB/s  xls     [+19.3%]
637 BM_UFlat/9             253869     253955       2757 571.1MB/s  txt1    [+11.4%]
638 BM_UFlat/10            219292     219290       3194 544.4MB/s  txt2    [+12.1%]
639 BM_UFlat/11            672135     672131       1000 605.5MB/s  txt3    [+11.2%]
640 BM_UFlat/12            902512     902492        776 509.2MB/s  txt4    [+12.5%]
641 BM_UFlat/13            372110     371998       1881 1.3GB/s  bin       [ +5.8%]
642 BM_UFlat/14             50407      50407      10000 723.5MB/s  sum     [+13.5%]
643 BM_UFlat/15              5699       5701     100000 707.2MB/s  man     [+12.4%]
644 BM_UFlat/16             83448      83424       8383 1.3GB/s  pb        [ +5.7%]
645 BM_UFlat/17            256958     256963       2723 684.1MB/s  gaviota [ +7.9%]
646 BM_UValidate/0          42795      42796      16351 2.2GB/s  html      [+25.8%]
647 BM_UValidate/1         490672     490622       1427 1.3GB/s  urls      [+22.7%]
648 BM_UValidate/2            237        237    2950297 499.0GB/s  jpg     [+24.9%]
649 BM_UValidate/3          14610      14611      47901 6.0GB/s  pdf       [+26.8%]
650 BM_UValidate/4         171973     171990       4071 2.2GB/s  html4     [+25.7%]
651
652
653
654 ------------------------------------------------------------------------
655 r37 | snappy.mirrorbot@gmail.com | 2011-05-17 10:48:25 +0200 (Tue, 17 May 2011) | 10 lines
656
657
658 Fix the numbering of the headlines in the Snappy format description.
659
660 R=csilvers
661 DELTA=4  (0 added, 0 deleted, 4 changed)
662
663
664 Revision created by MOE tool push_codebase.
665 MOE_MIGRATION=1906
666
667 ------------------------------------------------------------------------
668 r36 | snappy.mirrorbot@gmail.com | 2011-05-16 10:59:18 +0200 (Mon, 16 May 2011) | 12 lines
669
670
671 Fix public issue #32: Add compressed format documentation for Snappy.
672 This text is new, but an earlier version from Zeev Tarantov was used
673 as reference.
674
675 R=csilvers
676 DELTA=112  (111 added, 0 deleted, 1 changed)
677
678
679 Revision created by MOE tool push_codebase.
680 MOE_MIGRATION=1867
681
682 ------------------------------------------------------------------------
683 r35 | snappy.mirrorbot@gmail.com | 2011-05-09 23:29:02 +0200 (Mon, 09 May 2011) | 12 lines
684
685
686 Fix public issue #39: Pick out the median runs based on CPU time,
687 not real time. Also, use nth_element instead of sort, since we
688 only need one element.
689
690 R=csilvers
691 DELTA=5  (3 added, 0 deleted, 2 changed)
692
693
694 Revision created by MOE tool push_codebase.
695 MOE_MIGRATION=1799
696
697 ------------------------------------------------------------------------
698 r34 | snappy.mirrorbot@gmail.com | 2011-05-09 23:28:45 +0200 (Mon, 09 May 2011) | 19 lines
699
700
701 Fix public issue #38: Make the microbenchmark framework handle
702 properly cases where gettimeofday() can stand return the same
703 result twice (as sometimes on GNU/Hurd) or go backwards
704 (as when the user adjusts the clock). We avoid a division-by-zero,
705 and put a lower bound on the number of iterations -- the same
706 amount as we use to calibrate.
707
708 We should probably use CLOCK_MONOTONIC for platforms that support
709 it, to be robust against clock adjustments; we already use Windows'
710 monotonic timers. However, that's for a later changelist.
711
712 R=csilvers
713 DELTA=7  (5 added, 0 deleted, 2 changed)
714
715
716 Revision created by MOE tool push_codebase.
717 MOE_MIGRATION=1798
718
719 ------------------------------------------------------------------------
720 r33 | snappy.mirrorbot@gmail.com | 2011-05-04 01:22:52 +0200 (Wed, 04 May 2011) | 11 lines
721
722
723 Fix public issue #37: Only link snappy_unittest against -lz and other autodetected
724 libraries, not libsnappy.so (which doesn't need any such dependency).
725
726 R=csilvers
727 DELTA=20  (14 added, 0 deleted, 6 changed)
728
729
730 Revision created by MOE tool push_codebase.
731 MOE_MIGRATION=1710
732
733 ------------------------------------------------------------------------
734 r32 | snappy.mirrorbot@gmail.com | 2011-05-04 01:22:33 +0200 (Wed, 04 May 2011) | 11 lines
735
736
737 Release Snappy 1.0.2, to get the license change and various other fixes into
738 a release.
739
740 R=csilvers
741 DELTA=239  (236 added, 0 deleted, 3 changed)
742
743
744 Revision created by MOE tool push_codebase.
745 MOE_MIGRATION=1709
746
747 ------------------------------------------------------------------------
748 r31 | snappy.mirrorbot@gmail.com | 2011-04-26 14:34:55 +0200 (Tue, 26 Apr 2011) | 15 lines
749
750
751 Fix public issue #30: Stop using gettimeofday() altogether on Win32,
752 as MSVC doesn't include it. Replace with QueryPerformanceCounter(),
753 which is monotonic and probably reasonably high-resolution.
754 (Some machines have traditionally had bugs in QPC, but they should
755 be relatively rare these days, and there's really no much better
756 alternative that I know of.)
757
758 R=csilvers
759 DELTA=74  (55 added, 19 deleted, 0 changed)
760
761
762 Revision created by MOE tool push_codebase.
763 MOE_MIGRATION=1556
764
765 ------------------------------------------------------------------------
766 r30 | snappy.mirrorbot@gmail.com | 2011-04-26 14:34:37 +0200 (Tue, 26 Apr 2011) | 11 lines
767
768
769 Fix public issue #31: Don't reset PATH in autogen.sh; instead, do the trickery
770 we need for our own build system internally.
771
772 R=csilvers
773 DELTA=16  (13 added, 1 deleted, 2 changed)
774
775
776 Revision created by MOE tool push_codebase.
777 MOE_MIGRATION=1555
778
779 ------------------------------------------------------------------------
780 r29 | snappy.mirrorbot@gmail.com | 2011-04-16 00:55:56 +0200 (Sat, 16 Apr 2011) | 12 lines
781
782
783 When including <windows.h>, define WIN32_LEAN_AND_MEAN first,
784 so we won't pull in macro definitions of things like min() and max(),
785 which can conflict with <algorithm>.
786
787 R=csilvers
788 DELTA=1  (1 added, 0 deleted, 0 changed)
789
790
791 Revision created by MOE tool push_codebase.
792 MOE_MIGRATION=1485
793
794 ------------------------------------------------------------------------
795 r28 | snappy.mirrorbot@gmail.com | 2011-04-11 11:07:01 +0200 (Mon, 11 Apr 2011) | 15 lines
796
797
798 Fix public issue #29: Write CPU timing code for Windows, based on GetProcessTimes()
799 instead of getursage().
800
801 I thought I'd already committed this patch, so that the 1.0.1 release already
802 would have a Windows-compatible snappy_unittest, but I'd seemingly deleted it
803 instead, so this is a reconstruction.
804
805 R=csilvers
806 DELTA=43  (39 added, 3 deleted, 1 changed)
807
808
809 Revision created by MOE tool push_codebase.
810 MOE_MIGRATION=1295
811
812 ------------------------------------------------------------------------
813 r27 | snappy.mirrorbot@gmail.com | 2011-04-08 11:51:53 +0200 (Fri, 08 Apr 2011) | 22 lines
814
815
816 Include C bindings of Snappy, contributed by Martin Gieseking.
817
818 I've made a few changes since Martin's version; mostly style nits, but also
819 a semantic change -- most functions that return bool in the C++ version now
820 return an enum, to better match typical C (and zlib) semantics.
821
822 I've kept the copyright notice, since Martin is obviously the author here;
823 he has signed the contributor license agreement, though, so this should not
824 hinder Google's use in the future.
825
826 We'll need to update the libtool version number to match the added interface,
827 but as of http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
828 I'm going to wait until public release.
829
830 R=csilvers
831 DELTA=238  (233 added, 0 deleted, 5 changed)
832
833
834 Revision created by MOE tool push_codebase.
835 MOE_MIGRATION=1294
836
837 ------------------------------------------------------------------------
838 r26 | snappy.mirrorbot@gmail.com | 2011-04-07 18:36:43 +0200 (Thu, 07 Apr 2011) | 13 lines
839
840
841 Replace geo.protodata with a newer version.
842
843 The data compresses/decompresses slightly faster than the old data, and has
844 similar density.
845
846 R=lookingbill
847 DELTA=1  (0 added, 0 deleted, 1 changed)
848
849
850 Revision created by MOE tool push_codebase.
851 MOE_MIGRATION=1288
852
853 ------------------------------------------------------------------------
854 r25 | snappy.mirrorbot@gmail.com | 2011-03-30 22:27:53 +0200 (Wed, 30 Mar 2011) | 12 lines
855
856
857 Fix public issue #27: Add HAVE_CONFIG_H tests around the config.h
858 inclusion in snappy-stubs-internal.h, which eases compiling outside the
859 automake/autoconf framework.
860
861 R=csilvers
862 DELTA=5  (4 added, 1 deleted, 0 changed)
863
864
865 Revision created by MOE tool push_codebase.
866 MOE_MIGRATION=1152
867
868 ------------------------------------------------------------------------
869 r24 | snappy.mirrorbot@gmail.com | 2011-03-30 22:27:39 +0200 (Wed, 30 Mar 2011) | 13 lines
870
871
872 Fix public issue #26: Take memory allocation and reallocation entirely out of the
873 Measure() loop. This gives all algorithms a small speed boost, except Snappy which
874 already didn't do reallocation (so the measurements were slightly biased in its
875 favor).
876
877 R=csilvers
878 DELTA=92  (69 added, 9 deleted, 14 changed)
879
880
881 Revision created by MOE tool push_codebase.
882 MOE_MIGRATION=1151
883
884 ------------------------------------------------------------------------
885 r23 | snappy.mirrorbot@gmail.com | 2011-03-30 22:25:09 +0200 (Wed, 30 Mar 2011) | 18 lines
886
887
888 Renamed "namespace zippy" to "namespace snappy" to reduce
889 the differences from the opensource code.  Will make it easier
890 in the future to mix-and-match third-party code that uses
891 snappy with google code.
892
893 Currently, csearch shows that the only external user of
894 "namespace zippy" is some bigtable code that accesses
895 a TEST variable, which is temporarily kept in the zippy
896 namespace.
897
898 R=sesse
899 DELTA=123  (18 added, 3 deleted, 102 changed)
900
901
902 Revision created by MOE tool push_codebase.
903 MOE_MIGRATION=1150
904
905 ------------------------------------------------------------------------
906 r22 | snappy.mirrorbot@gmail.com | 2011-03-29 00:17:04 +0200 (Tue, 29 Mar 2011) | 11 lines
907
908
909 Put back the final few lines of what was truncated during the
910 license header change.
911
912 R=csilvers
913 DELTA=5  (4 added, 0 deleted, 1 changed)
914
915
916 Revision created by MOE tool push_codebase.
917 MOE_MIGRATION=1094
918
919 ------------------------------------------------------------------------
920 r21 | snappy.mirrorbot@gmail.com | 2011-03-26 03:34:34 +0100 (Sat, 26 Mar 2011) | 20 lines
921
922
923 Change on 2011-03-25 19:18:00-07:00 by sesse
924
925         Replace the Apache 2.0 license header by the BSD-type license header;
926         somehow a lot of the files were missed in the last round.
927
928         R=dannyb,csilvers
929         DELTA=147  (74 added, 2 deleted, 71 changed)
930
931 Change on 2011-03-25 19:25:07-07:00 by sesse
932
933         Unbreak the build; the relicensing removed a bit too much (only comments
934         were intended, but I also accidentially removed some of the top lines of
935         the actual source).
936
937
938
939 Revision created by MOE tool push_codebase.
940 MOE_MIGRATION=1072
941
942 ------------------------------------------------------------------------
943 r20 | snappy.mirrorbot@gmail.com | 2011-03-25 17:14:41 +0100 (Fri, 25 Mar 2011) | 10 lines
944
945
946 Change Snappy from the Apache 2.0 to a BSD-type license.
947
948 R=dannyb
949 DELTA=328  (80 added, 184 deleted, 64 changed)
950
951
952 Revision created by MOE tool push_codebase.
953 MOE_MIGRATION=1061
954
955 ------------------------------------------------------------------------
956 r19 | snappy.mirrorbot@gmail.com | 2011-03-25 01:39:01 +0100 (Fri, 25 Mar 2011) | 11 lines
957
958
959 Release Snappy 1.0.1, to soup up all the various small changes
960 that have been made since release.
961
962 R=csilvers
963 DELTA=266  (260 added, 0 deleted, 6 changed)
964
965
966 Revision created by MOE tool push_codebase.
967 MOE_MIGRATION=1057
968
969 ------------------------------------------------------------------------
970 r18 | snappy.mirrorbot@gmail.com | 2011-03-24 20:15:54 +0100 (Thu, 24 Mar 2011) | 11 lines
971
972
973 Fix a microbenchmark crash on mingw32; seemingly %lld is not universally
974 supported on Windows, and %I64d is recommended instead.
975
976 R=csilvers
977 DELTA=6  (5 added, 0 deleted, 1 changed)
978
979
980 Revision created by MOE tool push_codebase.
981 MOE_MIGRATION=1034
982
983 ------------------------------------------------------------------------
984 r17 | snappy.mirrorbot@gmail.com | 2011-03-24 20:15:27 +0100 (Thu, 24 Mar 2011) | 13 lines
985
986
987 Fix public issue #19: Fix unit test when Google Test is installed but the
988 gflags package isn't (Google Test is not properly initialized).
989
990 Patch by Martin Gieseking.
991
992 R=csilvers
993 DELTA=2  (1 added, 0 deleted, 1 changed)
994
995
996 Revision created by MOE tool push_codebase.
997 MOE_MIGRATION=1033
998
999 ------------------------------------------------------------------------
1000 r16 | snappy.mirrorbot@gmail.com | 2011-03-24 20:13:57 +0100 (Thu, 24 Mar 2011) | 15 lines
1001
1002
1003 Make the unit test work on systems without mmap(). This is required for,
1004 among others, Windows support. For Windows in specific, we could have used
1005 CreateFileMapping/MapViewOfFile, but this should at least get us a bit closer
1006 to compiling, and is of course also relevant for embedded systems with no MMU.
1007
1008 (Part 2/2)
1009
1010 R=csilvers
1011 DELTA=15  (12 added, 3 deleted, 0 changed)
1012
1013
1014 Revision created by MOE tool push_codebase.
1015 MOE_MIGRATION=1032
1016
1017 ------------------------------------------------------------------------
1018 r15 | snappy.mirrorbot@gmail.com | 2011-03-24 20:12:27 +0100 (Thu, 24 Mar 2011) | 15 lines
1019
1020
1021 Make the unit test work on systems without mmap(). This is required for,
1022 among others, Windows support. For Windows in specific, we could have used
1023 CreateFileMapping/MapViewOfFile, but this should at least get us a bit closer
1024 to compiling, and is of course also relevant for embedded systems with no MMU.
1025
1026 (Part 1/2)
1027
1028 R=csilvers
1029 DELTA=9  (8 added, 0 deleted, 1 changed)
1030
1031
1032 Revision created by MOE tool push_codebase.
1033 MOE_MIGRATION=1031
1034
1035 ------------------------------------------------------------------------
1036 r14 | snappy.mirrorbot@gmail.com | 2011-03-24 00:17:36 +0100 (Thu, 24 Mar 2011) | 14 lines
1037
1038
1039 Fix public issue #12: Don't keep autogenerated auto* files in Subversion;
1040 it causes problems with others sending patches etc..
1041
1042 We can't get this 100% hermetic anyhow, due to files like lt~obsolete.m4,
1043 so we can just as well go cleanly in the other direction.
1044
1045 R=csilvers
1046 DELTA=21038  (0 added, 21036 deleted, 2 changed)
1047
1048
1049 Revision created by MOE tool push_codebase.
1050 MOE_MIGRATION=1012
1051
1052 ------------------------------------------------------------------------
1053 r13 | snappy.mirrorbot@gmail.com | 2011-03-23 18:50:49 +0100 (Wed, 23 Mar 2011) | 11 lines
1054
1055
1056 Fix public issue tracker bug #3: Call AC_SUBST([LIBTOOL_DEPS]), or the rule
1057 to rebuild libtool in Makefile.am won't work.
1058
1059 R=csilvers
1060 DELTA=1  (1 added, 0 deleted, 0 changed)
1061
1062
1063 Revision created by MOE tool push_codebase.
1064 MOE_MIGRATION=997
1065
1066 ------------------------------------------------------------------------
1067 r12 | snappy.mirrorbot@gmail.com | 2011-03-23 12:16:39 +0100 (Wed, 23 Mar 2011) | 11 lines
1068
1069
1070 Fix public issue #10: Don't add GTEST_CPPFLAGS to snappy_unittest_CXXFLAGS;
1071 it's not needed (CPPFLAGS are always included when compiling).
1072
1073 R=csilvers
1074 DELTA=1  (0 added, 1 deleted, 0 changed)
1075
1076
1077 Revision created by MOE tool push_codebase.
1078 MOE_MIGRATION=994
1079
1080 ------------------------------------------------------------------------
1081 r11 | snappy.mirrorbot@gmail.com | 2011-03-23 12:16:18 +0100 (Wed, 23 Mar 2011) | 11 lines
1082
1083
1084 Fix public issue #9: Add -Wall -Werror to automake flags.
1085 (This concerns automake itself, not the C++ compiler.)
1086
1087 R=csilvers
1088 DELTA=4  (3 added, 0 deleted, 1 changed)
1089
1090
1091 Revision created by MOE tool push_codebase.
1092 MOE_MIGRATION=993
1093
1094 ------------------------------------------------------------------------
1095 r10 | snappy.mirrorbot@gmail.com | 2011-03-23 12:13:37 +0100 (Wed, 23 Mar 2011) | 10 lines
1096
1097
1098 Fix a typo in the Snappy README file.
1099
1100 R=csilvers
1101 DELTA=1  (0 added, 0 deleted, 1 changed)
1102
1103
1104 Revision created by MOE tool push_codebase.
1105 MOE_MIGRATION=992
1106
1107 ------------------------------------------------------------------------
1108 r9 | snappy.mirrorbot@gmail.com | 2011-03-23 12:13:13 +0100 (Wed, 23 Mar 2011) | 11 lines
1109
1110
1111 Fix public issue #6: Add a --with-gflags for disabling gflags autodetection
1112 and using a manually given setting (use/don't use) instead.
1113
1114 R=csilvers
1115 DELTA=16  (13 added, 0 deleted, 3 changed)
1116
1117
1118 Revision created by MOE tool push_codebase.
1119 MOE_MIGRATION=991
1120
1121 ------------------------------------------------------------------------
1122 r8 | snappy.mirrorbot@gmail.com | 2011-03-23 12:12:44 +0100 (Wed, 23 Mar 2011) | 12 lines
1123
1124
1125 Fix public issue #5: Replace the EXTRA_LIBSNAPPY_LDFLAGS setup with something
1126 slightly more standard, that also doesn't leak libtool command-line into
1127 configure.ac.
1128
1129 R=csilvers
1130 DELTA=7  (0 added, 4 deleted, 3 changed)
1131
1132
1133 Revision created by MOE tool push_codebase.
1134 MOE_MIGRATION=990
1135
1136 ------------------------------------------------------------------------
1137 r7 | snappy.mirrorbot@gmail.com | 2011-03-23 12:12:22 +0100 (Wed, 23 Mar 2011) | 10 lines
1138
1139
1140 Fix public issue #4: Properly quote all macro arguments in configure.ac.
1141
1142 R=csilvers
1143 DELTA=16  (0 added, 0 deleted, 16 changed)
1144
1145
1146 Revision created by MOE tool push_codebase.
1147 MOE_MIGRATION=989
1148
1149 ------------------------------------------------------------------------
1150 r6 | snappy.mirrorbot@gmail.com | 2011-03-23 12:11:54 +0100 (Wed, 23 Mar 2011) | 11 lines
1151
1152
1153 Fix public issue #7: Don't use internal variables named ac_*, as those belong
1154 to autoconf's namespace.
1155
1156 R=csilvers
1157 DELTA=6  (0 added, 0 deleted, 6 changed)
1158
1159
1160 Revision created by MOE tool push_codebase.
1161 MOE_MIGRATION=988
1162
1163 ------------------------------------------------------------------------
1164 r5 | snappy.mirrorbot@gmail.com | 2011-03-23 12:11:09 +0100 (Wed, 23 Mar 2011) | 10 lines
1165
1166
1167 Add missing licensing headers to a few files. (Part 2/2.)
1168
1169 R=csilvers
1170 DELTA=12  (12 added, 0 deleted, 0 changed)
1171
1172
1173 Revision created by MOE tool push_codebase.
1174 MOE_MIGRATION=987
1175
1176 ------------------------------------------------------------------------
1177 r4 | snappy.mirrorbot@gmail.com | 2011-03-23 12:10:39 +0100 (Wed, 23 Mar 2011) | 10 lines
1178
1179
1180 Add mising licensing headers to a few files. (Part 1/2.)
1181
1182 R=csilvers
1183 DELTA=24  (24 added, 0 deleted, 0 changed)
1184
1185
1186 Revision created by MOE tool push_codebase.
1187 MOE_MIGRATION=986
1188
1189 ------------------------------------------------------------------------
1190 r3 | snappy.mirrorbot@gmail.com | 2011-03-23 12:10:04 +0100 (Wed, 23 Mar 2011) | 11 lines
1191
1192
1193 Use the correct license file for the Apache 2.0 license;
1194 spotted by Florian Weimer.
1195
1196 R=csilvers
1197 DELTA=202  (174 added, 0 deleted, 28 changed)
1198
1199
1200 Revision created by MOE tool push_codebase.
1201 MOE_MIGRATION=985
1202
1203 ------------------------------------------------------------------------
1204 r2 | snappy.mirrorbot@gmail.com | 2011-03-18 18:14:15 +0100 (Fri, 18 Mar 2011) | 6 lines
1205
1206
1207
1208
1209 Revision created by MOE tool push_codebase.
1210 MOE_MIGRATION=
1211
1212 ------------------------------------------------------------------------
1213 r1 | sesse@google.com | 2011-03-18 18:13:52 +0100 (Fri, 18 Mar 2011) | 2 lines
1214
1215 Create trunk directory.
1216
1217 ------------------------------------------------------------------------