mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	* update macaron to v1.5 of fork * update macaron to v1.5 of fork * test gzip PR * add push method impl to context_tests * use proper gzip commit Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
		
			
				
	
	
		
			158 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
| // Copyright 2019+ Klaus Post. All rights reserved.
 | |
| // License information can be found in the LICENSE file.
 | |
| // Based on work by Yann Collet, released under BSD License.
 | |
| 
 | |
| package zstd
 | |
| 
 | |
| /*
 | |
| // encParams are not really used, just here for reference.
 | |
| type encParams struct {
 | |
| 	// largest match distance : larger == more compression, more memory needed during decompression
 | |
| 	windowLog uint8
 | |
| 
 | |
| 	// fully searched segment : larger == more compression, slower, more memory (useless for fast)
 | |
| 	chainLog uint8
 | |
| 
 | |
| 	//  dispatch table : larger == faster, more memory
 | |
| 	hashLog uint8
 | |
| 
 | |
| 	// < nb of searches : larger == more compression, slower
 | |
| 	searchLog uint8
 | |
| 
 | |
| 	// < match length searched : larger == faster decompression, sometimes less compression
 | |
| 	minMatch uint8
 | |
| 
 | |
| 	// acceptable match size for optimal parser (only) : larger == more compression, slower
 | |
| 	targetLength uint32
 | |
| 
 | |
| 	// see ZSTD_strategy definition above
 | |
| 	strategy strategy
 | |
| }
 | |
| 
 | |
| // strategy defines the algorithm to use when generating sequences.
 | |
| type strategy uint8
 | |
| 
 | |
| const (
 | |
| 	// Compression strategies, listed from fastest to strongest
 | |
| 	strategyFast strategy = iota + 1
 | |
| 	strategyDfast
 | |
| 	strategyGreedy
 | |
| 	strategyLazy
 | |
| 	strategyLazy2
 | |
| 	strategyBtlazy2
 | |
| 	strategyBtopt
 | |
| 	strategyBtultra
 | |
| 	strategyBtultra2
 | |
| 	// note : new strategies _might_ be added in the future.
 | |
| 	//   Only the order (from fast to strong) is guaranteed
 | |
| 
 | |
| )
 | |
| 
 | |
| var defEncParams = [4][]encParams{
 | |
| 	{ // "default" - for any srcSize > 256 KB
 | |
| 		// W,  C,  H,  S,  L, TL, strat
 | |
| 		{19, 12, 13, 1, 6, 1, strategyFast},       // base for negative levels
 | |
| 		{19, 13, 14, 1, 7, 0, strategyFast},       // level  1
 | |
| 		{20, 15, 16, 1, 6, 0, strategyFast},       // level  2
 | |
| 		{21, 16, 17, 1, 5, 1, strategyDfast},      // level  3
 | |
| 		{21, 18, 18, 1, 5, 1, strategyDfast},      // level  4
 | |
| 		{21, 18, 19, 2, 5, 2, strategyGreedy},     // level  5
 | |
| 		{21, 19, 19, 3, 5, 4, strategyGreedy},     // level  6
 | |
| 		{21, 19, 19, 3, 5, 8, strategyLazy},       // level  7
 | |
| 		{21, 19, 19, 3, 5, 16, strategyLazy2},     // level  8
 | |
| 		{21, 19, 20, 4, 5, 16, strategyLazy2},     // level  9
 | |
| 		{22, 20, 21, 4, 5, 16, strategyLazy2},     // level 10
 | |
| 		{22, 21, 22, 4, 5, 16, strategyLazy2},     // level 11
 | |
| 		{22, 21, 22, 5, 5, 16, strategyLazy2},     // level 12
 | |
| 		{22, 21, 22, 5, 5, 32, strategyBtlazy2},   // level 13
 | |
| 		{22, 22, 23, 5, 5, 32, strategyBtlazy2},   // level 14
 | |
| 		{22, 23, 23, 6, 5, 32, strategyBtlazy2},   // level 15
 | |
| 		{22, 22, 22, 5, 5, 48, strategyBtopt},     // level 16
 | |
| 		{23, 23, 22, 5, 4, 64, strategyBtopt},     // level 17
 | |
| 		{23, 23, 22, 6, 3, 64, strategyBtultra},   // level 18
 | |
| 		{23, 24, 22, 7, 3, 256, strategyBtultra2}, // level 19
 | |
| 		{25, 25, 23, 7, 3, 256, strategyBtultra2}, // level 20
 | |
| 		{26, 26, 24, 7, 3, 512, strategyBtultra2}, // level 21
 | |
| 		{27, 27, 25, 9, 3, 999, strategyBtultra2}, // level 22
 | |
| 	},
 | |
| 	{ // for srcSize <= 256 KB
 | |
| 		// W,  C,  H,  S,  L,  T, strat
 | |
| 		{18, 12, 13, 1, 5, 1, strategyFast},        // base for negative levels
 | |
| 		{18, 13, 14, 1, 6, 0, strategyFast},        // level  1
 | |
| 		{18, 14, 14, 1, 5, 1, strategyDfast},       // level  2
 | |
| 		{18, 16, 16, 1, 4, 1, strategyDfast},       // level  3
 | |
| 		{18, 16, 17, 2, 5, 2, strategyGreedy},      // level  4.
 | |
| 		{18, 18, 18, 3, 5, 2, strategyGreedy},      // level  5.
 | |
| 		{18, 18, 19, 3, 5, 4, strategyLazy},        // level  6.
 | |
| 		{18, 18, 19, 4, 4, 4, strategyLazy},        // level  7
 | |
| 		{18, 18, 19, 4, 4, 8, strategyLazy2},       // level  8
 | |
| 		{18, 18, 19, 5, 4, 8, strategyLazy2},       // level  9
 | |
| 		{18, 18, 19, 6, 4, 8, strategyLazy2},       // level 10
 | |
| 		{18, 18, 19, 5, 4, 12, strategyBtlazy2},    // level 11.
 | |
| 		{18, 19, 19, 7, 4, 12, strategyBtlazy2},    // level 12.
 | |
| 		{18, 18, 19, 4, 4, 16, strategyBtopt},      // level 13
 | |
| 		{18, 18, 19, 4, 3, 32, strategyBtopt},      // level 14.
 | |
| 		{18, 18, 19, 6, 3, 128, strategyBtopt},     // level 15.
 | |
| 		{18, 19, 19, 6, 3, 128, strategyBtultra},   // level 16.
 | |
| 		{18, 19, 19, 8, 3, 256, strategyBtultra},   // level 17.
 | |
| 		{18, 19, 19, 6, 3, 128, strategyBtultra2},  // level 18.
 | |
| 		{18, 19, 19, 8, 3, 256, strategyBtultra2},  // level 19.
 | |
| 		{18, 19, 19, 10, 3, 512, strategyBtultra2}, // level 20.
 | |
| 		{18, 19, 19, 12, 3, 512, strategyBtultra2}, // level 21.
 | |
| 		{18, 19, 19, 13, 3, 999, strategyBtultra2}, // level 22.
 | |
| 	},
 | |
| 	{ // for srcSize <= 128 KB
 | |
| 		// W,  C,  H,  S,  L,  T, strat
 | |
| 		{17, 12, 12, 1, 5, 1, strategyFast},        // base for negative levels
 | |
| 		{17, 12, 13, 1, 6, 0, strategyFast},        // level  1
 | |
| 		{17, 13, 15, 1, 5, 0, strategyFast},        // level  2
 | |
| 		{17, 15, 16, 2, 5, 1, strategyDfast},       // level  3
 | |
| 		{17, 17, 17, 2, 4, 1, strategyDfast},       // level  4
 | |
| 		{17, 16, 17, 3, 4, 2, strategyGreedy},      // level  5
 | |
| 		{17, 17, 17, 3, 4, 4, strategyLazy},        // level  6
 | |
| 		{17, 17, 17, 3, 4, 8, strategyLazy2},       // level  7
 | |
| 		{17, 17, 17, 4, 4, 8, strategyLazy2},       // level  8
 | |
| 		{17, 17, 17, 5, 4, 8, strategyLazy2},       // level  9
 | |
| 		{17, 17, 17, 6, 4, 8, strategyLazy2},       // level 10
 | |
| 		{17, 17, 17, 5, 4, 8, strategyBtlazy2},     // level 11
 | |
| 		{17, 18, 17, 7, 4, 12, strategyBtlazy2},    // level 12
 | |
| 		{17, 18, 17, 3, 4, 12, strategyBtopt},      // level 13.
 | |
| 		{17, 18, 17, 4, 3, 32, strategyBtopt},      // level 14.
 | |
| 		{17, 18, 17, 6, 3, 256, strategyBtopt},     // level 15.
 | |
| 		{17, 18, 17, 6, 3, 128, strategyBtultra},   // level 16.
 | |
| 		{17, 18, 17, 8, 3, 256, strategyBtultra},   // level 17.
 | |
| 		{17, 18, 17, 10, 3, 512, strategyBtultra},  // level 18.
 | |
| 		{17, 18, 17, 5, 3, 256, strategyBtultra2},  // level 19.
 | |
| 		{17, 18, 17, 7, 3, 512, strategyBtultra2},  // level 20.
 | |
| 		{17, 18, 17, 9, 3, 512, strategyBtultra2},  // level 21.
 | |
| 		{17, 18, 17, 11, 3, 999, strategyBtultra2}, // level 22.
 | |
| 	},
 | |
| 	{ // for srcSize <= 16 KB
 | |
| 		// W,  C,  H,  S,  L,  T, strat
 | |
| 		{14, 12, 13, 1, 5, 1, strategyFast},        // base for negative levels
 | |
| 		{14, 14, 15, 1, 5, 0, strategyFast},        // level  1
 | |
| 		{14, 14, 15, 1, 4, 0, strategyFast},        // level  2
 | |
| 		{14, 14, 15, 2, 4, 1, strategyDfast},       // level  3
 | |
| 		{14, 14, 14, 4, 4, 2, strategyGreedy},      // level  4
 | |
| 		{14, 14, 14, 3, 4, 4, strategyLazy},        // level  5.
 | |
| 		{14, 14, 14, 4, 4, 8, strategyLazy2},       // level  6
 | |
| 		{14, 14, 14, 6, 4, 8, strategyLazy2},       // level  7
 | |
| 		{14, 14, 14, 8, 4, 8, strategyLazy2},       // level  8.
 | |
| 		{14, 15, 14, 5, 4, 8, strategyBtlazy2},     // level  9.
 | |
| 		{14, 15, 14, 9, 4, 8, strategyBtlazy2},     // level 10.
 | |
| 		{14, 15, 14, 3, 4, 12, strategyBtopt},      // level 11.
 | |
| 		{14, 15, 14, 4, 3, 24, strategyBtopt},      // level 12.
 | |
| 		{14, 15, 14, 5, 3, 32, strategyBtultra},    // level 13.
 | |
| 		{14, 15, 15, 6, 3, 64, strategyBtultra},    // level 14.
 | |
| 		{14, 15, 15, 7, 3, 256, strategyBtultra},   // level 15.
 | |
| 		{14, 15, 15, 5, 3, 48, strategyBtultra2},   // level 16.
 | |
| 		{14, 15, 15, 6, 3, 128, strategyBtultra2},  // level 17.
 | |
| 		{14, 15, 15, 7, 3, 256, strategyBtultra2},  // level 18.
 | |
| 		{14, 15, 15, 8, 3, 256, strategyBtultra2},  // level 19.
 | |
| 		{14, 15, 15, 8, 3, 512, strategyBtultra2},  // level 20.
 | |
| 		{14, 15, 15, 9, 3, 512, strategyBtultra2},  // level 21.
 | |
| 		{14, 15, 15, 10, 3, 999, strategyBtultra2}, // level 22.
 | |
| 	},
 | |
| }
 | |
| */
 |