mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 22:22:25 -05:00 
			
		
		
		
	[chore] update dependencies, bump to Go 1.19.1 (#826)
* update dependencies, bump Go version to 1.19 * bump test image Go version * update golangci-lint * update gotosocial-drone-build * sign * linting, go fmt * update swagger docs * update swagger docs * whitespace * update contributing.md * fuckin whoopsie doopsie * linterino, linteroni * fix followrequest test not starting processor * fix other api/client tests not starting processor * fix remaining tests where processor not started * bump go-runners version * don't check last-webfingered-at, processor may have updated this * update swagger command * update bun to latest version * fix embed to work the same as before with new bun Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
This commit is contained in:
		
					parent
					
						
							
								00d38855d4
							
						
					
				
			
			
				commit
				
					
						a156188b3e
					
				
			
		
					 1135 changed files with 258905 additions and 137146 deletions
				
			
		
							
								
								
									
										96
									
								
								vendor/github.com/minio/md5-simd/md5-server_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										96
									
								
								vendor/github.com/minio/md5-simd/md5-server_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -10,8 +10,9 @@ import ( | |||
| 	"encoding/binary" | ||||
| 	"fmt" | ||||
| 	"runtime" | ||||
| 	"sync" | ||||
| 
 | ||||
| 	"github.com/klauspost/cpuid" | ||||
| 	"github.com/klauspost/cpuid/v2" | ||||
| ) | ||||
| 
 | ||||
| // MD5 initialization constants | ||||
|  | @ -23,6 +24,9 @@ const ( | |||
| 	init1 = 0xefcdab89 | ||||
| 	init2 = 0x98badcfe | ||||
| 	init3 = 0x10325476 | ||||
| 
 | ||||
| 	// Use scalar routine when below this many lanes | ||||
| 	useScalarBelow = 3 | ||||
| ) | ||||
| 
 | ||||
| // md5ServerUID - Does not start at 0 but next multiple of 16 so as to be able to | ||||
|  | @ -56,11 +60,15 @@ type md5Server struct { | |||
| 	maskRounds8b [8]maskRounds         // Pre-allocated static array for max 8 rounds (2nd AVX2 core) | ||||
| 	allBufs      []byte                // Preallocated buffer. | ||||
| 	buffers      chan []byte           // Preallocated buffers, sliced from allBufs. | ||||
| 
 | ||||
| 	i8       [2][8][]byte // avx2 temporary vars | ||||
| 	d8a, d8b digest8 | ||||
| 	wg       sync.WaitGroup | ||||
| } | ||||
| 
 | ||||
| // NewServer - Create new object for parallel processing handling | ||||
| func NewServer() Server { | ||||
| 	if !cpuid.CPU.AVX2() { | ||||
| 	if !cpuid.CPU.Supports(cpuid.AVX2) { | ||||
| 		return &fallbackServer{} | ||||
| 	} | ||||
| 	md5srv := &md5Server{} | ||||
|  | @ -152,7 +160,7 @@ func (s *md5Server) process(newClients chan newClient) { | |||
| 
 | ||||
| 					sum := sumResult{} | ||||
| 					// Add end block to current digest. | ||||
| 					blockGeneric(&dig, block.msg) | ||||
| 					blockScalar(&dig.s, block.msg) | ||||
| 
 | ||||
| 					binary.LittleEndian.PutUint32(sum.digest[0:], dig.s[0]) | ||||
| 					binary.LittleEndian.PutUint32(sum.digest[4:], dig.s[1]) | ||||
|  | @ -262,6 +270,88 @@ func (s *md5Server) Close() { | |||
| 
 | ||||
| // Invoke assembly and send results back | ||||
| func (s *md5Server) blocks(lanes []blockInput) { | ||||
| 	if len(lanes) < useScalarBelow { | ||||
| 		// Use scalar routine when below this many lanes | ||||
| 		switch len(lanes) { | ||||
| 		case 0: | ||||
| 		case 1: | ||||
| 			lane := lanes[0] | ||||
| 			var d digest | ||||
| 			a, ok := s.digests[lane.uid] | ||||
| 			if ok { | ||||
| 				d.s[0] = binary.LittleEndian.Uint32(a[0:4]) | ||||
| 				d.s[1] = binary.LittleEndian.Uint32(a[4:8]) | ||||
| 				d.s[2] = binary.LittleEndian.Uint32(a[8:12]) | ||||
| 				d.s[3] = binary.LittleEndian.Uint32(a[12:16]) | ||||
| 			} else { | ||||
| 				d.s[0] = init0 | ||||
| 				d.s[1] = init1 | ||||
| 				d.s[2] = init2 | ||||
| 				d.s[3] = init3 | ||||
| 			} | ||||
| 			if len(lane.msg) > 0 { | ||||
| 				// Update... | ||||
| 				blockScalar(&d.s, lane.msg) | ||||
| 			} | ||||
| 			dig := [Size]byte{} | ||||
| 			binary.LittleEndian.PutUint32(dig[0:], d.s[0]) | ||||
| 			binary.LittleEndian.PutUint32(dig[4:], d.s[1]) | ||||
| 			binary.LittleEndian.PutUint32(dig[8:], d.s[2]) | ||||
| 			binary.LittleEndian.PutUint32(dig[12:], d.s[3]) | ||||
| 			s.digests[lane.uid] = dig | ||||
| 
 | ||||
| 			if lane.msg != nil { | ||||
| 				s.buffers <- lane.msg | ||||
| 			} | ||||
| 			lanes[0] = blockInput{} | ||||
| 
 | ||||
| 		default: | ||||
| 			s.wg.Add(len(lanes)) | ||||
| 			var results [useScalarBelow]digest | ||||
| 			for i := range lanes { | ||||
| 				lane := lanes[i] | ||||
| 				go func(i int) { | ||||
| 					var d digest | ||||
| 					defer s.wg.Done() | ||||
| 					a, ok := s.digests[lane.uid] | ||||
| 					if ok { | ||||
| 						d.s[0] = binary.LittleEndian.Uint32(a[0:4]) | ||||
| 						d.s[1] = binary.LittleEndian.Uint32(a[4:8]) | ||||
| 						d.s[2] = binary.LittleEndian.Uint32(a[8:12]) | ||||
| 						d.s[3] = binary.LittleEndian.Uint32(a[12:16]) | ||||
| 					} else { | ||||
| 						d.s[0] = init0 | ||||
| 						d.s[1] = init1 | ||||
| 						d.s[2] = init2 | ||||
| 						d.s[3] = init3 | ||||
| 					} | ||||
| 					if len(lane.msg) == 0 { | ||||
| 						results[i] = d | ||||
| 						return | ||||
| 					} | ||||
| 					// Update... | ||||
| 					blockScalar(&d.s, lane.msg) | ||||
| 					results[i] = d | ||||
| 				}(i) | ||||
| 			} | ||||
| 			s.wg.Wait() | ||||
| 			for i, lane := range lanes { | ||||
| 				dig := [Size]byte{} | ||||
| 				binary.LittleEndian.PutUint32(dig[0:], results[i].s[0]) | ||||
| 				binary.LittleEndian.PutUint32(dig[4:], results[i].s[1]) | ||||
| 				binary.LittleEndian.PutUint32(dig[8:], results[i].s[2]) | ||||
| 				binary.LittleEndian.PutUint32(dig[12:], results[i].s[3]) | ||||
| 				s.digests[lane.uid] = dig | ||||
| 
 | ||||
| 				if lane.msg != nil { | ||||
| 					s.buffers <- lane.msg | ||||
| 				} | ||||
| 				lanes[i] = blockInput{} | ||||
| 			} | ||||
| 		} | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	inputs := [16][]byte{} | ||||
| 	for i := range lanes { | ||||
| 		inputs[i] = lanes[i].msg | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue