mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 06:12:25 -05:00 
			
		
		
		
	[chore] bump dependencies (#4406)
- codeberg.org/gruf/go-ffmpreg: v0.6.9 -> v0.6.10
- github.com/ncruces/go-sqlite3: v0.27.1 -> v0.28.0
- github.com/stretchr/testify: v1.10.0 -> v1.11.1
- github.com/tdewolff/minify/v2 v2.23.11 -> v2.24.2
- go.opentelemetry.io/otel{,/*}: v1.37.0 -> v1.38.0
- go.opentelemetry.io/contrib/*: v0.62.0 -> v0.63.0
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4406
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
	
	
This commit is contained in:
		
					parent
					
						
							
								5a54e7156b
							
						
					
				
			
			
				commit
				
					
						78defcd916
					
				
			
		
					 274 changed files with 9213 additions and 2368 deletions
				
			
		
							
								
								
									
										26
									
								
								vendor/google.golang.org/protobuf/encoding/protowire/wire.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/google.golang.org/protobuf/encoding/protowire/wire.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -371,7 +371,31 @@ func ConsumeVarint(b []byte) (v uint64, n int) { | |||
| func SizeVarint(v uint64) int { | ||||
| 	// This computes 1 + (bits.Len64(v)-1)/7. | ||||
| 	// 9/64 is a good enough approximation of 1/7 | ||||
| 	return int(9*uint32(bits.Len64(v))+64) / 64 | ||||
| 	// | ||||
| 	// The Go compiler can translate the bits.LeadingZeros64 call into the LZCNT | ||||
| 	// instruction, which is very fast on CPUs from the last few years. The | ||||
| 	// specific way of expressing the calculation matches C++ Protobuf, see | ||||
| 	// https://godbolt.org/z/4P3h53oM4 for the C++ code and how gcc/clang | ||||
| 	// optimize that function for GOAMD64=v1 and GOAMD64=v3 (-march=haswell). | ||||
| 
 | ||||
| 	// By OR'ing v with 1, we guarantee that v is never 0, without changing the | ||||
| 	// result of SizeVarint. LZCNT is not defined for 0, meaning the compiler | ||||
| 	// needs to add extra instructions to handle that case. | ||||
| 	// | ||||
| 	// The Go compiler currently (go1.24.4) does not make use of this knowledge. | ||||
| 	// This opportunity (removing the XOR instruction, which handles the 0 case) | ||||
| 	// results in a small (1%) performance win across CPU architectures. | ||||
| 	// | ||||
| 	// Independently of avoiding the 0 case, we need the v |= 1 line because | ||||
| 	// it allows the Go compiler to eliminate an extra XCHGL barrier. | ||||
| 	v |= 1 | ||||
| 
 | ||||
| 	// It would be clearer to write log2value := 63 - uint32(...), but | ||||
| 	// writing uint32(...) ^ 63 is much more efficient (-14% ARM, -20% Intel). | ||||
| 	// Proof of identity for our value range [0..63]: | ||||
| 	// https://go.dev/play/p/Pdn9hEWYakX | ||||
| 	log2value := uint32(bits.LeadingZeros64(v)) ^ 63 | ||||
| 	return int((log2value*9 + (64 + 9)) / 64) | ||||
| } | ||||
| 
 | ||||
| // AppendFixed32 appends v to b as a little-endian uint32. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue