Timothy Flynn 
								
							 
						 
						
							
							
							
							
								
							
							
								c911781c21 
								
							 
						 
						
							
							
								
								Everywhere: Remove needless trailing semi-colons after functions  
							
							... 
							
							
							
							This is a new option in clang-format-16. 
							
						 
						
							2023-07-08 10:32:56 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								60ac254df6 
								
							 
						 
						
							
							
								
								AK: Use hashing to accelerate searching a CircularBuffer  
							
							
							
						 
						
							2023-07-06 15:06:20 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								42d01b21d8 
								
							 
						 
						
							
							
								
								AK: Rewrite the hint-based CircularBuffer::find_copy_in_seekback  
							
							... 
							
							
							
							This now searches the memory in blocks, which should be slightly more
efficient. However, it doesn't make much difference (e.g. ~1% in LZMA
compression) in most real-world applications, as the non-hint function
is more expensive by orders of magnitude. 
							
						 
						
							2023-07-06 15:06:20 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								046a9faeb3 
								
							 
						 
						
							
							
								
								AK: Split up CircularBuffer::find_copy_in_seekback  
							
							... 
							
							
							
							The "operation modes" of this function have very different focuses, and
trying to combine both in a way where we share the most amount of code
probably results in the worst performance.
Instead, split up the function into "existing distances" and "no
existing distances" so that we can optimize either case separately. 
							
						 
						
							2023-07-06 15:06:20 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								9e82ad758e 
								
							 
						 
						
							
							
								
								AK: Move parts for searching CircularBuffer into a new class  
							
							... 
							
							
							
							We will be adding extra logic to the CircularBuffer to optimize
searching, but this would negatively impact the performance of
CircularBuffer users that don't need that functionality. 
							
						 
						
							2023-07-06 15:06:20 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								d4b0e64825 
								
							 
						 
						
							
							
								
								LibCompress: Move two shared LZMA magic numbers into a common place  
							
							
							
						 
						
							2023-05-19 23:40:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								a01968ee6d 
								
							 
						 
						
							
							
								
								LibCompress: Handle arbitrarily long FF-chains in the LZMA encoder  
							
							
							
						 
						
							2023-05-19 23:40:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								cb93186350 
								
							 
						 
						
							
							
								
								LibCompress: Add debug logging for handling LZMA direct bits  
							
							
							
						 
						
							2023-05-19 23:40:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								df071d8a76 
								
							 
						 
						
							
							
								
								LibCompress: Add a lot of debug logging to LZMA  
							
							
							
						 
						
							2023-05-17 09:08:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								85a54cc796 
								
							 
						 
						
							
							
								
								LibCompress: Add an LZMA encoder  
							
							
							
						 
						
							2023-05-17 09:08:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								9ab3646bc7 
								
							 
						 
						
							
							
								
								LibCompress: Use the variable for LZMA "normalized to real distance"  
							
							... 
							
							
							
							The variable already existed, but I forgot to use it earlier. 
							
						 
						
							2023-05-17 09:08:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								42514c6961 
								
							 
						 
						
							
							
								
								LibCompress: Decode the LZMA match type in a separate function  
							
							... 
							
							
							
							This should keep the `read_some` function a bit flatter and shorter, and
make it easier to match the match type decoding process with the
specification. 
							
						 
						
							2023-05-17 09:08:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								4a37bac374 
								
							 
						 
						
							
							
								
								LibCompress: Make LzmaHeader a POD-like type  
							
							... 
							
							
							
							This allows us to initialize the struct using an aggregate initializer. 
							
						 
						
							2023-05-17 09:08:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								440d8f908f 
								
							 
						 
						
							
							
								
								LibCompress: Extract the LZMA state to a separate class  
							
							... 
							
							
							
							We will also need this in the compressor, as it needs to do the exact
same calculations in reverse. 
							
						 
						
							2023-05-17 09:08:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								7000ccf89f 
								
							 
						 
						
							
							
								
								LibCompress: Copy LZMA repetitions from the buffer in sequence  
							
							... 
							
							
							
							This improves the decompression time of `clang-15.0.7.src.tar.xz` from
5.2 seconds down to about 2.7 seconds. 
							
						 
						
							2023-04-05 07:30:38 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								fe761a4e9b 
								
							 
						 
						
							
							
								
								LibCompress: Use LZMA context from preexisting dictionary  
							
							
							
						 
						
							2023-03-30 14:39:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								023c64011c 
								
							 
						 
						
							
							
								
								LibCompress: Use the correct LZMA repetition offset in all cases  
							
							
							
						 
						
							2023-03-30 14:39:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								d9627503a9 
								
							 
						 
						
							
							
								
								LibCompress: Reduce repeated code in the LZMA decompressor  
							
							
							
						 
						
							2023-03-30 14:39:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								8ff36e5910 
								
							 
						 
						
							
							
								
								LibCompress: Implement proper handling of LZMA end-of-stream markers  
							
							
							
						 
						
							2023-03-30 08:45:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								b6f3b2f116 
								
							 
						 
						
							
							
								
								LibCompress: Move common LZMA end-of-file checks into helper functions  
							
							
							
						 
						
							2023-03-30 08:45:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								1b8318ab67 
								
							 
						 
						
							
							
								
								LibCompress: Allow providing an external dictionary for LZMA  
							
							... 
							
							
							
							While at it, rename the former "output buffer" to "dictionary", since
that's its primary function. 
							
						 
						
							2023-03-21 10:25:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								f4506a3a72 
								
							 
						 
						
							
							
								
								LibCompress: Allow appending input streams to an existing LZMA decoder  
							
							
							
						 
						
							2023-03-21 10:25:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								04f69de7f1 
								
							 
						 
						
							
							
								
								LibCompress: Refactor LZMA model property decoding into a static helper  
							
							
							
						 
						
							2023-03-21 10:25:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								b3a9729e23 
								
							 
						 
						
							
							
								
								LibCompress: Add support for LZMA streams  
							
							
							
						 
						
							2023-03-20 12:15:38 +02:00